diff --git a/PWGLF/TableProducer/cascadebuilder.cxx b/PWGLF/TableProducer/cascadebuilder.cxx index 90665d35df7..a626ad520a8 100644 --- a/PWGLF/TableProducer/cascadebuilder.cxx +++ b/PWGLF/TableProducer/cascadebuilder.cxx @@ -115,6 +115,7 @@ struct cascadeBuilder { Configurable rejDiffCollTracks{"rejDiffCollTracks", 0, "rejDiffCollTracks"}; Configurable d_doTrackQA{"d_doTrackQA", false, "do track QA"}; Configurable d_doStraTrackQA{"d_doStraTrackQA", false, "do strangeness tracking QA"}; + Configurable d_GenerateOnlyTrackedCascades{"d_GenerateOnlyTrackedCascades", false, "Skip cascades that aren't tracked"}; // CCDB options Configurable ccdburl{"ccdb-url", "http://alice-ccdb.cern.ch", "url of the ccdb repository"}; @@ -766,6 +767,15 @@ struct cascadeBuilder { statisticsRegistry.eventCounter++; for (auto& cascade : cascades) { + // check if cascade is tracked - sliceBy is our friend! + const uint64_t cascIdx = cascade.globalIndex(); + auto trackedCascadesSliced = trackedCascades.sliceBy(perCascade, cascIdx); + + // if only tracked cascades are desired, skip this candidate before doing anything (speed) + if (trackedCascadesSliced.size() == 0 && d_GenerateOnlyTrackedCascades) { + continue; // wasn't tracked + } + bool validCascadeCandidate = buildCascadeCandidate(cascade); if (!validCascadeCandidate) continue; // doesn't pass cascade selections @@ -815,6 +825,7 @@ struct cascadeBuilder { } float lPt = 0.0f; + if (d_doStraTrackQA) { // Fill standard DCA histograms for all candidates (irrespectively of strangeness tracking) lPt = RecoDecay::sqrtSumOfSquares(cascadecandidate.v0mompos[0] + cascadecandidate.v0momneg[0] + cascadecandidate.bachP[0], cascadecandidate.v0mompos[1] + cascadecandidate.v0momneg[1] + cascadecandidate.bachP[1]); @@ -828,9 +839,6 @@ struct cascadeBuilder { registry.fill(HIST("hDCACascadeToPVOmegaPlus"), lPt, cascadecandidate.cascDCAxy); } - // check if cascade is tracked - sliceBy is our friend! - const uint64_t cascIdx = cascade.globalIndex(); - auto trackedCascadesSliced = trackedCascades.sliceBy(perCascade, cascIdx); if (trackedCascadesSliced.size() > 0) { auto trackedCascade = trackedCascadesSliced.begin(); // first and only element