From f3d5961a0fab5217662e2f41fbd76c8631b7b954 Mon Sep 17 00:00:00 2001 From: ddobrigk Date: Tue, 18 Apr 2023 11:45:11 -0300 Subject: [PATCH 1/2] Add option to process only tracked cascades --- PWGLF/TableProducer/cascadebuilder.cxx | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/PWGLF/TableProducer/cascadebuilder.cxx b/PWGLF/TableProducer/cascadebuilder.cxx index 90665d35df7..6958d1fe5bc 100644 --- a/PWGLF/TableProducer/cascadebuilder.cxx +++ b/PWGLF/TableProducer/cascadebuilder.cxx @@ -115,6 +115,8 @@ 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"}; @@ -134,6 +136,7 @@ struct cascadeBuilder { Configurable dQAXiMassWindow{"dQAXiMassWindow", 0.005, "Xi mass window for ITS cluster map QA"}; Configurable dQAOmegaMassWindow{"dQAOmegaMassWindow", 0.005, "Omega mass window for ITS cluster map QA"}; + int mRunNumber; float d_bz; float maxSnp; // max sine phi for propagation @@ -243,7 +246,7 @@ struct cascadeBuilder { const AxisSpec axisVsPtCoarse{(int)dQANBinsPtCoarse, 0, dQAMaxPt, "#it{p}_{T} (GeV/c)"}; const AxisSpec axisXiMass{(int)dQANBinsMass, 1.222f, 1.422f, "Inv. Mass (GeV/c^{2})"}; const AxisSpec axisOmegaMass{(int)dQANBinsMass, 1.572f, 1.772f, "Inv. Mass (GeV/c^{2})"}; - const AxisSpec axisCascadeDCAtoPV{(int)dQANBinsDCAxy, -dQAMaxDCA, dQAMaxDCA, "DCA_{xy} (cm)"}; + const AxisSpec axisCascadeDCAtoPV{(int)dQANBinsDCAxy, -dQAMaxDCA,dQAMaxDCA, "DCA_{xy} (cm)"}; registry.add("h2dXiMinusMass", "h2dXiMinusMass", kTH2F, {axisVsPtCoarse, axisXiMass}); registry.add("h2dXiPlusMass", "h2dXiPlusMass", kTH2F, {axisVsPtCoarse, axisXiMass}); @@ -766,6 +769,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 +827,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 +841,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 From 79a5be98610b6b75c49893b342affb894979c865 Mon Sep 17 00:00:00 2001 From: ALICE Builder Date: Tue, 18 Apr 2023 16:50:56 +0200 Subject: [PATCH 2/2] Please consider the following formatting changes (#101) --- PWGLF/TableProducer/cascadebuilder.cxx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/PWGLF/TableProducer/cascadebuilder.cxx b/PWGLF/TableProducer/cascadebuilder.cxx index 6958d1fe5bc..a626ad520a8 100644 --- a/PWGLF/TableProducer/cascadebuilder.cxx +++ b/PWGLF/TableProducer/cascadebuilder.cxx @@ -117,7 +117,6 @@ struct cascadeBuilder { 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"}; Configurable grpPath{"grpPath", "GLO/GRP/GRP", "Path of the grp file"}; @@ -136,7 +135,6 @@ struct cascadeBuilder { Configurable dQAXiMassWindow{"dQAXiMassWindow", 0.005, "Xi mass window for ITS cluster map QA"}; Configurable dQAOmegaMassWindow{"dQAOmegaMassWindow", 0.005, "Omega mass window for ITS cluster map QA"}; - int mRunNumber; float d_bz; float maxSnp; // max sine phi for propagation @@ -246,7 +244,7 @@ struct cascadeBuilder { const AxisSpec axisVsPtCoarse{(int)dQANBinsPtCoarse, 0, dQAMaxPt, "#it{p}_{T} (GeV/c)"}; const AxisSpec axisXiMass{(int)dQANBinsMass, 1.222f, 1.422f, "Inv. Mass (GeV/c^{2})"}; const AxisSpec axisOmegaMass{(int)dQANBinsMass, 1.572f, 1.772f, "Inv. Mass (GeV/c^{2})"}; - const AxisSpec axisCascadeDCAtoPV{(int)dQANBinsDCAxy, -dQAMaxDCA,dQAMaxDCA, "DCA_{xy} (cm)"}; + const AxisSpec axisCascadeDCAtoPV{(int)dQANBinsDCAxy, -dQAMaxDCA, dQAMaxDCA, "DCA_{xy} (cm)"}; registry.add("h2dXiMinusMass", "h2dXiMinusMass", kTH2F, {axisVsPtCoarse, axisXiMass}); registry.add("h2dXiPlusMass", "h2dXiPlusMass", kTH2F, {axisVsPtCoarse, axisXiMass}); @@ -774,7 +772,7 @@ struct cascadeBuilder { 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 ){ + if (trackedCascadesSliced.size() == 0 && d_GenerateOnlyTrackedCascades) { continue; // wasn't tracked }