From c1db7bf7646e9b7dea87976af49b83d8ca49e49e Mon Sep 17 00:00:00 2001 From: Anton Riedel Date: Sun, 25 Oct 2026 10:42:50 +0100 Subject: [PATCH 1/2] Feat: add SE/ME split for single particles --- PWGCF/Femto/Core/cascadeHistManager.h | 6 +- PWGCF/Femto/Core/charmHadronHistManager.h | 11 +- PWGCF/Femto/Core/kinkHistManager.h | 6 +- PWGCF/Femto/Core/mcParticleHistManager.h | 7 +- PWGCF/Femto/Core/pairBuilder.h | 427 +++++++++++------- PWGCF/Femto/Core/pairProcessHelpers.h | 35 +- PWGCF/Femto/Core/photonHistManager.h | 7 + PWGCF/Femto/Core/trackHistManager.h | 65 ++- PWGCF/Femto/Core/tripletBuilder.h | 300 +++++++----- PWGCF/Femto/Core/tripletProcessHelpers.h | 40 +- .../Core/twoPhotonResonanceHistManager.h | 7 + .../Femto/Core/twoTrackResonanceHistManager.h | 9 + PWGCF/Femto/Core/v0HistManager.h | 14 +- PWGCF/Femto/Tasks/femtoDndetaPair.cxx | 24 +- PWGCF/Femto/Tasks/femtoDndetaTriplet.cxx | 33 +- PWGCF/Femto/Tasks/femtoPairD0D0.cxx | 18 +- .../Tasks/femtoPairMcParticleMcParticle.cxx | 6 +- PWGCF/Femto/Tasks/femtoPairTrackCascade.cxx | 30 +- .../Femto/Tasks/femtoPairTrackCharmHadron.cxx | 27 +- PWGCF/Femto/Tasks/femtoPairTrackKink.cxx | 18 +- PWGCF/Femto/Tasks/femtoPairTrackTrack.cxx | 6 +- .../femtoPairTrackTwoPhotonResonance.cxx | 24 +- .../Tasks/femtoPairTrackTwoTrackResonance.cxx | 36 +- PWGCF/Femto/Tasks/femtoPairTrackV0.cxx | 24 +- .../Tasks/femtoPairV0TwoTrackResonance.cxx | 108 +++-- PWGCF/Femto/Tasks/femtoPairV0V0.cxx | 54 ++- .../femtoTrackTrackTwoPhotonResonanceQa.cxx | 4 +- ...oTripletMcParticleMcParticleMcParticle.cxx | 9 +- .../Tasks/femtoTripletTrackTrackCascade.cxx | 36 +- .../Tasks/femtoTripletTrackTrackTrack.cxx | 9 +- .../Femto/Tasks/femtoTripletTrackTrackV0.cxx | 15 +- 31 files changed, 935 insertions(+), 480 deletions(-) diff --git a/PWGCF/Femto/Core/cascadeHistManager.h b/PWGCF/Femto/Core/cascadeHistManager.h index 9270b5b0cdc..6d83ee144fe 100644 --- a/PWGCF/Femto/Core/cascadeHistManager.h +++ b/PWGCF/Femto/Core/cascadeHistManager.h @@ -291,9 +291,11 @@ std::map> makeCascadeMcQaHistS #undef CASCADE_HIST_MC_QA_MAP constexpr char PrefixXiQa[] = "XiQA/"; -constexpr char PrefixXi[] = "Xi/"; +constexpr char PrefixXiSe[] = "Xi/SE/"; +constexpr char PrefixXiMe[] = "Xi/ME/"; constexpr char PrefixOmegaQa[] = "OmegaQa/"; -constexpr char PrefixOmega[] = "Omega/"; +constexpr char PrefixOmegaSe[] = "Omega/SE/"; +constexpr char PrefixOmegaMe[] = "Omega/ME/"; constexpr char PrefixLambdaCascade[] = "LambdaCascadeQa/"; diff --git a/PWGCF/Femto/Core/charmHadronHistManager.h b/PWGCF/Femto/Core/charmHadronHistManager.h index e0391aad0ae..b405f028d6b 100644 --- a/PWGCF/Femto/Core/charmHadronHistManager.h +++ b/PWGCF/Femto/Core/charmHadronHistManager.h @@ -291,10 +291,15 @@ auto makeLcMcQaHistSpecMap(const T1& confBinningAnalysis, const T2& confBinningQ #undef LC_HIST_QA_MAP // prefixes for the output directories in the histogram registry -constexpr char PrefixD01[] = "D01/"; -constexpr char PrefixD02[] = "D02/"; +// same-event / mixed-event siblings: single-candidate histograms for a given slot, split by +// whether the candidate came from a same-event or mixed-event pair +constexpr char PrefixD01Se[] = "D01/SE/"; +constexpr char PrefixD02Se[] = "D02/SE/"; +constexpr char PrefixD01Me[] = "D01/ME/"; +constexpr char PrefixD02Me[] = "D02/ME/"; constexpr char PrefixD0Qa[] = "D0QA/"; -constexpr char PrefixLc1[] = "Lc1/"; +constexpr char PrefixLc1Se[] = "Lc1/SE/"; +constexpr char PrefixLc1Me[] = "Lc1/ME/"; constexpr char PrefixLcQa[] = "LcQA/"; constexpr std::string_view AnalysisDir = "Analysis/"; constexpr std::string_view McDir = "MC/"; diff --git a/PWGCF/Femto/Core/kinkHistManager.h b/PWGCF/Femto/Core/kinkHistManager.h index 7bb73ebad68..abebfda31f4 100644 --- a/PWGCF/Femto/Core/kinkHistManager.h +++ b/PWGCF/Femto/Core/kinkHistManager.h @@ -255,10 +255,12 @@ std::map> makeKinkMcQaHistSpecMap #undef KINK_HIST_MC_QA_MAP constexpr char PrefixSigmaQa[] = "SigmaQA/"; -constexpr char PrefixSigma1[] = "Sigma1/"; +constexpr char PrefixSigma1Se[] = "Sigma1/SE/"; +constexpr char PrefixSigma1Me[] = "Sigma1/ME/"; constexpr char PrefixSigma2[] = "Sigma2/"; constexpr char PrefixSigmaPlusQa[] = "SigmaPlusQA/"; -constexpr char PrefixSigmaPlus1[] = "SigmaPlus1/"; +constexpr char PrefixSigmaPlus1Se[] = "SigmaPlus1/SE/"; +constexpr char PrefixSigmaPlus1Me[] = "SigmaPlus1/ME/"; constexpr char PrefixSigmaPlus2[] = "SigmaPlus2/"; constexpr std::string_view AnalysisDir = "Analysis/"; diff --git a/PWGCF/Femto/Core/mcParticleHistManager.h b/PWGCF/Femto/Core/mcParticleHistManager.h index 7b5ff24eee2..ce9c8bd4bed 100644 --- a/PWGCF/Femto/Core/mcParticleHistManager.h +++ b/PWGCF/Femto/Core/mcParticleHistManager.h @@ -146,7 +146,12 @@ auto makeMcParticleHistSpecMap(const T& confBinning) inline constexpr char PrefixMcParticle1[] = "McParticle1/"; inline constexpr char PrefixMcParticle2[] = "McParticle2/"; -inline constexpr char PrefixMcParticle3[] = "McParticle3/"; +inline constexpr char PrefixMcParticle1Se[] = "McParticle1Se/"; +inline constexpr char PrefixMcParticle2Se[] = "McParticle2Se/"; +inline constexpr char PrefixMcParticle3Se[] = "McParticle3Se/"; +inline constexpr char PrefixMcParticle1Me[] = "McParticle1Me/"; +inline constexpr char PrefixMcParticle2Me[] = "McParticle2Me/"; +inline constexpr char PrefixMcParticle3Me[] = "McParticle3Me/"; constexpr std::string_view McDir = "MC/"; diff --git a/PWGCF/Femto/Core/pairBuilder.h b/PWGCF/Femto/Core/pairBuilder.h index 952c9734a97..dd157bbb0ae 100644 --- a/PWGCF/Femto/Core/pairBuilder.h +++ b/PWGCF/Femto/Core/pairBuilder.h @@ -52,7 +52,7 @@ namespace o2::analysis::femto::pairbuilder const int64_t nLimitPartitionIdenticalParticles = 2; const int64_t nLimitPartitionParticles = 1; -template +template class PairTrackTrackBuilder { public: @@ -106,7 +106,8 @@ class PairTrackTrackBuilder if (mSameSpecies) { mTrackCleaner1.init(confTrackCleaner1); - mTrackHistManager1.template init(registry, trackHistSpec1, confTrackSelection1); + mTrackHistManagerSe1.template init(registry, trackHistSpec1, confTrackSelection1); + mTrackHistManagerMe1.template init(registry, trackHistSpec1, confTrackSelection1); mPairHistManagerSe.setMass(confTrackSelection1.pdgCodeAbs.value, confTrackSelection1.pdgCodeAbs.value); mPairHistManagerSe.setCharge(confTrackSelection1.chargeAbs.value, confTrackSelection1.chargeAbs.value); @@ -118,8 +119,10 @@ class PairTrackTrackBuilder } else { mTrackCleaner1.init(confTrackCleaner1); mTrackCleaner2.init(confTrackCleaner2); - mTrackHistManager1.template init(registry, trackHistSpec1, confTrackSelection1); - mTrackHistManager2.template init(registry, trackHistSpec2, confTrackSelection2); + mTrackHistManagerSe1.template init(registry, trackHistSpec1, confTrackSelection1); + mTrackHistManagerSe2.template init(registry, trackHistSpec2, confTrackSelection2); + mTrackHistManagerMe1.template init(registry, trackHistSpec1, confTrackSelection1); + mTrackHistManagerMe2.template init(registry, trackHistSpec2, confTrackSelection2); mPairHistManagerSe.setMass(confTrackSelection1.pdgCodeAbs.value, confTrackSelection2.pdgCodeAbs.value); mPairHistManagerSe.setCharge(confTrackSelection1.chargeAbs.value, confTrackSelection2.chargeAbs.value); @@ -165,7 +168,7 @@ class PairTrackTrackBuilder if (mMixIdenticalParticles) { pairOrder = static_cast(mDist(mRng)); } - return pairprocesshelpers::processSameEvent(trackSlice1, trackTable, col, mTrackHistManager1, mPairHistManagerSe, mCprSe, mPcSe, pairOrder); + return pairprocesshelpers::processSameEvent(trackSlice1, trackTable, col, mTrackHistManagerSe1, mPairHistManagerSe, mCprSe, mPcSe, pairOrder); } auto trackSlice1 = partition1->sliceByCached(o2::aod::femtobase::stored::fColId, col.globalIndex(), cache); @@ -175,7 +178,7 @@ class PairTrackTrackBuilder } mColHistManager.template fill(col); mCprSe.setMagField(col.magField()); - return pairprocesshelpers::processSameEvent(trackSlice1, trackSlice2, trackTable, col, mTrackHistManager1, mTrackHistManager2, mPairHistManagerSe, mCprSe, mPcSe); + return pairprocesshelpers::processSameEvent(trackSlice1, trackSlice2, trackTable, col, mTrackHistManagerSe1, mTrackHistManagerSe2, mPairHistManagerSe, mCprSe, mPcSe); } // mc @@ -194,7 +197,7 @@ class PairTrackTrackBuilder if (mMixIdenticalParticles) { pairOrder = static_cast(mDist(mRng)); } - return pairprocesshelpers::processSameEvent(trackSlice1, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManager1, mPairHistManagerSe, mTrackCleaner1, mCprSe, mPcSe, pairOrder); + return pairprocesshelpers::processSameEvent(trackSlice1, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManagerSe1, mPairHistManagerSe, mTrackCleaner1, mCprSe, mPcSe, pairOrder); } auto trackSlice1 = partition1->sliceByCached(o2::aod::femtobase::stored::fColId, col.globalIndex(), cache); @@ -204,7 +207,7 @@ class PairTrackTrackBuilder } mColHistManager.template fill(col, mcCols); mCprSe.setMagField(col.magField()); - return pairprocesshelpers::processSameEvent(trackSlice1, trackSlice2, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManager1, mTrackHistManager2, mPairHistManagerSe, mTrackCleaner1, mTrackCleaner2, mCprSe, mPcSe); + return pairprocesshelpers::processSameEvent(trackSlice1, trackSlice2, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManagerSe1, mTrackHistManagerSe2, mPairHistManagerSe, mTrackCleaner1, mTrackCleaner2, mCprSe, mPcSe); } template @@ -214,17 +217,17 @@ class PairTrackTrackBuilder if (mSameSpecies) { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, partition1, partition1, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition1, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, partition1, partition1, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition1, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, partition1, partition1, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition1, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1); break; case static_cast(pairhistmanager::kVtxCentEventPlaneAngle): if constexpr (utils::HasEventShape) { - pairprocesshelpers::processMixedEvent(cols, partition1, partition1, trackTable, cache, binsVtxCentEventPlaneAngle, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition1, trackTable, cache, binsVtxCentEventPlaneAngle, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1); } else { LOG(fatal) << "Mixing policy kVtxCentEventPlaneAngle requires a collision table with event-shape columns. Breaking..."; } @@ -235,17 +238,17 @@ class PairTrackTrackBuilder } else { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, partition1, partition2, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition2, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, partition1, partition2, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition2, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, partition1, partition2, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition2, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2); break; case static_cast(pairhistmanager::kVtxCentEventPlaneAngle): if constexpr (utils::HasEventShape) { - pairprocesshelpers::processMixedEvent(cols, partition1, partition2, trackTable, cache, binsVtxCentEventPlaneAngle, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition2, trackTable, cache, binsVtxCentEventPlaneAngle, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2); } else { LOG(fatal) << "Mixing policy kVtxCentEventPlaneAngle requires a collision table with event-shape columns. Breaking..."; } @@ -262,17 +265,17 @@ class PairTrackTrackBuilder if (mSameSpecies) { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mTrackCleaner1, mTrackCleaner1, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mTrackCleaner1, mTrackCleaner1, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner1, mTrackCleaner1, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner1, mTrackCleaner1, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner1, mTrackCleaner1, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner1, mTrackCleaner1, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1); break; case static_cast(pairhistmanager::kVtxCentEventPlaneAngle): if constexpr (utils::HasEventShape) { - pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCentEventPlaneAngle, mMixingDepth, mPairHistManagerMe, mTrackCleaner1, mTrackCleaner1, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCentEventPlaneAngle, mMixingDepth, mPairHistManagerMe, mTrackCleaner1, mTrackCleaner1, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1); } else { LOG(fatal) << "Mixing policy kVtxCentEventPlaneAngle requires a collision table with event-shape columns. Breaking..."; } @@ -283,17 +286,17 @@ class PairTrackTrackBuilder } else { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mTrackCleaner1, mTrackCleaner2, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mTrackCleaner1, mTrackCleaner2, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner1, mTrackCleaner2, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner1, mTrackCleaner2, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner1, mTrackCleaner2, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner1, mTrackCleaner2, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2); break; case static_cast(pairhistmanager::kVtxCentEventPlaneAngle): if constexpr (utils::HasEventShape) { - pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCentEventPlaneAngle, mMixingDepth, mPairHistManagerMe, mTrackCleaner1, mTrackCleaner2, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCentEventPlaneAngle, mMixingDepth, mPairHistManagerMe, mTrackCleaner1, mTrackCleaner2, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2); } else { LOG(fatal) << "Mixing policy kVtxCentEventPlaneAngle requires a collision table with event-shape columns. Breaking..."; } @@ -306,8 +309,12 @@ class PairTrackTrackBuilder private: colhistmanager::CollisionHistManager mColHistManager; - trackhistmanager::TrackHistManager mTrackHistManager1; - trackhistmanager::TrackHistManager mTrackHistManager2; + trackhistmanager::TrackHistManager mTrackHistManagerSe1; + trackhistmanager::TrackHistManager mTrackHistManagerSe2; + // single-particle histograms for particles that end up in mixed-event pairs -- same config + // objects as the same-event managers above, just a different histogram directory + trackhistmanager::TrackHistManager mTrackHistManagerMe1; + trackhistmanager::TrackHistManager mTrackHistManagerMe2; pairhistmanager::PairHistManager mPairHistManagerSe; pairhistmanager::PairHistManager mPairHistManagerMe; closepairrejection::ClosePairRejectionTrackTrack mCprSe; @@ -331,6 +338,12 @@ template (registry, V0HistSpec1, confV0Selection1, PosDauHistSpec1, NegDauHistSpec1); + mV0HistManagerSe1.template init(registry, V0HistSpec1, confV0Selection1, PosDauHistSpec1, NegDauHistSpec1); + mV0HistManagerMe1.template init(registry, V0HistSpec1, confV0Selection1, PosDauHistSpec1, NegDauHistSpec1); if (mSameSpecies) { mPairHistManagerSe.setMass(confV0Selection1.pdgCodeAbs.value, confV0Selection1.pdgCodeAbs.value); @@ -424,7 +438,8 @@ class PairV0V0Builder mPairHistManagerMe.setCharge(1, 1); mCprMe.init(registry, cprHistSpecPos, cprHistSpecNeg, confCprPos, confCprNeg); } else { - mV0HistManager2.template init(registry, V0HistSpec2, confV0Selection2, PosDauHistSpec2, NegDauHistSpec2); + mV0HistManagerSe2.template init(registry, V0HistSpec2, confV0Selection2, PosDauHistSpec2, NegDauHistSpec2); + mV0HistManagerMe2.template init(registry, V0HistSpec2, confV0Selection2, PosDauHistSpec2, NegDauHistSpec2); mPairHistManagerSe.setMass(confV0Selection1.pdgCodeAbs.value, confV0Selection2.pdgCodeAbs.value); mPairHistManagerSe.setCharge(1, 1); @@ -469,7 +484,7 @@ class PairV0V0Builder if (mMixIdenticalParticles) { pairOrder = static_cast(mDist(mRng)); } - return pairprocesshelpers::processSameEvent(v0Slice1, trackTable, col, mV0HistManager1, mPairHistManagerSe, mCprSe, mPcSe, pairOrder); + return pairprocesshelpers::processSameEvent(v0Slice1, trackTable, col, mV0HistManagerSe1, mPairHistManagerSe, mCprSe, mPcSe, pairOrder); } auto v0Slice1 = partition1->sliceByCached(o2::aod::femtobase::stored::fColId, col.globalIndex(), cache); @@ -479,7 +494,7 @@ class PairV0V0Builder } mColHistManager.template fill(col); mCprSe.setMagField(col.magField()); - return pairprocesshelpers::processSameEvent(v0Slice1, v0Slice2, trackTable, col, mV0HistManager1, mV0HistManager2, mPairHistManagerSe, mCprSe, mPcSe); + return pairprocesshelpers::processSameEvent(v0Slice1, v0Slice2, trackTable, col, mV0HistManagerSe1, mV0HistManagerSe2, mPairHistManagerSe, mCprSe, mPcSe); } // mc @@ -498,7 +513,7 @@ class PairV0V0Builder if (mMixIdenticalParticles) { pairOrder = static_cast(mDist(mRng)); } - return pairprocesshelpers::processSameEvent(v0Slice1, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mV0HistManager1, mPairHistManagerSe, mV0Cleaner1, mCprSe, mPcSe, pairOrder); + return pairprocesshelpers::processSameEvent(v0Slice1, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mV0HistManagerSe1, mPairHistManagerSe, mV0Cleaner1, mCprSe, mPcSe, pairOrder); } auto v0Slice1 = partition1->sliceByCached(o2::aod::femtobase::stored::fColId, col.globalIndex(), cache); @@ -508,7 +523,7 @@ class PairV0V0Builder } mColHistManager.template fill(col, mcCols); mCprSe.setMagField(col.magField()); - return pairprocesshelpers::processSameEvent(v0Slice1, v0Slice2, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mV0HistManager1, mV0HistManager2, mPairHistManagerSe, mV0Cleaner1, mV0Cleaner2, mCprSe, mPcSe); + return pairprocesshelpers::processSameEvent(v0Slice1, v0Slice2, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mV0HistManagerSe1, mV0HistManagerSe2, mPairHistManagerSe, mV0Cleaner1, mV0Cleaner2, mCprSe, mPcSe); } template @@ -518,13 +533,13 @@ class PairV0V0Builder if (mSameSpecies) { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, partition1, partition1, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition1, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mV0HistManagerMe1, mV0HistManagerMe1); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, partition1, partition1, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition1, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mV0HistManagerMe1, mV0HistManagerMe1); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, partition1, partition1, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition1, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mV0HistManagerMe1, mV0HistManagerMe1); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -532,13 +547,13 @@ class PairV0V0Builder } else { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, partition1, partition2, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition2, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mV0HistManagerMe1, mV0HistManagerMe2); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, partition1, partition2, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition2, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mV0HistManagerMe1, mV0HistManagerMe2); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, partition1, partition2, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition2, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mV0HistManagerMe1, mV0HistManagerMe2); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -552,13 +567,13 @@ class PairV0V0Builder if (mSameSpecies) { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mV0Cleaner1, mV0Cleaner1, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mV0Cleaner1, mV0Cleaner1, mCprMe, mPcMe, mEventStride, mV0HistManagerMe1, mV0HistManagerMe1); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mV0Cleaner1, mV0Cleaner1, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mV0Cleaner1, mV0Cleaner1, mCprMe, mPcMe, mEventStride, mV0HistManagerMe1, mV0HistManagerMe1); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mV0Cleaner1, mV0Cleaner1, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mV0Cleaner1, mV0Cleaner1, mCprMe, mPcMe, mEventStride, mV0HistManagerMe1, mV0HistManagerMe1); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -566,13 +581,13 @@ class PairV0V0Builder } else { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mV0Cleaner1, mV0Cleaner2, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mV0Cleaner1, mV0Cleaner2, mCprMe, mPcMe, mEventStride, mV0HistManagerMe1, mV0HistManagerMe2); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mV0Cleaner1, mV0Cleaner2, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mV0Cleaner1, mV0Cleaner2, mCprMe, mPcMe, mEventStride, mV0HistManagerMe1, mV0HistManagerMe2); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mV0Cleaner1, mV0Cleaner2, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mV0Cleaner1, mV0Cleaner2, mCprMe, mPcMe, mEventStride, mV0HistManagerMe1, mV0HistManagerMe2); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -582,8 +597,10 @@ class PairV0V0Builder private: colhistmanager::CollisionHistManager mColHistManager; - v0histmanager::V0HistManager mV0HistManager1; - v0histmanager::V0HistManager mV0HistManager2; + v0histmanager::V0HistManager mV0HistManagerSe1; + v0histmanager::V0HistManager mV0HistManagerSe2; + v0histmanager::V0HistManager mV0HistManagerMe1; + v0histmanager::V0HistManager mV0HistManagerMe2; particlecleaner::ParticleCleaner mV0Cleaner1; particlecleaner::ParticleCleaner mV0Cleaner2; pairhistmanager::PairHistManager mPairHistManagerSe; @@ -608,6 +625,12 @@ template (registry, D0HistSpec1, confD0Selection1, PosDauHistSpec1, NegDauHistSpec1); + mD0HistManagerSe1.template init(registry, D0HistSpec1, confD0Selection1, PosDauHistSpec1, NegDauHistSpec1); + mD0HistManagerMe1.template init(registry, D0HistSpec1, confD0Selection1, PosDauHistSpec1, NegDauHistSpec1); auto prongPdgCodes = [](int sign) -> std::pair { if (sign > 0) { @@ -713,7 +737,8 @@ class PairD0D0Builder mPairHistManagerMe.setCharge(1, 1); mCprMe.init(registry, cprHistSpecPos, cprHistSpecNeg, confCprPos, confCprNeg); } else { - mD0HistManager2.template init(registry, D0HistSpec2, confD0Selection2, PosDauHistSpec2, NegDauHistSpec2); + mD0HistManagerSe2.template init(registry, D0HistSpec2, confD0Selection2, PosDauHistSpec2, NegDauHistSpec2); + mD0HistManagerMe2.template init(registry, D0HistSpec2, confD0Selection2, PosDauHistSpec2, NegDauHistSpec2); auto [posDauPdg2, negDauPdg2] = prongPdgCodes(confD0Selection2.sign.value); mPairHistManagerSe.setMass(confD0Selection1.pdgCodeAbs.value, posDauPdg1, negDauPdg1, confD0Selection2.pdgCodeAbs.value, posDauPdg2, negDauPdg2); @@ -758,7 +783,7 @@ class PairD0D0Builder if (mMixIdenticalParticles) { pairOrder = static_cast(mDist(mRng)); } - return pairprocesshelpers::processSameEvent(d0Slice1, trackTable, col, mD0HistManager1, mPairHistManagerSe, mCprSe, mPcSe, pairOrder); + return pairprocesshelpers::processSameEvent(d0Slice1, trackTable, col, mD0HistManagerSe1, mPairHistManagerSe, mCprSe, mPcSe, pairOrder); } auto d0Slice1 = partition1->sliceByCached(o2::aod::femtobase::stored::fColId, col.globalIndex(), cache); @@ -768,7 +793,7 @@ class PairD0D0Builder } mColHistManager.template fill(col); mCprSe.setMagField(col.magField()); - return pairprocesshelpers::processSameEvent(d0Slice1, d0Slice2, trackTable, col, mD0HistManager1, mD0HistManager2, mPairHistManagerSe, mCprSe, mPcSe); + return pairprocesshelpers::processSameEvent(d0Slice1, d0Slice2, trackTable, col, mD0HistManagerSe1, mD0HistManagerSe2, mPairHistManagerSe, mCprSe, mPcSe); } // mc @@ -787,7 +812,7 @@ class PairD0D0Builder if (mMixIdenticalParticles) { pairOrder = static_cast(mDist(mRng)); } - return pairprocesshelpers::processSameEvent(d0Slice1, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mD0HistManager1, mPairHistManagerSe, mD0Cleaner1, mCprSe, mPcSe, pairOrder); + return pairprocesshelpers::processSameEvent(d0Slice1, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mD0HistManagerSe1, mPairHistManagerSe, mD0Cleaner1, mCprSe, mPcSe, pairOrder); } auto d0Slice1 = partition1->sliceByCached(o2::aod::femtobase::stored::fColId, col.globalIndex(), cache); auto d0Slice2 = partition2->sliceByCached(o2::aod::femtobase::stored::fColId, col.globalIndex(), cache); @@ -796,7 +821,7 @@ class PairD0D0Builder } mColHistManager.template fill(col, mcCols); mCprSe.setMagField(col.magField()); - return pairprocesshelpers::processSameEvent(d0Slice1, d0Slice2, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mD0HistManager1, mD0HistManager2, mPairHistManagerSe, mD0Cleaner1, mD0Cleaner2, mCprSe, mPcSe); + return pairprocesshelpers::processSameEvent(d0Slice1, d0Slice2, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mD0HistManagerSe1, mD0HistManagerSe2, mPairHistManagerSe, mD0Cleaner1, mD0Cleaner2, mCprSe, mPcSe); } template @@ -805,13 +830,13 @@ class PairD0D0Builder if (mSameSpecies) { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, partition1, partition1, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition1, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mD0HistManagerMe1, mD0HistManagerMe1); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, partition1, partition1, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition1, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mD0HistManagerMe1, mD0HistManagerMe1); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, partition1, partition1, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition1, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mD0HistManagerMe1, mD0HistManagerMe1); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -819,13 +844,13 @@ class PairD0D0Builder } else { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, partition1, partition2, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition2, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mD0HistManagerMe1, mD0HistManagerMe2); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, partition1, partition2, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition2, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mD0HistManagerMe1, mD0HistManagerMe2); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, partition1, partition2, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition2, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mD0HistManagerMe1, mD0HistManagerMe2); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -839,13 +864,13 @@ class PairD0D0Builder if (mSameSpecies) { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mD0Cleaner1, mD0Cleaner1, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mD0Cleaner1, mD0Cleaner1, mCprMe, mPcMe, mEventStride, mD0HistManagerMe1, mD0HistManagerMe1); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mD0Cleaner1, mD0Cleaner1, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mD0Cleaner1, mD0Cleaner1, mCprMe, mPcMe, mEventStride, mD0HistManagerMe1, mD0HistManagerMe1); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mD0Cleaner1, mD0Cleaner1, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mD0Cleaner1, mD0Cleaner1, mCprMe, mPcMe, mEventStride, mD0HistManagerMe1, mD0HistManagerMe1); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -853,13 +878,13 @@ class PairD0D0Builder } else { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mD0Cleaner1, mD0Cleaner2, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mD0Cleaner1, mD0Cleaner2, mCprMe, mPcMe, mEventStride, mD0HistManagerMe1, mD0HistManagerMe2); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mD0Cleaner1, mD0Cleaner2, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mD0Cleaner1, mD0Cleaner2, mCprMe, mPcMe, mEventStride, mD0HistManagerMe1, mD0HistManagerMe2); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mD0Cleaner1, mD0Cleaner2, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mD0Cleaner1, mD0Cleaner2, mCprMe, mPcMe, mEventStride, mD0HistManagerMe1, mD0HistManagerMe2); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -869,8 +894,10 @@ class PairD0D0Builder private: colhistmanager::CollisionHistManager mColHistManager; - charmhadronhistmanager::CharmHadronHistManager mD0HistManager1; // the third prong prefix is unused for 2-prong candidates - charmhadronhistmanager::CharmHadronHistManager mD0HistManager2; // the third prong prefix is unused for 2-prong candidates + charmhadronhistmanager::CharmHadronHistManager mD0HistManagerSe1; // the third prong prefix is unused for 2-prong candidates + charmhadronhistmanager::CharmHadronHistManager mD0HistManagerSe2; // the third prong prefix is unused for 2-prong candidates + charmhadronhistmanager::CharmHadronHistManager mD0HistManagerMe1; // the third prong prefix is unused for 2-prong candidates + charmhadronhistmanager::CharmHadronHistManager mD0HistManagerMe2; // the third prong prefix is unused for 2-prong candidates particlecleaner::ParticleCleaner mD0Cleaner1; particlecleaner::ParticleCleaner mD0Cleaner2; pairhistmanager::PairHistManager mPairHistManagerSe; @@ -893,6 +920,10 @@ template (registry, colHistSpec, confCollisionBinning); - mTrackHistManager.template init(registry, trackHistSpec, confTrackSelection); - mD0HistManager.template init(registry, d0HistSpec, confD0Selection, posDauHistSpec, negDauHistSpec); + mTrackHistManagerSe.template init(registry, trackHistSpec, confTrackSelection); + mD0HistManagerSe.template init(registry, d0HistSpec, confD0Selection, posDauHistSpec, negDauHistSpec); + mTrackHistManagerMe.template init(registry, trackHistSpec, confTrackSelection); + mD0HistManagerMe.template init(registry, d0HistSpec, confD0Selection, posDauHistSpec, negDauHistSpec); mTrackCleaner.init(confTrackCleaner); mD0Cleaner.init(confD0Cleaner); @@ -992,7 +1025,7 @@ class PairTrackD0Builder } mColHistManager.template fill(col); mCprSe.setMagField(col.magField()); - return pairprocesshelpers::processSameEvent(trackSlice, d0Slice, trackTable, col, mTrackHistManager, mD0HistManager, mPairHistManagerSe, mCprSe, mPcSe); + return pairprocesshelpers::processSameEvent(trackSlice, d0Slice, trackTable, col, mTrackHistManagerSe, mD0HistManagerSe, mPairHistManagerSe, mCprSe, mPcSe); } template @@ -1000,13 +1033,13 @@ class PairTrackD0Builder { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, trackPartition, d0Partition, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, d0Partition, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mD0HistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, trackPartition, d0Partition, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, d0Partition, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mD0HistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, trackPartition, d0Partition, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, d0Partition, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mD0HistManagerMe); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -1024,7 +1057,7 @@ class PairTrackD0Builder } mColHistManager.template fill(col, mcCols); mCprSe.setMagField(col.magField()); - return pairprocesshelpers::processSameEvent(trackSlice, d0Slice, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManager, mD0HistManager, mPairHistManagerSe, mTrackCleaner, mD0Cleaner, mCprSe, mPcSe); + return pairprocesshelpers::processSameEvent(trackSlice, d0Slice, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManagerSe, mD0HistManagerSe, mPairHistManagerSe, mTrackCleaner, mD0Cleaner, mCprSe, mPcSe); } template @@ -1032,13 +1065,13 @@ class PairTrackD0Builder { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, d0Partition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mD0Cleaner, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, d0Partition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mD0Cleaner, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mD0HistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, d0Partition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mD0Cleaner, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, d0Partition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mD0Cleaner, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mD0HistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, d0Partition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mD0Cleaner, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, d0Partition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mD0Cleaner, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mD0HistManagerMe); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -1047,8 +1080,10 @@ class PairTrackD0Builder private: colhistmanager::CollisionHistManager mColHistManager; - trackhistmanager::TrackHistManager mTrackHistManager; - charmhadronhistmanager::CharmHadronHistManager mD0HistManager; // the third prong prefix is unused for 2-prong candidates + trackhistmanager::TrackHistManager mTrackHistManagerSe; + charmhadronhistmanager::CharmHadronHistManager mD0HistManagerSe; // the third prong prefix is unused for 2-prong candidates + trackhistmanager::TrackHistManager mTrackHistManagerMe; + charmhadronhistmanager::CharmHadronHistManager mD0HistManagerMe; // the third prong prefix is unused for 2-prong candidates particlecleaner::ParticleCleaner mTrackCleaner; particlecleaner::ParticleCleaner mD0Cleaner; pairhistmanager::PairHistManager mPairHistManagerSe; @@ -1067,6 +1102,11 @@ template (registry, colHistSpec, confCollisionBinning); - mTrackHistManager.template init(registry, trackHistSpec, confTrackSelection); - mLcHistManager.template init(registry, lcHistSpec, confLcSelection, protonDauHistSpec, kaonDauHistSpec, pionDauHistSpec); + mTrackHistManagerSe.template init(registry, trackHistSpec, confTrackSelection); + mLcHistManagerSe.template init(registry, lcHistSpec, confLcSelection, protonDauHistSpec, kaonDauHistSpec, pionDauHistSpec); + mTrackHistManagerMe.template init(registry, trackHistSpec, confTrackSelection); + mLcHistManagerMe.template init(registry, lcHistSpec, confLcSelection, protonDauHistSpec, kaonDauHistSpec, pionDauHistSpec); mTrackCleaner.init(confTrackCleaner); mLcCleaner.init(confLcCleaner); @@ -1152,7 +1194,7 @@ class PairTrackLcBuilder } mColHistManager.template fill(col); mCprSe.setMagField(col.magField()); - return pairprocesshelpers::processSameEvent(trackSlice, lcSlice, trackTable, col, mTrackHistManager, mLcHistManager, mPairHistManagerSe, mCprSe, mPcSe); + return pairprocesshelpers::processSameEvent(trackSlice, lcSlice, trackTable, col, mTrackHistManagerSe, mLcHistManagerSe, mPairHistManagerSe, mCprSe, mPcSe); } template @@ -1160,13 +1202,13 @@ class PairTrackLcBuilder { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, trackPartition, lcPartition, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, lcPartition, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mLcHistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, trackPartition, lcPartition, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, lcPartition, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mLcHistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, trackPartition, lcPartition, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, lcPartition, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mLcHistManagerMe); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -1184,7 +1226,7 @@ class PairTrackLcBuilder } mColHistManager.template fill(col, mcCols); mCprSe.setMagField(col.magField()); - return pairprocesshelpers::processSameEvent(trackSlice, lcSlice, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManager, mLcHistManager, mPairHistManagerSe, mTrackCleaner, mLcCleaner, mCprSe, mPcSe); + return pairprocesshelpers::processSameEvent(trackSlice, lcSlice, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManagerSe, mLcHistManagerSe, mPairHistManagerSe, mTrackCleaner, mLcCleaner, mCprSe, mPcSe); } template @@ -1192,13 +1234,13 @@ class PairTrackLcBuilder { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, lcPartition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mLcCleaner, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, lcPartition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mLcCleaner, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mLcHistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, lcPartition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mLcCleaner, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, lcPartition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mLcCleaner, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mLcHistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, lcPartition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mLcCleaner, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, lcPartition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mLcCleaner, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mLcHistManagerMe); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -1207,8 +1249,10 @@ class PairTrackLcBuilder private: colhistmanager::CollisionHistManager mColHistManager; - trackhistmanager::TrackHistManager mTrackHistManager; - charmhadronhistmanager::CharmHadronHistManager mLcHistManager; + trackhistmanager::TrackHistManager mTrackHistManagerSe; + charmhadronhistmanager::CharmHadronHistManager mLcHistManagerSe; + trackhistmanager::TrackHistManager mTrackHistManagerMe; + charmhadronhistmanager::CharmHadronHistManager mLcHistManagerMe; particlecleaner::ParticleCleaner mTrackCleaner; particlecleaner::ParticleCleaner mLcCleaner; pairhistmanager::PairHistManager mPairHistManagerSe; @@ -1226,6 +1270,10 @@ template (registry, colHistSpec, confCollisionBinning); - mTrackHistManager.template init(registry, trackHistSpec, confTrackSelection); - mV0HistManager.template init(registry, v0HistSpec, confV0Selection, posDauHistSpec, negDauHistSpec); + mTrackHistManagerSe.template init(registry, trackHistSpec, confTrackSelection); + mV0HistManagerSe.template init(registry, v0HistSpec, confV0Selection, posDauHistSpec, negDauHistSpec); + mTrackHistManagerMe.template init(registry, trackHistSpec, confTrackSelection); + mV0HistManagerMe.template init(registry, v0HistSpec, confV0Selection, posDauHistSpec, negDauHistSpec); mTrackCleaner.init(confTrackCleaner); mV0Cleaner.init(confV0Cleaner); @@ -1327,7 +1377,7 @@ class PairTrackV0Builder } mColHistManager.template fill(col); mCprSe.setMagField(col.magField()); - return pairprocesshelpers::processSameEvent(trackSlice, v0Slice, trackTable, col, mTrackHistManager, mV0HistManager, mPairHistManagerSe, mCprSe, mPcSe); + return pairprocesshelpers::processSameEvent(trackSlice, v0Slice, trackTable, col, mTrackHistManagerSe, mV0HistManagerSe, mPairHistManagerSe, mCprSe, mPcSe); } /// \return true if at least one pair passed all pair selections (usable as pair trigger) @@ -1341,7 +1391,7 @@ class PairTrackV0Builder } mColHistManager.template fill(col, mcCols); mCprSe.setMagField(col.magField()); - return pairprocesshelpers::processSameEvent(trackSlice, v0Slice, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManager, mV0HistManager, mPairHistManagerSe, mTrackCleaner, mV0Cleaner, mCprSe, mPcSe); + return pairprocesshelpers::processSameEvent(trackSlice, v0Slice, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManagerSe, mV0HistManagerSe, mPairHistManagerSe, mTrackCleaner, mV0Cleaner, mCprSe, mPcSe); } template @@ -1349,13 +1399,13 @@ class PairTrackV0Builder { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, trackPartition, v0Partition, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, v0Partition, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mV0HistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, trackPartition, v0Partition, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, v0Partition, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mV0HistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, trackPartition, v0Partition, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, v0Partition, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mV0HistManagerMe); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -1367,13 +1417,13 @@ class PairTrackV0Builder { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, v0Partition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mV0Cleaner, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, v0Partition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mV0Cleaner, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mV0HistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, v0Partition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mV0Cleaner, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, v0Partition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mV0Cleaner, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mV0HistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, v0Partition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mV0Cleaner, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, v0Partition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mV0Cleaner, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mV0HistManagerMe); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -1382,8 +1432,10 @@ class PairTrackV0Builder private: colhistmanager::CollisionHistManager mColHistManager; - trackhistmanager::TrackHistManager mTrackHistManager; - v0histmanager::V0HistManager mV0HistManager; + trackhistmanager::TrackHistManager mTrackHistManagerSe; + v0histmanager::V0HistManager mV0HistManagerSe; + trackhistmanager::TrackHistManager mTrackHistManagerMe; + v0histmanager::V0HistManager mV0HistManagerMe; particlecleaner::ParticleCleaner mTrackCleaner; particlecleaner::ParticleCleaner mV0Cleaner; pairhistmanager::PairHistManager mPairHistManagerSe; @@ -1406,6 +1458,10 @@ template (registry, colHistSpec, confCollisionBinning); - mTrackHistManager.template init(registry, trackHistSpec, confTrackSelection); - mResonanceHistManager.template init(registry, resonanceHistSpec, dauHistSpec, confDauQaBinning); + mTrackHistManagerSe.template init(registry, trackHistSpec, confTrackSelection); + mResonanceHistManagerSe.template init(registry, resonanceHistSpec, dauHistSpec, confDauQaBinning); + mTrackHistManagerMe.template init(registry, trackHistSpec, confTrackSelection); + mResonanceHistManagerMe.template init(registry, resonanceHistSpec, dauHistSpec, confDauQaBinning); mPairHistManagerSe.template init(registry, pairHistSpec, confPairBinning, confPairCuts, confMixing); mPairHistManagerSe.setMass(confTrackSelection.pdgCodeAbs.value, confResonanceSelection.pdgCodeAbs.value); @@ -1486,7 +1544,7 @@ class PairTrackTwoPhotonResonanceBuilder } mColHistManager.template fill(col); mCprSe.setMagField(col.magField()); - return pairprocesshelpers::processSameEvent(trackSlice, resonanceSlice, photonTable, col, mTrackHistManager, mResonanceHistManager, mPairHistManagerSe, mCprSe, mPcSe); + return pairprocesshelpers::processSameEvent(trackSlice, resonanceSlice, photonTable, col, mTrackHistManagerSe, mResonanceHistManagerSe, mPairHistManagerSe, mCprSe, mPcSe); } template @@ -1494,13 +1552,13 @@ class PairTrackTwoPhotonResonanceBuilder { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, trackPartition, resonancePartition, photonTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, resonancePartition, photonTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mResonanceHistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, trackPartition, resonancePartition, photonTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, resonancePartition, photonTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mResonanceHistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, trackPartition, resonancePartition, photonTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, resonancePartition, photonTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mResonanceHistManagerMe); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -1509,8 +1567,10 @@ class PairTrackTwoPhotonResonanceBuilder private: colhistmanager::CollisionHistManager mColHistManager; - trackhistmanager::TrackHistManager mTrackHistManager; - twophotonresonancehistmanager::TwoPhotonResonanceHistManager mResonanceHistManager; + trackhistmanager::TrackHistManager mTrackHistManagerSe; + twophotonresonancehistmanager::TwoPhotonResonanceHistManager mResonanceHistManagerSe; + trackhistmanager::TrackHistManager mTrackHistManagerMe; + twophotonresonancehistmanager::TwoPhotonResonanceHistManager mResonanceHistManagerMe; pairhistmanager::PairHistManager mPairHistManagerSe; pairhistmanager::PairHistManager mPairHistManagerMe; closepairrejection::ClosePairRejectionTrackTwoPhotonResonance mCprSe; @@ -1526,6 +1586,10 @@ template (registry, colHistSpec, confCollisionBinning); - mTrackHistManager.template init(registry, trackHistSpec, confTrackSelection); - mResonanceHistManager.template init(registry, resonanceHistSpec, confResonanceSelection, posDauHistSpec, negDauHistSpec); + mTrackHistManagerSe.template init(registry, trackHistSpec, confTrackSelection); + mResonanceHistManagerSe.template init(registry, resonanceHistSpec, confResonanceSelection, posDauHistSpec, negDauHistSpec); + mTrackHistManagerMe.template init(registry, trackHistSpec, confTrackSelection); + mResonanceHistManagerMe.template init(registry, resonanceHistSpec, confResonanceSelection, posDauHistSpec, negDauHistSpec); mPairHistManagerSe.template init(registry, pairHistSpec, confPairBinning, confPairCuts, confMixing); mPairHistManagerSe.setMass(confTrackSelection.pdgCodeAbs.value, confResonanceSelection.pdgCodeAbs.value); @@ -1605,7 +1671,7 @@ class PairTrackTwoTrackResonanceBuilder } mColHistManager.template fill(col); mCprSe.setMagField(col.magField()); - return pairprocesshelpers::processSameEvent(trackSlice, resonanaceSlice, trackTable, col, mTrackHistManager, mResonanceHistManager, mPairHistManagerSe, mCprSe, mPcSe); + return pairprocesshelpers::processSameEvent(trackSlice, resonanaceSlice, trackTable, col, mTrackHistManagerSe, mResonanceHistManagerSe, mPairHistManagerSe, mCprSe, mPcSe); } template @@ -1613,13 +1679,13 @@ class PairTrackTwoTrackResonanceBuilder { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, trackPartition, resonancePartition, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, resonancePartition, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mResonanceHistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, trackPartition, resonancePartition, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, resonancePartition, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mResonanceHistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, trackPartition, resonancePartition, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, resonancePartition, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mResonanceHistManagerMe); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -1628,8 +1694,10 @@ class PairTrackTwoTrackResonanceBuilder private: colhistmanager::CollisionHistManager mColHistManager; - trackhistmanager::TrackHistManager mTrackHistManager; - twotrackresonancehistmanager::TwoTrackResonanceHistManager mResonanceHistManager; + trackhistmanager::TrackHistManager mTrackHistManagerSe; + twotrackresonancehistmanager::TwoTrackResonanceHistManager mResonanceHistManagerSe; + trackhistmanager::TrackHistManager mTrackHistManagerMe; + twotrackresonancehistmanager::TwoTrackResonanceHistManager mResonanceHistManagerMe; pairhistmanager::PairHistManager mPairHistManagerSe; pairhistmanager::PairHistManager mPairHistManagerMe; closepairrejection::ClosePairRejectionTrackV0 mCprSe; // cpr for twotrackresonances and v0 work the same way @@ -1647,6 +1715,12 @@ template (registry, colHistSpec, confCollisionBinning); - mV0HistManager.template init(registry, v0HistSpec, confV0Selection, V0posDauHistSpec, V0negDauHistSpec); - mResonanceHistManager.template init(registry, resonanceHistSpec, confResonanceSelection, ResonancePosDauHistSpec, ResonanceNegDauHistSpec); + mV0HistManagerSe.template init(registry, v0HistSpec, confV0Selection, V0posDauHistSpec, V0negDauHistSpec); + mResonanceHistManagerSe.template init(registry, resonanceHistSpec, confResonanceSelection, ResonancePosDauHistSpec, ResonanceNegDauHistSpec); + mV0HistManagerMe.template init(registry, v0HistSpec, confV0Selection, V0posDauHistSpec, V0negDauHistSpec); + mResonanceHistManagerMe.template init(registry, resonanceHistSpec, confResonanceSelection, ResonancePosDauHistSpec, ResonanceNegDauHistSpec); mPairHistManagerSe.template init(registry, pairHistSpec, confPairBinning, confPairCuts, confMixing); mPairHistManagerSe.setMass(confV0Selection.pdgCodeAbs.value, confResonanceSelection.pdgCodeAbs.value); @@ -1737,7 +1813,7 @@ class PairV0TwoTrackResonanceBuilder } mColHistManager.template fill(col); mCprSe.setMagField(col.magField()); - return pairprocesshelpers::processSameEvent(v0Slice, resonanaceSlice, trackTable, col, mV0HistManager, mResonanceHistManager, mPairHistManagerSe, mCprSe, mPcSe); + return pairprocesshelpers::processSameEvent(v0Slice, resonanaceSlice, trackTable, col, mV0HistManagerSe, mResonanceHistManagerSe, mPairHistManagerSe, mCprSe, mPcSe); } template @@ -1745,13 +1821,13 @@ class PairV0TwoTrackResonanceBuilder { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, v0Partition, resonancePartition, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, v0Partition, resonancePartition, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mV0HistManagerMe, mResonanceHistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, v0Partition, resonancePartition, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, v0Partition, resonancePartition, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mV0HistManagerMe, mResonanceHistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, v0Partition, resonancePartition, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, v0Partition, resonancePartition, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mV0HistManagerMe, mResonanceHistManagerMe); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -1760,8 +1836,10 @@ class PairV0TwoTrackResonanceBuilder private: colhistmanager::CollisionHistManager mColHistManager; - v0histmanager::V0HistManager mV0HistManager; - twotrackresonancehistmanager::TwoTrackResonanceHistManager mResonanceHistManager; + v0histmanager::V0HistManager mV0HistManagerSe; + twotrackresonancehistmanager::TwoTrackResonanceHistManager mResonanceHistManagerSe; + v0histmanager::V0HistManager mV0HistManagerMe; + twotrackresonancehistmanager::TwoTrackResonanceHistManager mResonanceHistManagerMe; pairhistmanager::PairHistManager mPairHistManagerSe; pairhistmanager::PairHistManager mPairHistManagerMe; closepairrejection::ClosePairRejectionV0V0 mCprSe; // cpr for twotrackresonances and v0 work the same way @@ -1776,6 +1854,9 @@ class PairV0TwoTrackResonanceBuilder template (registry, colHistSpec, confCollisionBinning); - mTrackHistManager.template init(registry, trackHistSpec, confTrackSelection); - mKinkHistManager.template init(registry, kinkHistSpec, confKinkSelection, chaDauHistSpec); + mTrackHistManagerSe.template init(registry, trackHistSpec, confTrackSelection); + mKinkHistManagerSe.template init(registry, kinkHistSpec, confKinkSelection, chaDauHistSpec); + mTrackHistManagerMe.template init(registry, trackHistSpec, confTrackSelection); + mKinkHistManagerMe.template init(registry, kinkHistSpec, confKinkSelection, chaDauHistSpec); mTrackCleaner.init(confTrackCleaner); mKinkCleaner.init(confKinkCleaner); @@ -1860,7 +1943,7 @@ class PairTrackKinkBuilder } mColHistManager.template fill(col); mCprSe.setMagField(col.magField()); - return pairprocesshelpers::processSameEvent(trackSlice, kinkSlice, trackTable, col, mTrackHistManager, mKinkHistManager, mPairHistManagerSe, mCprSe, mPcSe); + return pairprocesshelpers::processSameEvent(trackSlice, kinkSlice, trackTable, col, mTrackHistManagerSe, mKinkHistManagerSe, mPairHistManagerSe, mCprSe, mPcSe); } /// \return true if at least one pair passed all pair selections (usable as pair trigger) @@ -1874,7 +1957,7 @@ class PairTrackKinkBuilder } mColHistManager.template fill(col, mcCols); mCprSe.setMagField(col.magField()); - return pairprocesshelpers::processSameEvent(trackSlice, kinkSlice, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManager, mKinkHistManager, mPairHistManagerSe, mTrackCleaner, mKinkCleaner, mCprSe, mPcSe); + return pairprocesshelpers::processSameEvent(trackSlice, kinkSlice, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManagerSe, mKinkHistManagerSe, mPairHistManagerSe, mTrackCleaner, mKinkCleaner, mCprSe, mPcSe); } template @@ -1882,13 +1965,13 @@ class PairTrackKinkBuilder { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, trackPartition, kinkPartition, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, kinkPartition, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mKinkHistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, trackPartition, kinkPartition, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, kinkPartition, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mKinkHistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, trackPartition, kinkPartition, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, kinkPartition, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mKinkHistManagerMe); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -1900,13 +1983,13 @@ class PairTrackKinkBuilder { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, kinkPartition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mKinkCleaner, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, kinkPartition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mKinkCleaner, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mKinkHistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, kinkPartition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mKinkCleaner, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, kinkPartition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mKinkCleaner, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mKinkHistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, kinkPartition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mKinkCleaner, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, kinkPartition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mKinkCleaner, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mKinkHistManagerMe); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -1915,8 +1998,10 @@ class PairTrackKinkBuilder private: colhistmanager::CollisionHistManager mColHistManager; - trackhistmanager::TrackHistManager mTrackHistManager; - kinkhistmanager::KinkHistManager mKinkHistManager; + trackhistmanager::TrackHistManager mTrackHistManagerSe; + kinkhistmanager::KinkHistManager mKinkHistManagerSe; + trackhistmanager::TrackHistManager mTrackHistManagerMe; + kinkhistmanager::KinkHistManager mKinkHistManagerMe; particlecleaner::ParticleCleaner mTrackCleaner; particlecleaner::ParticleCleaner mKinkCleaner; pairhistmanager::PairHistManager mPairHistManagerSe; @@ -1935,6 +2020,11 @@ template (registry, colHistSpec, confCollisionBinning); - mTrackHistManager.template init(registry, trackHistSpec, confTrackSelection); - mCascadeHistManager.template init(registry, cascadeHistSpec, confCascadeSelection, bachelorHistSpec, posDauHistSpec, negDauHistSpec); + mTrackHistManagerSe.template init(registry, trackHistSpec, confTrackSelection); + mCascadeHistManagerSe.template init(registry, cascadeHistSpec, confCascadeSelection, bachelorHistSpec, posDauHistSpec, negDauHistSpec); + mTrackHistManagerMe.template init(registry, trackHistSpec, confTrackSelection); + mCascadeHistManagerMe.template init(registry, cascadeHistSpec, confCascadeSelection, bachelorHistSpec, posDauHistSpec, negDauHistSpec); mTrackCleaner.init(confTrackCleaner); mCascadeCleaner.init(confCascadeCleaner); @@ -2029,7 +2121,7 @@ class PairTrackCascadeBuilder } mColHistManager.template fill(col); mCprSe.setMagField(col.magField()); - return pairprocesshelpers::processSameEvent(trackSlice, cascadeSlice, trackTable, col, mTrackHistManager, mCascadeHistManager, mPairHistManagerSe, mCprSe, mPcSe); + return pairprocesshelpers::processSameEvent(trackSlice, cascadeSlice, trackTable, col, mTrackHistManagerSe, mCascadeHistManagerSe, mPairHistManagerSe, mCprSe, mPcSe); } /// \return true if at least one pair passed all pair selections (usable as pair trigger) @@ -2043,7 +2135,7 @@ class PairTrackCascadeBuilder } mColHistManager.template fill(col, mcCols); mCprSe.setMagField(col.magField()); - return pairprocesshelpers::processSameEvent(trackSlice, cascadeSlice, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManager, mCascadeHistManager, mPairHistManagerSe, mTrackCleaner, mCascadeCleaner, mCprSe, mPcSe); + return pairprocesshelpers::processSameEvent(trackSlice, cascadeSlice, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManagerSe, mCascadeHistManagerSe, mPairHistManagerSe, mTrackCleaner, mCascadeCleaner, mCprSe, mPcSe); } template @@ -2051,13 +2143,13 @@ class PairTrackCascadeBuilder { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, trackPartition, cascadePartition, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, cascadePartition, trackTable, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mCascadeHistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, trackPartition, cascadePartition, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, cascadePartition, trackTable, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mCascadeHistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, trackPartition, cascadePartition, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, trackPartition, cascadePartition, trackTable, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mCascadeHistManagerMe); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -2069,13 +2161,13 @@ class PairTrackCascadeBuilder { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, cascadePartition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mCascadeCleaner, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, cascadePartition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mCascadeCleaner, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mCascadeHistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, cascadePartition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mCascadeCleaner, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, cascadePartition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mCascadeCleaner, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mCascadeHistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, cascadePartition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mCascadeCleaner, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, mcCols, trackPartition, cascadePartition, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mTrackCleaner, mCascadeCleaner, mCprMe, mPcMe, mEventStride, mTrackHistManagerMe, mCascadeHistManagerMe); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -2084,8 +2176,10 @@ class PairTrackCascadeBuilder private: colhistmanager::CollisionHistManager mColHistManager; - trackhistmanager::TrackHistManager mTrackHistManager; - cascadehistmanager::CascadeHistManager mCascadeHistManager; + trackhistmanager::TrackHistManager mTrackHistManagerSe; + cascadehistmanager::CascadeHistManager mCascadeHistManagerSe; + trackhistmanager::TrackHistManager mTrackHistManagerMe; + cascadehistmanager::CascadeHistManager mCascadeHistManagerMe; particlecleaner::ParticleCleaner mTrackCleaner; particlecleaner::ParticleCleaner mCascadeCleaner; pairhistmanager::PairHistManager mPairHistManagerSe; @@ -2099,7 +2193,7 @@ class PairTrackCascadeBuilder int mEventStride = 1; }; -template +template class PairMcParticleMcParticleBuilder { public: @@ -2157,7 +2251,8 @@ class PairMcParticleMcParticleBuilder if (mSameSpecies) { mMcParticleCleaner1.init(confMcParticleCleaner1); - mMcParticleHistManager1.init(registry, mcParticleHistSpec1, confMcParticleBinning1); + mMcParticleHistManagerSe1.init(registry, mcParticleHistSpec1, confMcParticleBinning1); + mMcParticleHistManagerMe1.init(registry, mcParticleHistSpec1, confMcParticleBinning1); mPairHistManagerSe.setMass(confMcParticleSelection1.pdgCodeAbs.value, confMcParticleSelection1.pdgCodeAbs.value); mPairHistManagerSe.setCharge(1, 1); @@ -2169,8 +2264,10 @@ class PairMcParticleMcParticleBuilder } else { mMcParticleCleaner1.init(confMcParticleCleaner1); mMcParticleCleaner2.init(confMcParticleCleaner2); - mMcParticleHistManager1.init(registry, mcParticleHistSpec1, confMcParticleBinning1); - mMcParticleHistManager2.init(registry, mcParticleHistSpec2, confMcParticleBinning2); + mMcParticleHistManagerSe1.init(registry, mcParticleHistSpec1, confMcParticleBinning1); + mMcParticleHistManagerSe2.init(registry, mcParticleHistSpec2, confMcParticleBinning2); + mMcParticleHistManagerMe1.init(registry, mcParticleHistSpec1, confMcParticleBinning1); + mMcParticleHistManagerMe2.init(registry, mcParticleHistSpec2, confMcParticleBinning2); mPairHistManagerSe.setMass(confMcParticleSelection1.pdgCodeAbs.value, confMcParticleSelection2.pdgCodeAbs.value); mPairHistManagerSe.setCharge(1, 1); @@ -2216,7 +2313,7 @@ class PairMcParticleMcParticleBuilder if (mMixIdenticalParticles) { pairOrder = static_cast(mDist(mRng)); } - return pairprocesshelpers::processSameEvent(mcParticleSlice, mcParticles, mcMothers, mcPartonicMothers, col, mMcParticleHistManager1, mPairHistManagerSe, mMcParticleCleaner1, mCprSe, mPcSe, pairOrder); + return pairprocesshelpers::processSameEvent(mcParticleSlice, mcParticles, mcMothers, mcPartonicMothers, col, mMcParticleHistManagerSe1, mPairHistManagerSe, mMcParticleCleaner1, mCprSe, mPcSe, pairOrder); } auto mcParticleSlice1 = partition1->sliceByCachedUnsorted(o2::aod::femtomcparticle::fMcColId, col.globalIndex(), cache); @@ -2225,7 +2322,7 @@ class PairMcParticleMcParticleBuilder return false; } mColHistManager.template fill(col); - return pairprocesshelpers::processSameEvent(mcParticleSlice1, mcParticleSlice2, mcParticles, mcMothers, mcPartonicMothers, col, mMcParticleHistManager1, mMcParticleHistManager2, mPairHistManagerSe, mMcParticleCleaner1, mMcParticleCleaner2, mCprSe, mPcSe); + return pairprocesshelpers::processSameEvent(mcParticleSlice1, mcParticleSlice2, mcParticles, mcMothers, mcPartonicMothers, col, mMcParticleHistManagerSe1, mMcParticleHistManagerSe2, mPairHistManagerSe, mMcParticleCleaner1, mMcParticleCleaner2, mCprSe, mPcSe); } template @@ -2234,13 +2331,13 @@ class PairMcParticleMcParticleBuilder if (mSameSpecies) { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, partition1, partition1, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner1, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition1, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner1, mCprMe, mPcMe, mEventStride, mMcParticleHistManagerMe1, mMcParticleHistManagerMe1); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, partition1, partition1, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner1, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition1, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner1, mCprMe, mPcMe, mEventStride, mMcParticleHistManagerMe1, mMcParticleHistManagerMe1); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, partition1, partition1, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner1, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition1, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner1, mCprMe, mPcMe, mEventStride, mMcParticleHistManagerMe1, mMcParticleHistManagerMe1); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -2248,13 +2345,13 @@ class PairMcParticleMcParticleBuilder } else { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - pairprocesshelpers::processMixedEvent(cols, partition1, partition2, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner2, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition2, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mPairHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner2, mCprMe, mPcMe, mEventStride, mMcParticleHistManagerMe1, mMcParticleHistManagerMe2); break; case static_cast(pairhistmanager::kVtxCent): - pairprocesshelpers::processMixedEvent(cols, partition1, partition2, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner2, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition2, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mPairHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner2, mCprMe, mPcMe, mEventStride, mMcParticleHistManagerMe1, mMcParticleHistManagerMe2); break; case static_cast(pairhistmanager::kVtxMultCent): - pairprocesshelpers::processMixedEvent(cols, partition1, partition2, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner2, mCprMe, mPcMe, mEventStride); + pairprocesshelpers::processMixedEvent(cols, partition1, partition2, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mPairHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner2, mCprMe, mPcMe, mEventStride, mMcParticleHistManagerMe1, mMcParticleHistManagerMe2); break; default: LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; @@ -2264,8 +2361,10 @@ class PairMcParticleMcParticleBuilder private: colhistmanager::CollisionHistManager mColHistManager; - mcparticlehistmanager::McParticleHistManager mMcParticleHistManager1; - mcparticlehistmanager::McParticleHistManager mMcParticleHistManager2; + mcparticlehistmanager::McParticleHistManager mMcParticleHistManagerSe1; + mcparticlehistmanager::McParticleHistManager mMcParticleHistManagerSe2; + mcparticlehistmanager::McParticleHistManager mMcParticleHistManagerMe1; + mcparticlehistmanager::McParticleHistManager mMcParticleHistManagerMe2; pairhistmanager::PairHistManager mPairHistManagerSe; pairhistmanager::PairHistManager mPairHistManagerMe; closepairrejection::ClosePairRejectionMcParticleMcParticle mCprSe; diff --git a/PWGCF/Femto/Core/pairProcessHelpers.h b/PWGCF/Femto/Core/pairProcessHelpers.h index 64a4c510b27..8e885dd6d6b 100644 --- a/PWGCF/Femto/Core/pairProcessHelpers.h +++ b/PWGCF/Femto/Core/pairProcessHelpers.h @@ -429,7 +429,9 @@ template + typename T10, + typename T11, + typename T12> void processMixedEvent(T1 const& Collisions, T2& Partition1, T3& Partition2, @@ -440,7 +442,9 @@ void processMixedEvent(T1 const& Collisions, T8& PairHistManager, T9& CprManager, T10& PcManager, - int eventStride = 1) + int eventStride, + T11& ParticleHistManagerMe1, + T12& ParticleHistManagerMe2) { int64_t lastCollisionIndex = -1; int windowSizeRaw = 0; @@ -518,6 +522,11 @@ void processMixedEvent(T1 const& Collisions, hasValidPair = true; PairHistManager.trackParticlesPerEvent(p1, p2); PairHistManager.template fill(); + // single-particle histograms for particles that make it into an accepted mixed-event + // pair -- filled once per accepted pair (not deduplicated), so a particle contributes + // here exactly as often as it actually contributes to the mixed-event pair sample. + ParticleHistManagerMe1.template fill(p1, TrackTable); + ParticleHistManagerMe2.template fill(p2, TrackTable); } } @@ -551,7 +560,9 @@ template + typename T16, + typename T17, + typename T18> void processMixedEvent(T1 const& Collisions, T2 const& mcCollisions, T3& Partition1, @@ -568,7 +579,9 @@ void processMixedEvent(T1 const& Collisions, T14& ParticleCleaner2, T15& CprManager, T16& PcManager, - int eventStride = 1) + int eventStride, + T17& ParticleHistManagerMe1, + T18& ParticleHistManagerMe2) { int64_t lastCollisionIndex = -1; int windowSizeRaw = 0; @@ -650,6 +663,9 @@ void processMixedEvent(T1 const& Collisions, hasValidPair = true; PairHistManager.trackParticlesPerEvent(p1, p2); PairHistManager.template fill(); + // single-particle histograms for particles that make it into an accepted mixed-event pair + ParticleHistManagerMe1.template fill(p1, TrackTable); + ParticleHistManagerMe2.template fill(p2, TrackTable); } } @@ -679,7 +695,9 @@ template + typename T14, + typename T15, + typename T16> void processMixedEvent(T1 const& Collisions, T2& Partition1, T3& Partition2, @@ -694,7 +712,9 @@ void processMixedEvent(T1 const& Collisions, T12& ParticleCleaner2, T13& CprManager, T14& PcManager, - int eventStride = 1) + int eventStride, + T15& ParticleHistManagerMe1, + T16& ParticleHistManagerMe2) { int64_t lastCollisionIndex = -1; int windowSizeRaw = 0; @@ -766,6 +786,9 @@ void processMixedEvent(T1 const& Collisions, hasValidPair = true; PairHistManager.trackParticlesPerEvent(p1, p2); PairHistManager.template fill(); + // single-particle histograms for particles that make it into an accepted mixed-event pair + ParticleHistManagerMe1.fill(p1, mcMothers, mcPartonicMothers); + ParticleHistManagerMe2.fill(p2, mcMothers, mcPartonicMothers); } } diff --git a/PWGCF/Femto/Core/photonHistManager.h b/PWGCF/Femto/Core/photonHistManager.h index 23b8688dfa5..5ffe1e390fb 100644 --- a/PWGCF/Femto/Core/photonHistManager.h +++ b/PWGCF/Femto/Core/photonHistManager.h @@ -164,8 +164,15 @@ std::map> makePhotonQaHistSpecM #undef PHOTON_HIST_QA_MAP constexpr char PrefixPhotonQa[] = "PhotonQA/"; +// used only by the standalone QA task constexpr char PrefixTwoPhotonResonanceDau1Qa[] = "TwoPhotonResonanceDau1Qa/"; constexpr char PrefixTwoPhotonResonanceDau2Qa[] = "TwoPhotonResonanceDau2Qa/"; +// same-event siblings, used only by a pair builder's same-event resonance manager +constexpr char PrefixTwoPhotonResonanceDau1Se[] = "TwoPhotonResonanceDau1Se/"; +constexpr char PrefixTwoPhotonResonanceDau2Se[] = "TwoPhotonResonanceDau2Se/"; +// mixed-event siblings, used only by a pair builder's mixed-event resonance manager +constexpr char PrefixTwoPhotonResonanceDau1Me[] = "TwoPhotonResonanceDau1Me/"; +constexpr char PrefixTwoPhotonResonanceDau2Me[] = "TwoPhotonResonanceDau2Me/"; constexpr std::string_view AnalysisDir = "Analysis/"; constexpr std::string_view QaDir = "QA/"; diff --git a/PWGCF/Femto/Core/trackHistManager.h b/PWGCF/Femto/Core/trackHistManager.h index 36cae95349b..634512c8666 100644 --- a/PWGCF/Femto/Core/trackHistManager.h +++ b/PWGCF/Femto/Core/trackHistManager.h @@ -558,47 +558,72 @@ auto makeTrackMcQaHistSpecMap(T1 const& confBinningAnalysis, T2 const& confBinni #undef TRACK_HIST_MC_QA_MAP constexpr char PrefixTrackQa[] = "TrackQA/"; -constexpr char PrefixTrack1[] = "Track1/"; -constexpr char PrefixTrack2[] = "Track2/"; +// same-event / mixed-event siblings: single-particle histograms for a given track slot, split by +// whether the particle came from a same-event or mixed-event pair +constexpr char PrefixTrack1Se[] = "Track1/SE/"; +constexpr char PrefixTrack2Se[] = "Track2/SE/"; +constexpr char PrefixTrack3Se[] = "Track3/SE/"; +constexpr char PrefixTrack1Me[] = "Track1/ME/"; +constexpr char PrefixTrack2Me[] = "Track2/ME/"; +constexpr char PrefixTrack3Me[] = "Track3/ME/"; // for dN/deta tracks constexpr char PrefixDndetaTrackGlobal[] = "DndetaTrackGlobal/"; constexpr char PrefixDndetaTrackItsOnly[] = "DndetaTrackItsOnly/"; -constexpr char PrefixTrack3[] = "Track3/"; -constexpr char PrefixResonancePosDaughter[] = "ResonancePosDau/"; -constexpr char PrefixResonanceNegDaughter[] = "ResonanceNegDau/"; +// daughter-track prefixes below: Se/Me siblings for pair-builder single-particle histograms +// (split by whether the daughter came from a same-event or mixed-event candidate), plus the +// original, unsplit Qa variants used by standalone QA tasks (left untouched). +constexpr char PrefixResonancePosDaughterSe[] = "ResonancePosDau/SE/"; +constexpr char PrefixResonanceNegDaughterSe[] = "ResonanceNegDau/SE/"; +constexpr char PrefixResonancePosDaughterMe[] = "ResonancePosDau/ME/"; +constexpr char PrefixResonanceNegDaughterMe[] = "ResonanceNegDau/ME/"; constexpr char PrefixResonancePosDaughterQa[] = "ResonancePosDauQa/"; constexpr char PrefixResonanceNegDaughterQa[] = "ResonanceNegDauQa/"; -constexpr char PrefixD01PosDaughter[] = "D01PosDau/"; -constexpr char PrefixD01NegDaughter[] = "D01NegDau/"; -constexpr char PrefixD02PosDaughter[] = "D02PosDau/"; -constexpr char PrefixD02NegDaughter[] = "D02NegDau/"; +constexpr char PrefixD01PosDaughterSe[] = "D01PosDau/SE/"; +constexpr char PrefixD01NegDaughterSe[] = "D01NegDau/SE/"; +constexpr char PrefixD02PosDaughterSe[] = "D02PosDau/SE/"; +constexpr char PrefixD02NegDaughterSe[] = "D02NegDau/SE/"; +constexpr char PrefixD01PosDaughterMe[] = "D01PosDau/ME/"; +constexpr char PrefixD01NegDaughterMe[] = "D01NegDau/ME/"; +constexpr char PrefixD02PosDaughterMe[] = "D02PosDau/ME/"; +constexpr char PrefixD02NegDaughterMe[] = "D02NegDau/ME/"; constexpr char PrefixD01PosDaughterQa[] = "D01PosDauQa/"; constexpr char PrefixD01NegDaughterQa[] = "D01NegDauQa/"; -constexpr char PrefixLc1ProtonDaughter[] = "Lc1ProtonDau/"; -constexpr char PrefixLc1KaonDaughter[] = "Lc1KaonDau/"; -constexpr char PrefixLc1PionDaughter[] = "Lc1PionDau/"; +constexpr char PrefixLc1ProtonDaughterSe[] = "Lc1ProtonDau/SE/"; +constexpr char PrefixLc1KaonDaughterSe[] = "Lc1KaonDau/SE/"; +constexpr char PrefixLc1PionDaughterSe[] = "Lc1PionDau/SE/"; +constexpr char PrefixLc1ProtonDaughterMe[] = "Lc1ProtonDau/ME/"; +constexpr char PrefixLc1KaonDaughterMe[] = "Lc1KaonDau/ME/"; +constexpr char PrefixLc1PionDaughterMe[] = "Lc1PionDau/ME/"; constexpr char PrefixLc1ProtonDaughterQa[] = "Lc1ProtonDauQa/"; constexpr char PrefixLc1KaonDaughterQa[] = "Lc1KaonDauQa/"; constexpr char PrefixLc1PionDaughterQa[] = "Lc1PionDauQa/"; -constexpr char PrefixV01PosDaughter[] = "V01PosDau/"; -constexpr char PrefixV01NegDaughter[] = "V01NegDau/"; -constexpr char PrefixV02PosDaughter[] = "V02PosDau/"; -constexpr char PrefixV02NegDaughter[] = "V02NegDau/"; +constexpr char PrefixV01PosDaughterSe[] = "V01PosDau/SE/"; +constexpr char PrefixV01NegDaughterSe[] = "V01NegDau/SE/"; +constexpr char PrefixV02PosDaughterSe[] = "V02PosDau/SE/"; +constexpr char PrefixV02NegDaughterSe[] = "V02NegDau/SE/"; +constexpr char PrefixV01PosDaughterMe[] = "V01PosDau/ME/"; +constexpr char PrefixV01NegDaughterMe[] = "V01NegDau/ME/"; +constexpr char PrefixV02PosDaughterMe[] = "V02PosDau/ME/"; +constexpr char PrefixV02NegDaughterMe[] = "V02NegDau/ME/"; constexpr char PrefixV0PosDaughterQa[] = "V0PosDauQa/"; constexpr char PrefixV0NegDaughterQa[] = "V0NegDauQa/"; -constexpr char PrefixCascadePosDaughter[] = "CascadePosDau/"; -constexpr char PrefixCascadeNegDaughter[] = "CascadeNegDau/"; -constexpr char PrefixCascadeBachelor[] = "CascadeBachelor/"; +constexpr char PrefixCascadePosDaughterSe[] = "CascadePosDau/SE/"; +constexpr char PrefixCascadeNegDaughterSe[] = "CascadeNegDau/SE/"; +constexpr char PrefixCascadeBachelorSe[] = "CascadeBachelor/SE/"; +constexpr char PrefixCascadePosDaughterMe[] = "CascadePosDau/ME/"; +constexpr char PrefixCascadeNegDaughterMe[] = "CascadeNegDau/ME/"; +constexpr char PrefixCascadeBachelorMe[] = "CascadeBachelor/ME/"; constexpr char PrefixCascadePosDaughterQa[] = "CascadePosDauQa/"; constexpr char PrefixCascadeNegDaughterQa[] = "CascadeNegDauQa/"; constexpr char PrefixCascadeBachelorQa[] = "CascadeBachelorQa/"; -constexpr char PrefixKinkChaDaughter[] = "KinkChaDau/"; +constexpr char PrefixKinkChaDaughterSe[] = "KinkChaDau/SE/"; +constexpr char PrefixKinkChaDaughterMe[] = "KinkChaDau/ME/"; constexpr char PrefixKinkChaDaughterQa[] = "KinkChaDauQa/"; constexpr std::string_view AnalysisDir = "Analysis/"; diff --git a/PWGCF/Femto/Core/tripletBuilder.h b/PWGCF/Femto/Core/tripletBuilder.h index 1d6fbe76e9d..8a39f818c8b 100644 --- a/PWGCF/Femto/Core/tripletBuilder.h +++ b/PWGCF/Femto/Core/tripletBuilder.h @@ -49,6 +49,9 @@ const int64_t nLimitPartitionParticles = 1; template (registry, trackHistSpec1, confTrackSelection1); + mTrackHistManagerSe1.template init(registry, trackHistSpec1, confTrackSelection1); + mTrackHistManagerMe1.template init(registry, trackHistSpec1, confTrackSelection1); mTripletHistManagerSe.setMass(confTrackSelection1.pdgCodeAbs.value, confTrackSelection1.pdgCodeAbs.value, confTrackSelection1.pdgCodeAbs.value); mTripletHistManagerSe.setCharge(confTrackSelection1.chargeAbs.value, confTrackSelection1.chargeAbs.value, confTrackSelection1.chargeAbs.value); @@ -134,8 +138,10 @@ class TripletTrackTrackTrackBuilder // Track1 & Track2 & are the same particle species and track 3 is something else mCleaner1.init(confCleaner1); mCleaner3.init(confCleaner3); - mTrackHistManager1.template init(registry, trackHistSpec1, confTrackSelection1); - mTrackHistManager3.template init(registry, trackHistSpec3, confTrackSelection3); + mTrackHistManagerSe1.template init(registry, trackHistSpec1, confTrackSelection1); + mTrackHistManagerSe3.template init(registry, trackHistSpec3, confTrackSelection3); + mTrackHistManagerMe1.template init(registry, trackHistSpec1, confTrackSelection1); + mTrackHistManagerMe3.template init(registry, trackHistSpec3, confTrackSelection3); mTripletHistManagerSe.setMass(confTrackSelection1.pdgCodeAbs.value, confTrackSelection1.pdgCodeAbs.value, confTrackSelection3.pdgCodeAbs.value); mTripletHistManagerSe.setCharge(confTrackSelection1.chargeAbs.value, confTrackSelection1.chargeAbs.value, confTrackSelection3.chargeAbs.value); @@ -149,9 +155,12 @@ class TripletTrackTrackTrackBuilder mCleaner1.init(confCleaner1); mCleaner2.init(confCleaner2); mCleaner3.init(confCleaner3); - mTrackHistManager1.template init(registry, trackHistSpec1, confTrackSelection1); - mTrackHistManager2.template init(registry, trackHistSpec2, confTrackSelection2); - mTrackHistManager3.template init(registry, trackHistSpec3, confTrackSelection3); + mTrackHistManagerSe1.template init(registry, trackHistSpec1, confTrackSelection1); + mTrackHistManagerSe2.template init(registry, trackHistSpec2, confTrackSelection2); + mTrackHistManagerSe3.template init(registry, trackHistSpec3, confTrackSelection3); + mTrackHistManagerMe1.template init(registry, trackHistSpec1, confTrackSelection1); + mTrackHistManagerMe2.template init(registry, trackHistSpec2, confTrackSelection2); + mTrackHistManagerMe3.template init(registry, trackHistSpec3, confTrackSelection3); mTripletHistManagerSe.setMass(confTrackSelection1.pdgCodeAbs.value, confTrackSelection2.pdgCodeAbs.value, confTrackSelection3.pdgCodeAbs.value); mTripletHistManagerSe.setCharge(confTrackSelection1.chargeAbs.value, confTrackSelection2.chargeAbs.value, confTrackSelection3.chargeAbs.value); @@ -202,7 +211,7 @@ class TripletTrackTrackTrackBuilder if (mMixIdenticalParticles) { tripletOrder = static_cast(mDist(mRng)); } - return tripletprocesshelpers::processSameEvent(trackSlice1, trackTable, col, mTrackHistManager1, mTripletHistManagerSe, mCtrSe, mTcSe, tripletOrder); + return tripletprocesshelpers::processSameEvent(trackSlice1, trackTable, col, mTrackHistManagerSe1, mTripletHistManagerSe, mCtrSe, mTcSe, tripletOrder); } if (mTrack1Track2AreSameSpecies) { @@ -216,7 +225,7 @@ class TripletTrackTrackTrackBuilder if (mMixIdenticalParticles) { tripletOrder = static_cast(mDist(mRng)); } - return tripletprocesshelpers::processSameEvent(trackSlice1, trackSlice3, trackTable, col, mTrackHistManager1, mTrackHistManager3, mTripletHistManagerSe, mCtrSe, mTcSe, tripletOrder); + return tripletprocesshelpers::processSameEvent(trackSlice1, trackSlice3, trackTable, col, mTrackHistManagerSe1, mTrackHistManagerSe3, mTripletHistManagerSe, mCtrSe, mTcSe, tripletOrder); } auto trackSlice1 = partition1->sliceByCached(o2::aod::femtobase::stored::fColId, col.globalIndex(), cache); @@ -227,7 +236,7 @@ class TripletTrackTrackTrackBuilder } mColHistManager.template fill(col); mCtrSe.setMagField(col.magField()); - return tripletprocesshelpers::processSameEvent(trackSlice1, trackSlice2, trackSlice3, trackTable, col, mTrackHistManager1, mTrackHistManager2, mTrackHistManager3, mTripletHistManagerSe, mCtrSe, mTcSe); + return tripletprocesshelpers::processSameEvent(trackSlice1, trackSlice2, trackSlice3, trackTable, col, mTrackHistManagerSe1, mTrackHistManagerSe2, mTrackHistManagerSe3, mTripletHistManagerSe, mCtrSe, mTcSe); } // mc @@ -246,7 +255,7 @@ class TripletTrackTrackTrackBuilder if (mMixIdenticalParticles) { tripletOrder = static_cast(mDist(mRng)); } - return tripletprocesshelpers::processSameEvent(trackSlice1, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManager1, mTripletHistManagerSe, mCleaner1, mCtrSe, mTcSe, tripletOrder); + return tripletprocesshelpers::processSameEvent(trackSlice1, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManagerSe1, mTripletHistManagerSe, mCleaner1, mCtrSe, mTcSe, tripletOrder); } if (mTrack1Track2AreSameSpecies) { auto trackSlice1 = partition1->sliceByCached(o2::aod::femtobase::stored::fColId, col.globalIndex(), cache); @@ -259,7 +268,7 @@ class TripletTrackTrackTrackBuilder if (mMixIdenticalParticles) { tripletOrder = static_cast(mDist(mRng)); } - return tripletprocesshelpers::processSameEvent(trackSlice1, trackSlice3, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManager1, mTrackHistManager3, mTripletHistManagerSe, mCleaner1, mCleaner3, mCtrSe, mTcSe, tripletOrder); + return tripletprocesshelpers::processSameEvent(trackSlice1, trackSlice3, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManagerSe1, mTrackHistManagerSe3, mTripletHistManagerSe, mCleaner1, mCleaner3, mCtrSe, mTcSe, tripletOrder); } auto trackSlice1 = partition1->sliceByCached(o2::aod::femtobase::stored::fColId, col.globalIndex(), cache); @@ -270,7 +279,7 @@ class TripletTrackTrackTrackBuilder } mColHistManager.template fill(col, mcCols); mCtrSe.setMagField(col.magField()); - return tripletprocesshelpers::processSameEvent(trackSlice1, trackSlice2, trackSlice3, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManager1, mTrackHistManager2, mTrackHistManager3, mTripletHistManagerSe, mCleaner1, mCleaner2, mCleaner3, mCtrSe, mTcSe); + return tripletprocesshelpers::processSameEvent(trackSlice1, trackSlice2, trackSlice3, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManagerSe1, mTrackHistManagerSe2, mTrackHistManagerSe3, mTripletHistManagerSe, mCleaner1, mCleaner2, mCleaner3, mCtrSe, mTcSe); } // data @@ -280,13 +289,13 @@ class TripletTrackTrackTrackBuilder if (mTrack1Track2Track3AreSameSpecies) { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition1, trackTable, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition1, trackTable, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mTrackHistManagerMe1); break; case static_cast(pairhistmanager::kVtxCent): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition1, trackTable, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition1, trackTable, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mTrackHistManagerMe1); break; case static_cast(pairhistmanager::kVtxMultCent): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition1, trackTable, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition1, trackTable, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mTrackHistManagerMe1); break; default: LOG(fatal) << "Invalid binning policy specifed. Breaking..."; @@ -294,13 +303,13 @@ class TripletTrackTrackTrackBuilder } else if (mTrack1Track2AreSameSpecies) { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition3, trackTable, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition3, trackTable, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mTrackHistManagerMe3); break; case static_cast(pairhistmanager::kVtxCent): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition3, trackTable, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition3, trackTable, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mTrackHistManagerMe3); break; case static_cast(pairhistmanager::kVtxMultCent): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition3, trackTable, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition3, trackTable, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mTrackHistManagerMe3); break; default: LOG(fatal) << "Invalid binning policy specifed. Breaking..."; @@ -308,13 +317,13 @@ class TripletTrackTrackTrackBuilder } else { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition2, partition3, trackTable, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition2, partition3, trackTable, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2, mTrackHistManagerMe3); break; case static_cast(pairhistmanager::kVtxCent): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition2, partition3, trackTable, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition2, partition3, trackTable, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2, mTrackHistManagerMe3); break; case static_cast(pairhistmanager::kVtxMultCent): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition2, partition3, trackTable, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition2, partition3, trackTable, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2, mTrackHistManagerMe3); break; default: LOG(fatal) << "Invalid binning policy specifed. Breaking..."; @@ -329,13 +338,13 @@ class TripletTrackTrackTrackBuilder if (mTrack1Track2Track3AreSameSpecies) { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner1, mCleaner1, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner1, mCleaner1, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mTrackHistManagerMe1); break; case static_cast(pairhistmanager::kVtxCent): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner1, mCleaner1, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner1, mCleaner1, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mTrackHistManagerMe1); break; case static_cast(pairhistmanager::kVtxMultCent): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner1, mCleaner1, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition1, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner1, mCleaner1, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mTrackHistManagerMe1); break; default: LOG(fatal) << "Invalid binning policy specifed. Breaking..."; @@ -343,13 +352,13 @@ class TripletTrackTrackTrackBuilder } else if (mTrack1Track2AreSameSpecies) { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner1, mCleaner3, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner1, mCleaner3, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mTrackHistManagerMe3); break; case static_cast(pairhistmanager::kVtxCent): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner1, mCleaner3, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner1, mCleaner3, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mTrackHistManagerMe3); break; case static_cast(pairhistmanager::kVtxMultCent): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner1, mCleaner3, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner1, mCleaner3, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mTrackHistManagerMe3); break; default: LOG(fatal) << "Invalid binning policy specifed. Breaking..."; @@ -357,13 +366,13 @@ class TripletTrackTrackTrackBuilder } else { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner2, mCleaner3, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner2, mCleaner3, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2, mTrackHistManagerMe3); break; case static_cast(pairhistmanager::kVtxCent): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner2, mCleaner3, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner2, mCleaner3, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2, mTrackHistManagerMe3); break; case static_cast(pairhistmanager::kVtxMultCent): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner2, mCleaner3, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner2, mCleaner3, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2, mTrackHistManagerMe3); break; default: LOG(fatal) << "Invalid binning policy specifed. Breaking..."; @@ -373,9 +382,12 @@ class TripletTrackTrackTrackBuilder private: colhistmanager::CollisionHistManager mColHistManager; - trackhistmanager::TrackHistManager mTrackHistManager1; - trackhistmanager::TrackHistManager mTrackHistManager2; - trackhistmanager::TrackHistManager mTrackHistManager3; + trackhistmanager::TrackHistManager mTrackHistManagerSe1; + trackhistmanager::TrackHistManager mTrackHistManagerSe2; + trackhistmanager::TrackHistManager mTrackHistManagerSe3; + trackhistmanager::TrackHistManager mTrackHistManagerMe1; + trackhistmanager::TrackHistManager mTrackHistManagerMe2; + trackhistmanager::TrackHistManager mTrackHistManagerMe3; particlecleaner::ParticleCleaner mCleaner1; particlecleaner::ParticleCleaner mCleaner2; particlecleaner::ParticleCleaner mCleaner3; @@ -402,6 +414,11 @@ template (registry, trackHistSpec1, confTrackSelection1); - mV0HistManager.template init(registry, v0histSpec, confV0Selection, posDauhistSpec, negDauhistSpec); + mTrackHistManagerSe1.template init(registry, trackHistSpec1, confTrackSelection1); + mV0HistManagerSe.template init(registry, v0histSpec, confV0Selection, posDauhistSpec, negDauhistSpec); + mTrackHistManagerMe1.template init(registry, trackHistSpec1, confTrackSelection1); + mV0HistManagerMe.template init(registry, v0histSpec, confV0Selection, posDauhistSpec, negDauhistSpec); mTripletHistManagerSe.setMass(confTrackSelection1.pdgCodeAbs.value, confTrackSelection1.pdgCodeAbs.value, confV0Selection.pdgCodeAbs.value); mTripletHistManagerSe.setCharge(confTrackSelection1.chargeAbs.value, confTrackSelection1.chargeAbs.value, 1); @@ -489,9 +508,12 @@ class TripletTrackTrackV0Builder // all three tracks are different mCleaner1.init(confCleaner1); mCleaner2.init(confCleaner2); - mTrackHistManager1.template init(registry, trackHistSpec1, confTrackSelection1); - mTrackHistManager2.template init(registry, trackHistSpec2, confTrackSelection2); - mV0HistManager.template init(registry, v0histSpec, confV0Selection, posDauhistSpec, negDauhistSpec); + mTrackHistManagerSe1.template init(registry, trackHistSpec1, confTrackSelection1); + mTrackHistManagerSe2.template init(registry, trackHistSpec2, confTrackSelection2); + mV0HistManagerSe.template init(registry, v0histSpec, confV0Selection, posDauhistSpec, negDauhistSpec); + mTrackHistManagerMe1.template init(registry, trackHistSpec1, confTrackSelection1); + mTrackHistManagerMe2.template init(registry, trackHistSpec2, confTrackSelection2); + mV0HistManagerMe.template init(registry, v0histSpec, confV0Selection, posDauhistSpec, negDauhistSpec); mTripletHistManagerSe.setMass(confTrackSelection1.pdgCodeAbs.value, confTrackSelection2.pdgCodeAbs.value, confV0Selection.pdgCodeAbs.value); mTripletHistManagerSe.setCharge(confTrackSelection1.chargeAbs.value, confTrackSelection2.chargeAbs.value, 1); @@ -538,7 +560,7 @@ class TripletTrackTrackV0Builder if (mMixIdenticalParticles) { tripletOrder = static_cast(mDist(mRng)); } - return tripletprocesshelpers::processSameEvent(trackSlice1, v0Slice, trackTable, col, mTrackHistManager1, mV0HistManager, mTripletHistManagerSe, mCtrSe, mTcSe, tripletOrder); + return tripletprocesshelpers::processSameEvent(trackSlice1, v0Slice, trackTable, col, mTrackHistManagerSe1, mV0HistManagerSe, mTripletHistManagerSe, mCtrSe, mTcSe, tripletOrder); } auto trackSlice1 = partition1->sliceByCached(o2::aod::femtobase::stored::fColId, col.globalIndex(), cache); @@ -549,7 +571,7 @@ class TripletTrackTrackV0Builder } mColHistManager.template fill(col); mCtrSe.setMagField(col.magField()); - return tripletprocesshelpers::processSameEvent(trackSlice1, trackSlice2, v0Slice, trackTable, col, mTrackHistManager1, mTrackHistManager2, mV0HistManager, mTripletHistManagerSe, mCtrSe, mTcSe); + return tripletprocesshelpers::processSameEvent(trackSlice1, trackSlice2, v0Slice, trackTable, col, mTrackHistManagerSe1, mTrackHistManagerSe2, mV0HistManagerSe, mTripletHistManagerSe, mCtrSe, mTcSe); } // mc @@ -569,7 +591,7 @@ class TripletTrackTrackV0Builder if (mMixIdenticalParticles) { tripletOrder = static_cast(mDist(mRng)); } - return tripletprocesshelpers::processSameEvent(trackSlice1, v0Slice, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManager1, mV0HistManager, mTripletHistManagerSe, mCleaner1, mV0Cleaner, mCtrSe, mTcSe, tripletOrder); + return tripletprocesshelpers::processSameEvent(trackSlice1, v0Slice, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManagerSe1, mV0HistManagerSe, mTripletHistManagerSe, mCleaner1, mV0Cleaner, mCtrSe, mTcSe, tripletOrder); } auto trackSlice1 = partition1->sliceByCached(o2::aod::femtobase::stored::fColId, col.globalIndex(), cache); @@ -580,7 +602,7 @@ class TripletTrackTrackV0Builder } mColHistManager.template fill(col, mcCols); mCtrSe.setMagField(col.magField()); - return tripletprocesshelpers::processSameEvent(trackSlice1, trackSlice2, v0Slice, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManager1, mTrackHistManager2, mV0HistManager, mTripletHistManagerSe, mCleaner1, mCleaner2, mV0Cleaner, mCtrSe, mTcSe); + return tripletprocesshelpers::processSameEvent(trackSlice1, trackSlice2, v0Slice, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManagerSe1, mTrackHistManagerSe2, mV0HistManagerSe, mTripletHistManagerSe, mCleaner1, mCleaner2, mV0Cleaner, mCtrSe, mTcSe); } // data @@ -590,13 +612,13 @@ class TripletTrackTrackV0Builder if (mTrack1Track2AreSameSpecies) { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition3, trackTable, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition3, trackTable, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mV0HistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition3, trackTable, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition3, trackTable, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mV0HistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition3, trackTable, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition3, trackTable, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mV0HistManagerMe); break; default: LOG(fatal) << "Invalid binning policy specifed. Breaking..."; @@ -604,13 +626,13 @@ class TripletTrackTrackV0Builder } else { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition2, partition3, trackTable, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition2, partition3, trackTable, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2, mV0HistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition2, partition3, trackTable, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition2, partition3, trackTable, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2, mV0HistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition2, partition3, trackTable, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition2, partition3, trackTable, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2, mV0HistManagerMe); break; default: LOG(fatal) << "Invalid binning policy specifed. Breaking..."; @@ -625,13 +647,13 @@ class TripletTrackTrackV0Builder if (mTrack1Track2AreSameSpecies) { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner1, mV0Cleaner, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner1, mV0Cleaner, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mV0HistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner1, mV0Cleaner, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner1, mV0Cleaner, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mV0HistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner1, mV0Cleaner, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner1, mV0Cleaner, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mV0HistManagerMe); break; default: LOG(fatal) << "Invalid binning policy specifed. Breaking..."; @@ -639,13 +661,13 @@ class TripletTrackTrackV0Builder } else { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner2, mV0Cleaner, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner2, mV0Cleaner, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2, mV0HistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner2, mV0Cleaner, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner2, mV0Cleaner, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2, mV0HistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner2, mV0Cleaner, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCleaner1, mCleaner2, mV0Cleaner, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2, mV0HistManagerMe); break; default: LOG(fatal) << "Invalid binning policy specifed. Breaking..."; @@ -655,9 +677,12 @@ class TripletTrackTrackV0Builder private: colhistmanager::CollisionHistManager mColHistManager; - trackhistmanager::TrackHistManager mTrackHistManager1; - trackhistmanager::TrackHistManager mTrackHistManager2; - v0histmanager::V0HistManager mV0HistManager; + trackhistmanager::TrackHistManager mTrackHistManagerSe1; + trackhistmanager::TrackHistManager mTrackHistManagerSe2; + v0histmanager::V0HistManager mV0HistManagerSe; + trackhistmanager::TrackHistManager mTrackHistManagerMe1; + trackhistmanager::TrackHistManager mTrackHistManagerMe2; + v0histmanager::V0HistManager mV0HistManagerMe; particlecleaner::ParticleCleaner mCleaner1; particlecleaner::ParticleCleaner mCleaner2; particlecleaner::ParticleCleaner mV0Cleaner; @@ -684,6 +709,12 @@ template (registry, trackHistSpec1, confTrackSelection1); - mCascadeHistManager.template init(registry, cascadeHistSpec, confCascadeSelection, bachelorHistSpec, posDauHistSpec, negDauHistSpec); + mTrackHistManagerSe1.template init(registry, trackHistSpec1, confTrackSelection1); + mCascadeHistManagerSe.template init(registry, cascadeHistSpec, confCascadeSelection, bachelorHistSpec, posDauHistSpec, negDauHistSpec); + mTrackHistManagerMe1.template init(registry, trackHistSpec1, confTrackSelection1); + mCascadeHistManagerMe.template init(registry, cascadeHistSpec, confCascadeSelection, bachelorHistSpec, posDauHistSpec, negDauHistSpec); mTripletHistManagerSe.setMass(confTrackSelection1.pdgCodeAbs.value, confTrackSelection1.pdgCodeAbs.value, confCascadeSelection.pdgCodeAbs.value); mTripletHistManagerSe.setCharge(confTrackSelection1.chargeAbs.value, confTrackSelection1.chargeAbs.value, 1); mCtrSe.init(registry, ctrHistSpec, cprHistSpecBachelor, cprHistSpecV0Daughter, confCtr, confCprBachelor, confCprV0Daughter, confTrackSelection1.chargeAbs.value, confTrackSelection1.chargeAbs.value); @@ -782,9 +815,12 @@ class TripletTrackTrackCascadeBuilder // all three tracks are different mTrackCleaner1.init(confTrackCleaner1); mTrackCleaner2.init(confTrackCleaner2); - mTrackHistManager1.template init(registry, trackHistSpec1, confTrackSelection1); - mTrackHistManager2.template init(registry, trackHistSpec2, confTrackSelection2); - mCascadeHistManager.template init(registry, cascadeHistSpec, confCascadeSelection, bachelorHistSpec, posDauHistSpec, negDauHistSpec); + mTrackHistManagerSe1.template init(registry, trackHistSpec1, confTrackSelection1); + mTrackHistManagerSe2.template init(registry, trackHistSpec2, confTrackSelection2); + mCascadeHistManagerSe.template init(registry, cascadeHistSpec, confCascadeSelection, bachelorHistSpec, posDauHistSpec, negDauHistSpec); + mTrackHistManagerMe1.template init(registry, trackHistSpec1, confTrackSelection1); + mTrackHistManagerMe2.template init(registry, trackHistSpec2, confTrackSelection2); + mCascadeHistManagerMe.template init(registry, cascadeHistSpec, confCascadeSelection, bachelorHistSpec, posDauHistSpec, negDauHistSpec); mTripletHistManagerSe.setMass(confTrackSelection1.pdgCodeAbs.value, confTrackSelection2.pdgCodeAbs.value, confCascadeSelection.pdgCodeAbs.value); mTripletHistManagerSe.setCharge(confTrackSelection1.chargeAbs.value, confTrackSelection2.chargeAbs.value, 1); @@ -830,7 +866,7 @@ class TripletTrackTrackCascadeBuilder if (mMixIdenticalParticles) { tripletOrder = static_cast(mDist(mRng)); } - return tripletprocesshelpers::processSameEvent(trackSlice1, cascadeSlice, trackTable, col, mTrackHistManager1, mCascadeHistManager, mTripletHistManagerSe, mCtrSe, mTcSe, tripletOrder); + return tripletprocesshelpers::processSameEvent(trackSlice1, cascadeSlice, trackTable, col, mTrackHistManagerSe1, mCascadeHistManagerSe, mTripletHistManagerSe, mCtrSe, mTcSe, tripletOrder); } auto trackSlice1 = partition1->sliceByCached(o2::aod::femtobase::stored::fColId, col.globalIndex(), cache); @@ -841,7 +877,7 @@ class TripletTrackTrackCascadeBuilder } mColHistManager.template fill(col); mCtrSe.setMagField(col.magField()); - return tripletprocesshelpers::processSameEvent(trackSlice1, trackSlice2, cascadeSlice, trackTable, col, mTrackHistManager1, mTrackHistManager2, mCascadeHistManager, mTripletHistManagerSe, mCtrSe, mTcSe); + return tripletprocesshelpers::processSameEvent(trackSlice1, trackSlice2, cascadeSlice, trackTable, col, mTrackHistManagerSe1, mTrackHistManagerSe2, mCascadeHistManagerSe, mTripletHistManagerSe, mCtrSe, mTcSe); } // mc @@ -861,7 +897,7 @@ class TripletTrackTrackCascadeBuilder if (mMixIdenticalParticles) { tripletOrder = static_cast(mDist(mRng)); } - return tripletprocesshelpers::processSameEvent(trackSlice1, cascadeSlice, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManager1, mCascadeHistManager, mTripletHistManagerSe, mTrackCleaner1, mCascadeCleaner, mCtrSe, mTcSe, tripletOrder); + return tripletprocesshelpers::processSameEvent(trackSlice1, cascadeSlice, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManagerSe1, mCascadeHistManagerSe, mTripletHistManagerSe, mTrackCleaner1, mCascadeCleaner, mCtrSe, mTcSe, tripletOrder); } auto trackSlice1 = partition1->sliceByCached(o2::aod::femtobase::stored::fColId, col.globalIndex(), cache); @@ -872,7 +908,7 @@ class TripletTrackTrackCascadeBuilder } mColHistManager.template fill(col, mcCols); mCtrSe.setMagField(col.magField()); - return tripletprocesshelpers::processSameEvent(trackSlice1, trackSlice2, cascadeSlice, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManager1, mTrackHistManager2, mCascadeHistManager, mTripletHistManagerSe, mTrackCleaner1, mTrackCleaner2, mCascadeCleaner, mCtrSe, mTcSe); + return tripletprocesshelpers::processSameEvent(trackSlice1, trackSlice2, cascadeSlice, trackTable, mcParticles, mcMothers, mcPartonicMothers, col, mcCols, mTrackHistManagerSe1, mTrackHistManagerSe2, mCascadeHistManagerSe, mTripletHistManagerSe, mTrackCleaner1, mTrackCleaner2, mCascadeCleaner, mCtrSe, mTcSe); } // data @@ -882,13 +918,13 @@ class TripletTrackTrackCascadeBuilder if (mTrack1Track2AreSameSpecies) { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition3, trackTable, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition3, trackTable, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mCascadeHistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition3, trackTable, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition3, trackTable, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mCascadeHistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition3, trackTable, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition1, partition3, trackTable, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mCascadeHistManagerMe); break; default: LOG(fatal) << "Invalid binning policy specifed. Breaking..."; @@ -896,13 +932,13 @@ class TripletTrackTrackCascadeBuilder } else { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition2, partition3, trackTable, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition2, partition3, trackTable, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2, mCascadeHistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition2, partition3, trackTable, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition2, partition3, trackTable, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2, mCascadeHistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - tripletprocesshelpers::processMixedEvent(cols, partition1, partition2, partition3, trackTable, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, partition1, partition2, partition3, trackTable, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2, mCascadeHistManagerMe); break; default: LOG(fatal) << "Invalid binning policy specifed. Breaking..."; @@ -917,13 +953,13 @@ class TripletTrackTrackCascadeBuilder if (mTrack1Track2AreSameSpecies) { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mTrackCleaner1, mTrackCleaner1, mCascadeCleaner, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mTrackCleaner1, mTrackCleaner1, mCascadeCleaner, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mCascadeHistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mTrackCleaner1, mTrackCleaner1, mCascadeCleaner, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mTrackCleaner1, mTrackCleaner1, mCascadeCleaner, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mCascadeHistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mTrackCleaner1, mTrackCleaner1, mCascadeCleaner, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition1, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mTrackCleaner1, mTrackCleaner1, mCascadeCleaner, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe1, mCascadeHistManagerMe); break; default: LOG(fatal) << "Invalid binning policy specifed. Breaking..."; @@ -931,13 +967,13 @@ class TripletTrackTrackCascadeBuilder } else { switch (mMixingPolicy) { case static_cast(pairhistmanager::kVtxMult): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mTrackCleaner1, mTrackCleaner2, mCascadeCleaner, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mTrackCleaner1, mTrackCleaner2, mCascadeCleaner, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2, mCascadeHistManagerMe); break; case static_cast(pairhistmanager::kVtxCent): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mTrackCleaner1, mTrackCleaner2, mCascadeCleaner, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mTrackCleaner1, mTrackCleaner2, mCascadeCleaner, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2, mCascadeHistManagerMe); break; case static_cast(pairhistmanager::kVtxMultCent): - tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mTrackCleaner1, mTrackCleaner2, mCascadeCleaner, mCtrMe, mTcMe, mEventStride); + tripletprocesshelpers::processMixedEvent(cols, mcCols, partition1, partition2, partition3, trackTable, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mTrackCleaner1, mTrackCleaner2, mCascadeCleaner, mCtrMe, mTcMe, mEventStride, mTrackHistManagerMe1, mTrackHistManagerMe2, mCascadeHistManagerMe); break; default: LOG(fatal) << "Invalid binning policy specifed. Breaking..."; @@ -947,9 +983,12 @@ class TripletTrackTrackCascadeBuilder private: colhistmanager::CollisionHistManager mColHistManager; - trackhistmanager::TrackHistManager mTrackHistManager1; - trackhistmanager::TrackHistManager mTrackHistManager2; - cascadehistmanager::CascadeHistManager mCascadeHistManager; + trackhistmanager::TrackHistManager mTrackHistManagerSe1; + trackhistmanager::TrackHistManager mTrackHistManagerSe2; + cascadehistmanager::CascadeHistManager mCascadeHistManagerSe; + trackhistmanager::TrackHistManager mTrackHistManagerMe1; + trackhistmanager::TrackHistManager mTrackHistManagerMe2; + cascadehistmanager::CascadeHistManager mCascadeHistManagerMe; particlecleaner::ParticleCleaner mTrackCleaner1; particlecleaner::ParticleCleaner mTrackCleaner2; particlecleaner::ParticleCleaner mCascadeCleaner; @@ -974,6 +1013,9 @@ class TripletTrackTrackCascadeBuilder template (mDist(mRng)); } - return tripletprocesshelpers::processSameEventMcTruth(mcParticleSlice1, mcParticles, mcMothers, mcPartonicMothers, mcCol, mMcParticleHistManager1, mTripletHistManagerSe, mMcParticleCleaner1, mCtrSe, mTcSe, tripletOrder); + return tripletprocesshelpers::processSameEventMcTruth(mcParticleSlice1, mcParticles, mcMothers, mcPartonicMothers, mcCol, mMcParticleHistManagerSe1, mTripletHistManagerSe, mMcParticleCleaner1, mCtrSe, mTcSe, tripletOrder); } if (mParticle1Particle2AreSameSpecies) { @@ -1104,7 +1152,7 @@ class TripletMcParticleMcParticleMcParticleBuilder if (mMixIdenticalParticles) { tripletOrder = static_cast(mDist(mRng)); } - return tripletprocesshelpers::processSameEventMcTruth(mcParticleSlice1, mcParticleSlice3, mcParticles, mcMothers, mcPartonicMothers, mcCol, mMcParticleHistManager1, mMcParticleHistManager3, mTripletHistManagerSe, mMcParticleCleaner1, mMcParticleCleaner3, mCtrSe, mTcSe, tripletOrder); + return tripletprocesshelpers::processSameEventMcTruth(mcParticleSlice1, mcParticleSlice3, mcParticles, mcMothers, mcPartonicMothers, mcCol, mMcParticleHistManagerSe1, mMcParticleHistManagerSe3, mTripletHistManagerSe, mMcParticleCleaner1, mMcParticleCleaner3, mCtrSe, mTcSe, tripletOrder); } auto mcParticleSlice1 = partition1->sliceByCachedUnsorted(o2::aod::femtomcparticle::fMcColId, mcCol.globalIndex(), cache); @@ -1114,38 +1162,68 @@ class TripletMcParticleMcParticleMcParticleBuilder return false; } mColHistManager.template fill(mcCol); - return tripletprocesshelpers::processSameEventMcTruth(mcParticleSlice1, mcParticleSlice2, mcParticleSlice3, mcParticles, mcMothers, mcPartonicMothers, mcCol, mMcParticleHistManager1, mMcParticleHistManager2, mMcParticleHistManager3, mTripletHistManagerSe, mMcParticleCleaner1, mMcParticleCleaner2, mMcParticleCleaner3, mCtrSe, mTcSe); + return tripletprocesshelpers::processSameEventMcTruth(mcParticleSlice1, mcParticleSlice2, mcParticleSlice3, mcParticles, mcMothers, mcPartonicMothers, mcCol, mMcParticleHistManagerSe1, mMcParticleHistManagerSe2, mMcParticleHistManagerSe3, mTripletHistManagerSe, mMcParticleCleaner1, mMcParticleCleaner2, mMcParticleCleaner3, mCtrSe, mTcSe); } template void processMixedEvent(T1 const& mcCols, T2 const& mcParticles, T3 const& mcMothers, T4 const& mcPartonicMothers, T5& partition1, T6& partition2, T7& partition3, T8& cache, T9& binsVtxMult, T10& binsVtxCent, T11& binsVtxMultCent) { - // for identical species the same partition is used several times - auto& p2 = (mParticle1Particle2Particle3AreSameSpecies || mParticle1Particle2AreSameSpecies) ? partition1 : partition2; - auto& p3 = mParticle1Particle2Particle3AreSameSpecies ? partition1 : partition3; - auto& cleaner2 = (mParticle1Particle2Particle3AreSameSpecies || mParticle1Particle2AreSameSpecies) ? mMcParticleCleaner1 : mMcParticleCleaner2; - auto& cleaner3 = mParticle1Particle2Particle3AreSameSpecies ? mMcParticleCleaner1 : mMcParticleCleaner3; - - switch (mMixingPolicy) { - case triplethistmanager::MixingPolicy::kVtxMult: - tripletprocesshelpers::processMixedEventMcTruth(mcCols, partition1, p2, p3, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mMcParticleCleaner1, cleaner2, cleaner3, mCtrMe, mTcMe, mEventStride); - break; - case triplethistmanager::MixingPolicy::kVtxCent: - tripletprocesshelpers::processMixedEventMcTruth(mcCols, partition1, p2, p3, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mMcParticleCleaner1, cleaner2, cleaner3, mCtrMe, mTcMe, mEventStride); - break; - case triplethistmanager::MixingPolicy::kVtxMultCent: - tripletprocesshelpers::processMixedEventMcTruth(mcCols, partition1, p2, p3, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mMcParticleCleaner1, cleaner2, cleaner3, mCtrMe, mTcMe, mEventStride); - break; - default: - LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; + // mMcParticleHistManagerMeN are distinct types (templated on a per-slot prefix), so -- unlike + // the partitions/cleaners above, which share a single concrete type and can be selected via a + // ternary reference -- the histogram managers must be selected via explicit branching instead + if (mParticle1Particle2Particle3AreSameSpecies) { + switch (mMixingPolicy) { + case triplethistmanager::MixingPolicy::kVtxMult: + tripletprocesshelpers::processMixedEventMcTruth(mcCols, partition1, partition1, partition1, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner1, mMcParticleCleaner1, mCtrMe, mTcMe, mEventStride, mMcParticleHistManagerMe1, mMcParticleHistManagerMe1, mMcParticleHistManagerMe1); + break; + case triplethistmanager::MixingPolicy::kVtxCent: + tripletprocesshelpers::processMixedEventMcTruth(mcCols, partition1, partition1, partition1, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner1, mMcParticleCleaner1, mCtrMe, mTcMe, mEventStride, mMcParticleHistManagerMe1, mMcParticleHistManagerMe1, mMcParticleHistManagerMe1); + break; + case triplethistmanager::MixingPolicy::kVtxMultCent: + tripletprocesshelpers::processMixedEventMcTruth(mcCols, partition1, partition1, partition1, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner1, mMcParticleCleaner1, mCtrMe, mTcMe, mEventStride, mMcParticleHistManagerMe1, mMcParticleHistManagerMe1, mMcParticleHistManagerMe1); + break; + default: + LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; + } + } else if (mParticle1Particle2AreSameSpecies) { + switch (mMixingPolicy) { + case triplethistmanager::MixingPolicy::kVtxMult: + tripletprocesshelpers::processMixedEventMcTruth(mcCols, partition1, partition1, partition3, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner1, mMcParticleCleaner3, mCtrMe, mTcMe, mEventStride, mMcParticleHistManagerMe1, mMcParticleHistManagerMe1, mMcParticleHistManagerMe3); + break; + case triplethistmanager::MixingPolicy::kVtxCent: + tripletprocesshelpers::processMixedEventMcTruth(mcCols, partition1, partition1, partition3, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner1, mMcParticleCleaner3, mCtrMe, mTcMe, mEventStride, mMcParticleHistManagerMe1, mMcParticleHistManagerMe1, mMcParticleHistManagerMe3); + break; + case triplethistmanager::MixingPolicy::kVtxMultCent: + tripletprocesshelpers::processMixedEventMcTruth(mcCols, partition1, partition1, partition3, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner1, mMcParticleCleaner3, mCtrMe, mTcMe, mEventStride, mMcParticleHistManagerMe1, mMcParticleHistManagerMe1, mMcParticleHistManagerMe3); + break; + default: + LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; + } + } else { + switch (mMixingPolicy) { + case triplethistmanager::MixingPolicy::kVtxMult: + tripletprocesshelpers::processMixedEventMcTruth(mcCols, partition1, partition2, partition3, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMult, mMixingDepth, mTripletHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner2, mMcParticleCleaner3, mCtrMe, mTcMe, mEventStride, mMcParticleHistManagerMe1, mMcParticleHistManagerMe2, mMcParticleHistManagerMe3); + break; + case triplethistmanager::MixingPolicy::kVtxCent: + tripletprocesshelpers::processMixedEventMcTruth(mcCols, partition1, partition2, partition3, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxCent, mMixingDepth, mTripletHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner2, mMcParticleCleaner3, mCtrMe, mTcMe, mEventStride, mMcParticleHistManagerMe1, mMcParticleHistManagerMe2, mMcParticleHistManagerMe3); + break; + case triplethistmanager::MixingPolicy::kVtxMultCent: + tripletprocesshelpers::processMixedEventMcTruth(mcCols, partition1, partition2, partition3, mcParticles, mcMothers, mcPartonicMothers, cache, binsVtxMultCent, mMixingDepth, mTripletHistManagerMe, mMcParticleCleaner1, mMcParticleCleaner2, mMcParticleCleaner3, mCtrMe, mTcMe, mEventStride, mMcParticleHistManagerMe1, mMcParticleHistManagerMe2, mMcParticleHistManagerMe3); + break; + default: + LOG(fatal) << "Invalid binning policiy specifed. Breaking..."; + } } } private: colhistmanager::CollisionHistManager mColHistManager; - mcparticlehistmanager::McParticleHistManager mMcParticleHistManager1; - mcparticlehistmanager::McParticleHistManager mMcParticleHistManager2; - mcparticlehistmanager::McParticleHistManager mMcParticleHistManager3; + mcparticlehistmanager::McParticleHistManager mMcParticleHistManagerSe1; + mcparticlehistmanager::McParticleHistManager mMcParticleHistManagerSe2; + mcparticlehistmanager::McParticleHistManager mMcParticleHistManagerSe3; + mcparticlehistmanager::McParticleHistManager mMcParticleHistManagerMe1; + mcparticlehistmanager::McParticleHistManager mMcParticleHistManagerMe2; + mcparticlehistmanager::McParticleHistManager mMcParticleHistManagerMe3; triplethistmanager::TripletHistManager mTripletHistManagerSe; triplethistmanager::TripletHistManager mTripletHistManagerMe; closetripletrejection::CloseTripletRejectionMcParticleMcParticleMcParticle mCtrSe; diff --git a/PWGCF/Femto/Core/tripletProcessHelpers.h b/PWGCF/Femto/Core/tripletProcessHelpers.h index 07f74758d1c..df75ace9ef9 100644 --- a/PWGCF/Femto/Core/tripletProcessHelpers.h +++ b/PWGCF/Femto/Core/tripletProcessHelpers.h @@ -754,7 +754,10 @@ template + typename T11, + typename T12, + typename T13, + typename T14> void processMixedEvent(T1 const& Collisions, T2& Partition1, T3& Partition2, @@ -766,7 +769,10 @@ void processMixedEvent(T1 const& Collisions, T9& TripletHistManager, T10& CtrManager, T11& TcManager, - int eventStride = 1) + int eventStride, + T12& ParticleHistManagerMe1, + T13& ParticleHistManagerMe2, + T14& ParticleHistManagerMe3) { int64_t lastCollisionIndex1 = -1; int64_t lastCollisionIndex2 = -1; @@ -855,6 +861,10 @@ void processMixedEvent(T1 const& Collisions, hasValidTriplet = true; TripletHistManager.trackParticlesPerEvent(p1, p2, p3); TripletHistManager.template fill(); + // single-particle histograms for particles that make it into an accepted mixed-event triplet + ParticleHistManagerMe1.template fill(p1, TrackTable); + ParticleHistManagerMe2.template fill(p2, TrackTable); + ParticleHistManagerMe3.template fill(p3, TrackTable); } } @@ -890,7 +900,10 @@ template + typename T18, + typename T19, + typename T20, + typename T21> void processMixedEvent(T1 const& Collisions, T2 const& mcCollisions, T3& Partition1, @@ -909,7 +922,10 @@ void processMixedEvent(T1 const& Collisions, T16& Cleaner3, T17& CtrManager, T18& TcManager, - int eventStride = 1) + int eventStride, + T19& ParticleHistManagerMe1, + T20& ParticleHistManagerMe2, + T21& ParticleHistManagerMe3) { int64_t lastCollisionIndex1 = -1; int64_t lastCollisionIndex2 = -1; @@ -1005,6 +1021,10 @@ void processMixedEvent(T1 const& Collisions, hasValidTriplet = true; TripletHistManager.trackParticlesPerEvent(p1, p2, p3); TripletHistManager.template fill(); + // single-particle histograms for particles that make it into an accepted mixed-event triplet + ParticleHistManagerMe1.template fill(p1, TrackTable); + ParticleHistManagerMe2.template fill(p2, TrackTable); + ParticleHistManagerMe3.template fill(p3, TrackTable); } } @@ -1025,7 +1045,8 @@ void processMixedEvent(T1 const& Collisions, // mc collisions carry no magnetic field, so there is no magnetic field check here template + typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, + typename T17, typename T18, typename T19> void processMixedEventMcTruth(T1 const& McCollisions, T2& Partition1, T3& Partition2, @@ -1042,7 +1063,10 @@ void processMixedEventMcTruth(T1 const& McCollisions, T14& ParticleCleaner3, T15& CtrManager, T16& TcManager, - int eventStride = 1) + int eventStride, + T17& ParticleHistManagerMe1, + T18& ParticleHistManagerMe2, + T19& ParticleHistManagerMe3) { int64_t lastCollisionIndex1 = -1; int64_t lastCollisionIndex2 = -1; @@ -1125,6 +1149,10 @@ void processMixedEventMcTruth(T1 const& McCollisions, hasValidTriplet = true; TripletHistManager.trackParticlesPerEvent(p1, p2, p3); TripletHistManager.template fill(); + // single-particle histograms for particles that make it into an accepted mixed-event triplet + ParticleHistManagerMe1.fill(p1, mcMothers, mcPartonicMothers); + ParticleHistManagerMe2.fill(p2, mcMothers, mcPartonicMothers); + ParticleHistManagerMe3.fill(p3, mcMothers, mcPartonicMothers); } } diff --git a/PWGCF/Femto/Core/twoPhotonResonanceHistManager.h b/PWGCF/Femto/Core/twoPhotonResonanceHistManager.h index 834317c1b03..cfb71e8eb37 100644 --- a/PWGCF/Femto/Core/twoPhotonResonanceHistManager.h +++ b/PWGCF/Femto/Core/twoPhotonResonanceHistManager.h @@ -109,8 +109,15 @@ auto makeTwoPhotonResonanceQaHistSpecMap(const T& confBinningAnalysis) #undef TWOPHOTONRESONANCE_HIST_ANALYSIS_MAP #undef TWOPHOTONRESONANCE_HIST_QA_MAP +// used only by the standalone QA task constexpr char PrefixPi0[] = "Pi0/"; constexpr char PrefixEta[] = "Eta/"; +// same-event sibling, used only by a pair builder's same-event resonance manager +constexpr char PrefixPi0Se[] = "Pi0Se/"; +constexpr char PrefixEtaSe[] = "EtaSe/"; +// mixed-event sibling, used only by a pair builder's mixed-event resonance manager +constexpr char PrefixPi0Me[] = "Pi0Me/"; +constexpr char PrefixEtaMe[] = "EtaMe/"; constexpr std::string_view AnalysisDir = "Analysis/"; constexpr std::string_view QaDir = "QA/"; diff --git a/PWGCF/Femto/Core/twoTrackResonanceHistManager.h b/PWGCF/Femto/Core/twoTrackResonanceHistManager.h index 1f9149ddc26..2cc046e92cc 100644 --- a/PWGCF/Femto/Core/twoTrackResonanceHistManager.h +++ b/PWGCF/Femto/Core/twoTrackResonanceHistManager.h @@ -122,9 +122,18 @@ auto makeTwoTrackResonanceQaHistSpecMap(const T& confBinningAnalysis) #undef TWOTRACKRESONANCE_HIST_ANALYSIS_MAP #undef TWOTRACKRESONANCE_HIST_QA_MAP +// used only by the standalone QA task constexpr char PrefixRho[] = "Rho0/"; constexpr char PrefixPhi[] = "Phi/"; constexpr char PrefixKstar[] = "Kstar0/"; +// same-event siblings, used only by a pair builder's same-event resonance manager +constexpr char PrefixRhoSe[] = "Rho0Se/"; +constexpr char PrefixPhiSe[] = "PhiSe/"; +constexpr char PrefixKstarSe[] = "Kstar0Se/"; +// mixed-event siblings, used only by a pair builder's mixed-event resonance manager +constexpr char PrefixRhoMe[] = "Rho0Me/"; +constexpr char PrefixPhiMe[] = "PhiMe/"; +constexpr char PrefixKstarMe[] = "Kstar0Me/"; constexpr std::string_view AnalysisDir = "Analysis/"; constexpr std::string_view QaDir = "QA/"; diff --git a/PWGCF/Femto/Core/v0HistManager.h b/PWGCF/Femto/Core/v0HistManager.h index d5e8848e434..6d85ccd6747 100644 --- a/PWGCF/Femto/Core/v0HistManager.h +++ b/PWGCF/Femto/Core/v0HistManager.h @@ -309,11 +309,17 @@ std::map> makeV0McQaHistSpecMap(T1 #undef V0_HIST_MC_QA_MAP constexpr char PrefixLambdaQa[] = "LambdaQA/"; -constexpr char PrefixLambda1[] = "Lambda1/"; -constexpr char PrefixLambda2[] = "Lambda2/"; +// same-event / mixed-event siblings: single-candidate histograms for a given slot, split by +// whether the candidate came from a same-event or mixed-event pair +constexpr char PrefixLambda1Se[] = "Lambda1/SE/"; +constexpr char PrefixLambda2Se[] = "Lambda2/SE/"; +constexpr char PrefixLambda1Me[] = "Lambda1/ME/"; +constexpr char PrefixLambda2Me[] = "Lambda2/ME/"; constexpr char PrefixK0shortQa[] = "K0shortQa/"; -constexpr char PrefixK0short1[] = "K0short1/"; -constexpr char PrefixK0short2[] = "K0short2/"; +constexpr char PrefixK0short1Se[] = "K0short1/SE/"; +constexpr char PrefixK0short2Se[] = "K0short2/SE/"; +constexpr char PrefixK0short1Me[] = "K0short1/ME/"; +constexpr char PrefixK0short2Me[] = "K0short2/ME/"; constexpr char PrefixLambdaCascade[] = "LambdaCascadeQa/"; diff --git a/PWGCF/Femto/Tasks/femtoDndetaPair.cxx b/PWGCF/Femto/Tasks/femtoDndetaPair.cxx index 922e5f59a6e..df35e04f725 100644 --- a/PWGCF/Femto/Tasks/femtoDndetaPair.cxx +++ b/PWGCF/Femto/Tasks/femtoDndetaPair.cxx @@ -170,8 +170,10 @@ struct FemtoDndetaPair { closepairrejection::ConfCprTrackV0Daughter confCprTrackV0; pairbuilder::PairTrackTrackBuilder< - trackhistmanager::PrefixTrack1, - trackhistmanager::PrefixTrack2, + trackhistmanager::PrefixTrack1Se, + trackhistmanager::PrefixTrack2Se, + trackhistmanager::PrefixTrack1Me, + trackhistmanager::PrefixTrack2Me, pairhistmanager::PrefixTrackTrackSe, pairhistmanager::PrefixTrackTrackMe, closepairrejection::PrefixTrackTrackSe, @@ -179,10 +181,14 @@ struct FemtoDndetaPair { pairTrackTrackBuilder; pairbuilder::PairTrackV0Builder< - trackhistmanager::PrefixTrack1, - v0histmanager::PrefixLambda1, - trackhistmanager::PrefixV01PosDaughter, - trackhistmanager::PrefixV01NegDaughter, + trackhistmanager::PrefixTrack1Se, + v0histmanager::PrefixLambda1Se, + trackhistmanager::PrefixV01PosDaughterSe, + trackhistmanager::PrefixV01NegDaughterSe, + trackhistmanager::PrefixTrack1Me, + v0histmanager::PrefixLambda1Me, + trackhistmanager::PrefixV01PosDaughterMe, + trackhistmanager::PrefixV01NegDaughterMe, pairhistmanager::PrefixTrackV0Se, pairhistmanager::PrefixTrackV0Me, closepairrejection::PrefixTrackV0DaughterSe, @@ -191,8 +197,10 @@ struct FemtoDndetaPair { pairTrackLambdaBuilder; pairbuilder::PairMcParticleMcParticleBuilder< - mcparticlehistmanager::PrefixMcParticle1, - mcparticlehistmanager::PrefixMcParticle2, + mcparticlehistmanager::PrefixMcParticle1Se, + mcparticlehistmanager::PrefixMcParticle2Se, + mcparticlehistmanager::PrefixMcParticle1Me, + mcparticlehistmanager::PrefixMcParticle2Me, pairhistmanager::PrefixMcParticleMcParticleSe, pairhistmanager::PrefixMcParticleMcParticleMe, closepairrejection::PrefixMcParticleMcParticleSe, diff --git a/PWGCF/Femto/Tasks/femtoDndetaTriplet.cxx b/PWGCF/Femto/Tasks/femtoDndetaTriplet.cxx index 4be3c0f0751..44e830e1aed 100644 --- a/PWGCF/Femto/Tasks/femtoDndetaTriplet.cxx +++ b/PWGCF/Femto/Tasks/femtoDndetaTriplet.cxx @@ -183,9 +183,12 @@ struct FemtoDndetaTriplet { closetripletrejection::ConfCtrMcParticleMcParticleMcParticle confCtrMcParticleMcParticleMcParticle; // generator-level trigger, no cut by default tripletbuilder::TripletTrackTrackTrackBuilder< - trackhistmanager::PrefixTrack1, - trackhistmanager::PrefixTrack2, - trackhistmanager::PrefixTrack3, + trackhistmanager::PrefixTrack1Se, + trackhistmanager::PrefixTrack2Se, + trackhistmanager::PrefixTrack3Se, + trackhistmanager::PrefixTrack1Me, + trackhistmanager::PrefixTrack2Me, + trackhistmanager::PrefixTrack3Me, triplethistmanager::PrefixTrackTrackTrackSe, triplethistmanager::PrefixTrackTrackTrackMe, closetripletrejection::PrefixTrack1Track2Se, @@ -198,11 +201,16 @@ struct FemtoDndetaTriplet { tripletbuilder::TripletTrackTrackV0Builder< modes::V0::kLambda, - trackhistmanager::PrefixTrack1, - trackhistmanager::PrefixTrack2, - v0histmanager::PrefixLambda1, - trackhistmanager::PrefixV01PosDaughter, - trackhistmanager::PrefixV01NegDaughter, + trackhistmanager::PrefixTrack1Se, + trackhistmanager::PrefixTrack2Se, + v0histmanager::PrefixLambda1Se, + trackhistmanager::PrefixV01PosDaughterSe, + trackhistmanager::PrefixV01NegDaughterSe, + trackhistmanager::PrefixTrack1Me, + trackhistmanager::PrefixTrack2Me, + v0histmanager::PrefixLambda1Me, + trackhistmanager::PrefixV01PosDaughterMe, + trackhistmanager::PrefixV01NegDaughterMe, triplethistmanager::PrefixTrackTrackLambdaSe, triplethistmanager::PrefixTrackTrackLambdaMe, closetripletrejection::PrefixTrack1Track2Se, @@ -214,9 +222,12 @@ struct FemtoDndetaTriplet { tripletTrackTrackLambdaBuilder; tripletbuilder::TripletMcParticleMcParticleMcParticleBuilder< - mcparticlehistmanager::PrefixMcParticle1, - mcparticlehistmanager::PrefixMcParticle2, - mcparticlehistmanager::PrefixMcParticle3, + mcparticlehistmanager::PrefixMcParticle1Se, + mcparticlehistmanager::PrefixMcParticle2Se, + mcparticlehistmanager::PrefixMcParticle3Se, + mcparticlehistmanager::PrefixMcParticle1Me, + mcparticlehistmanager::PrefixMcParticle2Me, + mcparticlehistmanager::PrefixMcParticle3Me, triplethistmanager::PrefixMcParticleMcParticleMcParticleSe, triplethistmanager::PrefixMcParticleMcParticleMcParticleMe, closetripletrejection::PrefixMcParticle1McParticle2Se, diff --git a/PWGCF/Femto/Tasks/femtoPairD0D0.cxx b/PWGCF/Femto/Tasks/femtoPairD0D0.cxx index 267e8f2c343..6b433496642 100644 --- a/PWGCF/Femto/Tasks/femtoPairD0D0.cxx +++ b/PWGCF/Femto/Tasks/femtoPairD0D0.cxx @@ -104,12 +104,18 @@ struct FemtoPairD0D0 { paircleaner::ConfPairCleanerBinning confPairCleaner; pairbuilder::PairD0D0Builder< - charmhadronhistmanager::PrefixD01, - trackhistmanager::PrefixD01PosDaughter, - trackhistmanager::PrefixD01NegDaughter, - charmhadronhistmanager::PrefixD02, - trackhistmanager::PrefixD02PosDaughter, - trackhistmanager::PrefixD02NegDaughter, + charmhadronhistmanager::PrefixD01Se, + trackhistmanager::PrefixD01PosDaughterSe, + trackhistmanager::PrefixD01NegDaughterSe, + charmhadronhistmanager::PrefixD02Se, + trackhistmanager::PrefixD02PosDaughterSe, + trackhistmanager::PrefixD02NegDaughterSe, + charmhadronhistmanager::PrefixD01Me, + trackhistmanager::PrefixD01PosDaughterMe, + trackhistmanager::PrefixD01NegDaughterMe, + charmhadronhistmanager::PrefixD02Me, + trackhistmanager::PrefixD02PosDaughterMe, + trackhistmanager::PrefixD02NegDaughterMe, pairhistmanager::PrefixD0D0Se, pairhistmanager::PrefixD0D0Me, closepairrejection::PrefixD0D0PosSe, diff --git a/PWGCF/Femto/Tasks/femtoPairMcParticleMcParticle.cxx b/PWGCF/Femto/Tasks/femtoPairMcParticleMcParticle.cxx index e49b4e5557a..3f623ab411f 100644 --- a/PWGCF/Femto/Tasks/femtoPairMcParticleMcParticle.cxx +++ b/PWGCF/Femto/Tasks/femtoPairMcParticleMcParticle.cxx @@ -86,8 +86,10 @@ struct FemtoPairMcParticleMcParticle { closepairrejection::ConfCprTrackTrack confCpr; pairbuilder::PairMcParticleMcParticleBuilder< - mcparticlehistmanager::PrefixMcParticle1, - mcparticlehistmanager::PrefixMcParticle2, + mcparticlehistmanager::PrefixMcParticle1Se, + mcparticlehistmanager::PrefixMcParticle2Se, + mcparticlehistmanager::PrefixMcParticle1Me, + mcparticlehistmanager::PrefixMcParticle2Me, pairhistmanager::PrefixMcParticleMcParticleSe, pairhistmanager::PrefixMcParticleMcParticleMe, closepairrejection::PrefixMcParticleMcParticleSe, diff --git a/PWGCF/Femto/Tasks/femtoPairTrackCascade.cxx b/PWGCF/Femto/Tasks/femtoPairTrackCascade.cxx index 99994021ecb..28185d90673 100644 --- a/PWGCF/Femto/Tasks/femtoPairTrackCascade.cxx +++ b/PWGCF/Femto/Tasks/femtoPairTrackCascade.cxx @@ -117,11 +117,16 @@ struct FemtoPairTrackCascade { paircleaner::ConfPairCleanerBinning confPairCleaner; pairbuilder::PairTrackCascadeBuilder< - trackhistmanager::PrefixTrack1, - cascadehistmanager::PrefixXi, - trackhistmanager::PrefixCascadeBachelor, - trackhistmanager::PrefixCascadePosDaughter, - trackhistmanager::PrefixCascadeNegDaughter, + trackhistmanager::PrefixTrack1Se, + cascadehistmanager::PrefixXiSe, + trackhistmanager::PrefixCascadeBachelorSe, + trackhistmanager::PrefixCascadePosDaughterSe, + trackhistmanager::PrefixCascadeNegDaughterSe, + trackhistmanager::PrefixTrack1Me, + cascadehistmanager::PrefixXiMe, + trackhistmanager::PrefixCascadeBachelorMe, + trackhistmanager::PrefixCascadePosDaughterMe, + trackhistmanager::PrefixCascadeNegDaughterMe, pairhistmanager::PrefixTrackCascadeSe, pairhistmanager::PrefixTrackCascadeMe, closepairrejection::PrefixTrackCascadeBachelorSe, @@ -132,11 +137,16 @@ struct FemtoPairTrackCascade { pairTrackXiBuilder; pairbuilder::PairTrackCascadeBuilder< - trackhistmanager::PrefixTrack1, - cascadehistmanager::PrefixOmega, - trackhistmanager::PrefixCascadeBachelor, - trackhistmanager::PrefixCascadePosDaughter, - trackhistmanager::PrefixCascadeNegDaughter, + trackhistmanager::PrefixTrack1Se, + cascadehistmanager::PrefixOmegaSe, + trackhistmanager::PrefixCascadeBachelorSe, + trackhistmanager::PrefixCascadePosDaughterSe, + trackhistmanager::PrefixCascadeNegDaughterSe, + trackhistmanager::PrefixTrack1Me, + cascadehistmanager::PrefixOmegaMe, + trackhistmanager::PrefixCascadeBachelorMe, + trackhistmanager::PrefixCascadePosDaughterMe, + trackhistmanager::PrefixCascadeNegDaughterMe, pairhistmanager::PrefixTrackCascadeSe, pairhistmanager::PrefixTrackCascadeMe, closepairrejection::PrefixTrackCascadeBachelorSe, diff --git a/PWGCF/Femto/Tasks/femtoPairTrackCharmHadron.cxx b/PWGCF/Femto/Tasks/femtoPairTrackCharmHadron.cxx index 4a09a585caf..172c3c2ffc8 100644 --- a/PWGCF/Femto/Tasks/femtoPairTrackCharmHadron.cxx +++ b/PWGCF/Femto/Tasks/femtoPairTrackCharmHadron.cxx @@ -120,10 +120,14 @@ struct FemtoPairTrackCharmHadron { paircleaner::ConfPairCleanerBinning confPairCleaner; pairbuilder::PairTrackD0Builder< - trackhistmanager::PrefixTrack1, - charmhadronhistmanager::PrefixD01, - trackhistmanager::PrefixD01PosDaughter, - trackhistmanager::PrefixD01NegDaughter, + trackhistmanager::PrefixTrack1Se, + charmhadronhistmanager::PrefixD01Se, + trackhistmanager::PrefixD01PosDaughterSe, + trackhistmanager::PrefixD01NegDaughterSe, + trackhistmanager::PrefixTrack1Me, + charmhadronhistmanager::PrefixD01Me, + trackhistmanager::PrefixD01PosDaughterMe, + trackhistmanager::PrefixD01NegDaughterMe, pairhistmanager::PrefixTrackD0Se, pairhistmanager::PrefixTrackD0Me, closepairrejection::PrefixTrackD0DaughterSe, @@ -132,11 +136,16 @@ struct FemtoPairTrackCharmHadron { pairTrackD0Builder; pairbuilder::PairTrackLcBuilder< - trackhistmanager::PrefixTrack1, - charmhadronhistmanager::PrefixLc1, - trackhistmanager::PrefixLc1ProtonDaughter, - trackhistmanager::PrefixLc1KaonDaughter, - trackhistmanager::PrefixLc1PionDaughter, + trackhistmanager::PrefixTrack1Se, + charmhadronhistmanager::PrefixLc1Se, + trackhistmanager::PrefixLc1ProtonDaughterSe, + trackhistmanager::PrefixLc1KaonDaughterSe, + trackhistmanager::PrefixLc1PionDaughterSe, + trackhistmanager::PrefixTrack1Me, + charmhadronhistmanager::PrefixLc1Me, + trackhistmanager::PrefixLc1ProtonDaughterMe, + trackhistmanager::PrefixLc1KaonDaughterMe, + trackhistmanager::PrefixLc1PionDaughterMe, pairhistmanager::PrefixTrackLcSe, pairhistmanager::PrefixTrackLcMe, closepairrejection::PrefixTrackLcProtonSe, diff --git a/PWGCF/Femto/Tasks/femtoPairTrackKink.cxx b/PWGCF/Femto/Tasks/femtoPairTrackKink.cxx index 3352ec015ca..13d722338de 100644 --- a/PWGCF/Femto/Tasks/femtoPairTrackKink.cxx +++ b/PWGCF/Femto/Tasks/femtoPairTrackKink.cxx @@ -116,9 +116,12 @@ struct FemtoPairTrackKink { paircleaner::ConfPairCleanerBinning confPairCleaner; pairbuilder::PairTrackKinkBuilder< - trackhistmanager::PrefixTrack1, - kinkhistmanager::PrefixSigma1, - trackhistmanager::PrefixKinkChaDaughter, + trackhistmanager::PrefixTrack1Se, + kinkhistmanager::PrefixSigma1Se, + trackhistmanager::PrefixKinkChaDaughterSe, + trackhistmanager::PrefixTrack1Me, + kinkhistmanager::PrefixSigma1Me, + trackhistmanager::PrefixKinkChaDaughterMe, pairhistmanager::PrefixTrackKinkSe, pairhistmanager::PrefixTrackKinkMe, closepairrejection::PrefixTrackKinkSe, @@ -127,9 +130,12 @@ struct FemtoPairTrackKink { pairTrackSigmaBuilder; pairbuilder::PairTrackKinkBuilder< - trackhistmanager::PrefixTrack1, - kinkhistmanager::PrefixSigmaPlus1, - trackhistmanager::PrefixKinkChaDaughter, + trackhistmanager::PrefixTrack1Se, + kinkhistmanager::PrefixSigmaPlus1Se, + trackhistmanager::PrefixKinkChaDaughterSe, + trackhistmanager::PrefixTrack1Me, + kinkhistmanager::PrefixSigmaPlus1Me, + trackhistmanager::PrefixKinkChaDaughterMe, pairhistmanager::PrefixTrackKinkSe, pairhistmanager::PrefixTrackKinkMe, closepairrejection::PrefixTrackKinkSe, diff --git a/PWGCF/Femto/Tasks/femtoPairTrackTrack.cxx b/PWGCF/Femto/Tasks/femtoPairTrackTrack.cxx index 6653b0c6612..d1e1e423f4f 100644 --- a/PWGCF/Femto/Tasks/femtoPairTrackTrack.cxx +++ b/PWGCF/Femto/Tasks/femtoPairTrackTrack.cxx @@ -105,8 +105,10 @@ struct FemtoPairTrackTrack { closepairrejection::ConfCprTrackTrack confCpr; pairbuilder::PairTrackTrackBuilder< - trackhistmanager::PrefixTrack1, - trackhistmanager::PrefixTrack2, + trackhistmanager::PrefixTrack1Se, + trackhistmanager::PrefixTrack2Se, + trackhistmanager::PrefixTrack1Me, + trackhistmanager::PrefixTrack2Me, pairhistmanager::PrefixTrackTrackSe, pairhistmanager::PrefixTrackTrackMe, closepairrejection::PrefixTrackTrackSe, diff --git a/PWGCF/Femto/Tasks/femtoPairTrackTwoPhotonResonance.cxx b/PWGCF/Femto/Tasks/femtoPairTrackTwoPhotonResonance.cxx index 2ed5afba3c2..66a4cea7412 100644 --- a/PWGCF/Femto/Tasks/femtoPairTrackTwoPhotonResonance.cxx +++ b/PWGCF/Femto/Tasks/femtoPairTrackTwoPhotonResonance.cxx @@ -94,10 +94,14 @@ struct FemtoPairTrackTwoPhotonResonance { // setup for track-pi0 pairs pairbuilder::PairTrackTwoPhotonResonanceBuilder< - trackhistmanager::PrefixTrack1, - twophotonresonancehistmanager::PrefixPi0, - photonhistmanager::PrefixTwoPhotonResonanceDau1Qa, - photonhistmanager::PrefixTwoPhotonResonanceDau2Qa, + trackhistmanager::PrefixTrack1Se, + twophotonresonancehistmanager::PrefixPi0Se, + photonhistmanager::PrefixTwoPhotonResonanceDau1Se, + photonhistmanager::PrefixTwoPhotonResonanceDau2Se, + trackhistmanager::PrefixTrack1Me, + twophotonresonancehistmanager::PrefixPi0Me, + photonhistmanager::PrefixTwoPhotonResonanceDau1Me, + photonhistmanager::PrefixTwoPhotonResonanceDau2Me, pairhistmanager::PrefixTrackPi0Se, pairhistmanager::PrefixTrackPi0Me, closepairrejection::PrefixTrackTwoPhotonResonanceSe, @@ -107,10 +111,14 @@ struct FemtoPairTrackTwoPhotonResonance { // setup for track-eta pairs pairbuilder::PairTrackTwoPhotonResonanceBuilder< - trackhistmanager::PrefixTrack1, - twophotonresonancehistmanager::PrefixEta, - photonhistmanager::PrefixTwoPhotonResonanceDau1Qa, - photonhistmanager::PrefixTwoPhotonResonanceDau2Qa, + trackhistmanager::PrefixTrack1Se, + twophotonresonancehistmanager::PrefixEtaSe, + photonhistmanager::PrefixTwoPhotonResonanceDau1Se, + photonhistmanager::PrefixTwoPhotonResonanceDau2Se, + trackhistmanager::PrefixTrack1Me, + twophotonresonancehistmanager::PrefixEtaMe, + photonhistmanager::PrefixTwoPhotonResonanceDau1Me, + photonhistmanager::PrefixTwoPhotonResonanceDau2Me, pairhistmanager::PrefixTrackEtaSe, pairhistmanager::PrefixTrackEtaMe, closepairrejection::PrefixTrackTwoPhotonResonanceSe, diff --git a/PWGCF/Femto/Tasks/femtoPairTrackTwoTrackResonance.cxx b/PWGCF/Femto/Tasks/femtoPairTrackTwoTrackResonance.cxx index fa6927b65fa..25602952698 100644 --- a/PWGCF/Femto/Tasks/femtoPairTrackTwoTrackResonance.cxx +++ b/PWGCF/Femto/Tasks/femtoPairTrackTwoTrackResonance.cxx @@ -99,10 +99,14 @@ struct FemtoPairTrackTwoTrackResonance { // setup for track-phi pairs pairbuilder::PairTrackTwoTrackResonanceBuilder< - trackhistmanager::PrefixTrack1, - twotrackresonancehistmanager::PrefixPhi, - trackhistmanager::PrefixResonancePosDaughter, - trackhistmanager::PrefixResonanceNegDaughter, + trackhistmanager::PrefixTrack1Se, + twotrackresonancehistmanager::PrefixPhiSe, + trackhistmanager::PrefixResonancePosDaughterSe, + trackhistmanager::PrefixResonanceNegDaughterSe, + trackhistmanager::PrefixTrack1Me, + twotrackresonancehistmanager::PrefixPhiMe, + trackhistmanager::PrefixResonancePosDaughterMe, + trackhistmanager::PrefixResonanceNegDaughterMe, pairhistmanager::PrefixTrackResonanceSe, pairhistmanager::PrefixTrackResonanceMe, closepairrejection::PrefixTrackTwoTrackResonanceSe, @@ -112,10 +116,14 @@ struct FemtoPairTrackTwoTrackResonance { // setup for track-kstar0 pairs pairbuilder::PairTrackTwoTrackResonanceBuilder< - trackhistmanager::PrefixTrack1, - twotrackresonancehistmanager::PrefixKstar, - trackhistmanager::PrefixResonancePosDaughter, - trackhistmanager::PrefixResonanceNegDaughter, + trackhistmanager::PrefixTrack1Se, + twotrackresonancehistmanager::PrefixKstarSe, + trackhistmanager::PrefixResonancePosDaughterSe, + trackhistmanager::PrefixResonanceNegDaughterSe, + trackhistmanager::PrefixTrack1Me, + twotrackresonancehistmanager::PrefixKstarMe, + trackhistmanager::PrefixResonancePosDaughterMe, + trackhistmanager::PrefixResonanceNegDaughterMe, pairhistmanager::PrefixTrackResonanceSe, pairhistmanager::PrefixTrackResonanceMe, closepairrejection::PrefixTrackTwoTrackResonanceSe, @@ -125,10 +133,14 @@ struct FemtoPairTrackTwoTrackResonance { // setup for track-rho0 pairs pairbuilder::PairTrackTwoTrackResonanceBuilder< - trackhistmanager::PrefixTrack1, - twotrackresonancehistmanager::PrefixRho, - trackhistmanager::PrefixResonancePosDaughter, - trackhistmanager::PrefixResonanceNegDaughter, + trackhistmanager::PrefixTrack1Se, + twotrackresonancehistmanager::PrefixRhoSe, + trackhistmanager::PrefixResonancePosDaughterSe, + trackhistmanager::PrefixResonanceNegDaughterSe, + trackhistmanager::PrefixTrack1Me, + twotrackresonancehistmanager::PrefixRhoMe, + trackhistmanager::PrefixResonancePosDaughterMe, + trackhistmanager::PrefixResonanceNegDaughterMe, pairhistmanager::PrefixTrackResonanceSe, pairhistmanager::PrefixTrackResonanceMe, closepairrejection::PrefixTrackTwoTrackResonanceSe, diff --git a/PWGCF/Femto/Tasks/femtoPairTrackV0.cxx b/PWGCF/Femto/Tasks/femtoPairTrackV0.cxx index 6466c67b139..88e844687e8 100644 --- a/PWGCF/Femto/Tasks/femtoPairTrackV0.cxx +++ b/PWGCF/Femto/Tasks/femtoPairTrackV0.cxx @@ -116,10 +116,14 @@ struct FemtoPairTrackV0 { paircleaner::ConfPairCleanerBinning confPairCleaner; pairbuilder::PairTrackV0Builder< - trackhistmanager::PrefixTrack1, - v0histmanager::PrefixLambda1, - trackhistmanager::PrefixV01PosDaughter, - trackhistmanager::PrefixV01NegDaughter, + trackhistmanager::PrefixTrack1Se, + v0histmanager::PrefixLambda1Se, + trackhistmanager::PrefixV01PosDaughterSe, + trackhistmanager::PrefixV01NegDaughterSe, + trackhistmanager::PrefixTrack1Me, + v0histmanager::PrefixLambda1Me, + trackhistmanager::PrefixV01PosDaughterMe, + trackhistmanager::PrefixV01NegDaughterMe, pairhistmanager::PrefixTrackV0Se, pairhistmanager::PrefixTrackV0Me, closepairrejection::PrefixTrackV0DaughterSe, @@ -128,10 +132,14 @@ struct FemtoPairTrackV0 { pairTrackLambdaBuilder; pairbuilder::PairTrackV0Builder< - trackhistmanager::PrefixTrack1, - v0histmanager::PrefixK0short1, - trackhistmanager::PrefixV01PosDaughter, - trackhistmanager::PrefixV01NegDaughter, + trackhistmanager::PrefixTrack1Se, + v0histmanager::PrefixK0short1Se, + trackhistmanager::PrefixV01PosDaughterSe, + trackhistmanager::PrefixV01NegDaughterSe, + trackhistmanager::PrefixTrack1Me, + v0histmanager::PrefixK0short1Me, + trackhistmanager::PrefixV01PosDaughterMe, + trackhistmanager::PrefixV01NegDaughterMe, pairhistmanager::PrefixTrackV0Se, pairhistmanager::PrefixTrackV0Me, closepairrejection::PrefixTrackV0DaughterSe, diff --git a/PWGCF/Femto/Tasks/femtoPairV0TwoTrackResonance.cxx b/PWGCF/Femto/Tasks/femtoPairV0TwoTrackResonance.cxx index c56750af9f1..bfb115b7d87 100644 --- a/PWGCF/Femto/Tasks/femtoPairV0TwoTrackResonance.cxx +++ b/PWGCF/Femto/Tasks/femtoPairV0TwoTrackResonance.cxx @@ -119,12 +119,18 @@ struct FemtoPairV0TwoTrackResonance { // setup for lambda-phi pairs pairbuilder::PairV0TwoTrackResonanceBuilder< - v0histmanager::PrefixLambda1, - trackhistmanager::PrefixV01PosDaughter, - trackhistmanager::PrefixV01NegDaughter, - twotrackresonancehistmanager::PrefixPhi, - trackhistmanager::PrefixResonancePosDaughter, - trackhistmanager::PrefixResonanceNegDaughter, + v0histmanager::PrefixLambda1Se, + trackhistmanager::PrefixV01PosDaughterSe, + trackhistmanager::PrefixV01NegDaughterSe, + twotrackresonancehistmanager::PrefixPhiSe, + trackhistmanager::PrefixResonancePosDaughterSe, + trackhistmanager::PrefixResonanceNegDaughterSe, + v0histmanager::PrefixLambda1Me, + trackhistmanager::PrefixV01PosDaughterMe, + trackhistmanager::PrefixV01NegDaughterMe, + twotrackresonancehistmanager::PrefixPhiMe, + trackhistmanager::PrefixResonancePosDaughterMe, + trackhistmanager::PrefixResonanceNegDaughterMe, pairhistmanager::PrefixV0ResonanceSe, pairhistmanager::PrefixV0ResonanceMe, closepairrejection::PrefixV0TwoTrackResonancePosSe, @@ -137,12 +143,18 @@ struct FemtoPairV0TwoTrackResonance { // setup for lambda-kstar0 pairs pairbuilder::PairV0TwoTrackResonanceBuilder< - v0histmanager::PrefixLambda1, - trackhistmanager::PrefixV01PosDaughter, - trackhistmanager::PrefixV01NegDaughter, - twotrackresonancehistmanager::PrefixKstar, - trackhistmanager::PrefixResonancePosDaughter, - trackhistmanager::PrefixResonanceNegDaughter, + v0histmanager::PrefixLambda1Se, + trackhistmanager::PrefixV01PosDaughterSe, + trackhistmanager::PrefixV01NegDaughterSe, + twotrackresonancehistmanager::PrefixKstarSe, + trackhistmanager::PrefixResonancePosDaughterSe, + trackhistmanager::PrefixResonanceNegDaughterSe, + v0histmanager::PrefixLambda1Me, + trackhistmanager::PrefixV01PosDaughterMe, + trackhistmanager::PrefixV01NegDaughterMe, + twotrackresonancehistmanager::PrefixKstarMe, + trackhistmanager::PrefixResonancePosDaughterMe, + trackhistmanager::PrefixResonanceNegDaughterMe, pairhistmanager::PrefixV0ResonanceSe, pairhistmanager::PrefixV0ResonanceMe, closepairrejection::PrefixV0TwoTrackResonancePosSe, @@ -155,12 +167,18 @@ struct FemtoPairV0TwoTrackResonance { // setup for lambda-rho0 pairs pairbuilder::PairV0TwoTrackResonanceBuilder< - v0histmanager::PrefixLambda1, - trackhistmanager::PrefixV01PosDaughter, - trackhistmanager::PrefixV01NegDaughter, - twotrackresonancehistmanager::PrefixRho, - trackhistmanager::PrefixResonancePosDaughter, - trackhistmanager::PrefixResonanceNegDaughter, + v0histmanager::PrefixLambda1Se, + trackhistmanager::PrefixV01PosDaughterSe, + trackhistmanager::PrefixV01NegDaughterSe, + twotrackresonancehistmanager::PrefixRhoSe, + trackhistmanager::PrefixResonancePosDaughterSe, + trackhistmanager::PrefixResonanceNegDaughterSe, + v0histmanager::PrefixLambda1Me, + trackhistmanager::PrefixV01PosDaughterMe, + trackhistmanager::PrefixV01NegDaughterMe, + twotrackresonancehistmanager::PrefixRhoMe, + trackhistmanager::PrefixResonancePosDaughterMe, + trackhistmanager::PrefixResonanceNegDaughterMe, pairhistmanager::PrefixV0ResonanceSe, pairhistmanager::PrefixV0ResonanceMe, closepairrejection::PrefixV0TwoTrackResonancePosSe, @@ -173,12 +191,18 @@ struct FemtoPairV0TwoTrackResonance { // setup for k0short-phi pairs pairbuilder::PairV0TwoTrackResonanceBuilder< - v0histmanager::PrefixK0short1, - trackhistmanager::PrefixV01PosDaughter, - trackhistmanager::PrefixV01NegDaughter, - twotrackresonancehistmanager::PrefixPhi, - trackhistmanager::PrefixResonancePosDaughter, - trackhistmanager::PrefixResonanceNegDaughter, + v0histmanager::PrefixK0short1Se, + trackhistmanager::PrefixV01PosDaughterSe, + trackhistmanager::PrefixV01NegDaughterSe, + twotrackresonancehistmanager::PrefixPhiSe, + trackhistmanager::PrefixResonancePosDaughterSe, + trackhistmanager::PrefixResonanceNegDaughterSe, + v0histmanager::PrefixK0short1Me, + trackhistmanager::PrefixV01PosDaughterMe, + trackhistmanager::PrefixV01NegDaughterMe, + twotrackresonancehistmanager::PrefixPhiMe, + trackhistmanager::PrefixResonancePosDaughterMe, + trackhistmanager::PrefixResonanceNegDaughterMe, pairhistmanager::PrefixV0ResonanceSe, pairhistmanager::PrefixV0ResonanceMe, closepairrejection::PrefixV0TwoTrackResonancePosSe, @@ -191,12 +215,18 @@ struct FemtoPairV0TwoTrackResonance { // setup for k0short-kstar0 pairs pairbuilder::PairV0TwoTrackResonanceBuilder< - v0histmanager::PrefixK0short1, - trackhistmanager::PrefixV01PosDaughter, - trackhistmanager::PrefixV01NegDaughter, - twotrackresonancehistmanager::PrefixKstar, - trackhistmanager::PrefixResonancePosDaughter, - trackhistmanager::PrefixResonanceNegDaughter, + v0histmanager::PrefixK0short1Se, + trackhistmanager::PrefixV01PosDaughterSe, + trackhistmanager::PrefixV01NegDaughterSe, + twotrackresonancehistmanager::PrefixKstarSe, + trackhistmanager::PrefixResonancePosDaughterSe, + trackhistmanager::PrefixResonanceNegDaughterSe, + v0histmanager::PrefixK0short1Me, + trackhistmanager::PrefixV01PosDaughterMe, + trackhistmanager::PrefixV01NegDaughterMe, + twotrackresonancehistmanager::PrefixKstarMe, + trackhistmanager::PrefixResonancePosDaughterMe, + trackhistmanager::PrefixResonanceNegDaughterMe, pairhistmanager::PrefixV0ResonanceSe, pairhistmanager::PrefixV0ResonanceMe, closepairrejection::PrefixV0TwoTrackResonancePosSe, @@ -209,12 +239,18 @@ struct FemtoPairV0TwoTrackResonance { // setup for k0short-rho0 pairs pairbuilder::PairV0TwoTrackResonanceBuilder< - v0histmanager::PrefixK0short1, - trackhistmanager::PrefixV01PosDaughter, - trackhistmanager::PrefixV01NegDaughter, - twotrackresonancehistmanager::PrefixRho, - trackhistmanager::PrefixResonancePosDaughter, - trackhistmanager::PrefixResonanceNegDaughter, + v0histmanager::PrefixK0short1Se, + trackhistmanager::PrefixV01PosDaughterSe, + trackhistmanager::PrefixV01NegDaughterSe, + twotrackresonancehistmanager::PrefixRhoSe, + trackhistmanager::PrefixResonancePosDaughterSe, + trackhistmanager::PrefixResonanceNegDaughterSe, + v0histmanager::PrefixK0short1Me, + trackhistmanager::PrefixV01PosDaughterMe, + trackhistmanager::PrefixV01NegDaughterMe, + twotrackresonancehistmanager::PrefixRhoMe, + trackhistmanager::PrefixResonancePosDaughterMe, + trackhistmanager::PrefixResonanceNegDaughterMe, pairhistmanager::PrefixV0ResonanceSe, pairhistmanager::PrefixV0ResonanceMe, closepairrejection::PrefixV0TwoTrackResonancePosSe, diff --git a/PWGCF/Femto/Tasks/femtoPairV0V0.cxx b/PWGCF/Femto/Tasks/femtoPairV0V0.cxx index 8dd3b8559ef..371102a368a 100644 --- a/PWGCF/Femto/Tasks/femtoPairV0V0.cxx +++ b/PWGCF/Femto/Tasks/femtoPairV0V0.cxx @@ -125,12 +125,18 @@ struct FemtoPairV0V0 { paircleaner::ConfPairCleanerBinning confPairCleaner; pairbuilder::PairV0V0Builder< - v0histmanager::PrefixLambda1, - trackhistmanager::PrefixV01PosDaughter, - trackhistmanager::PrefixV01NegDaughter, - v0histmanager::PrefixLambda2, - trackhistmanager::PrefixV02PosDaughter, - trackhistmanager::PrefixV02NegDaughter, + v0histmanager::PrefixLambda1Se, + trackhistmanager::PrefixV01PosDaughterSe, + trackhistmanager::PrefixV01NegDaughterSe, + v0histmanager::PrefixLambda2Se, + trackhistmanager::PrefixV02PosDaughterSe, + trackhistmanager::PrefixV02NegDaughterSe, + v0histmanager::PrefixLambda1Me, + trackhistmanager::PrefixV01PosDaughterMe, + trackhistmanager::PrefixV01NegDaughterMe, + v0histmanager::PrefixLambda2Me, + trackhistmanager::PrefixV02PosDaughterMe, + trackhistmanager::PrefixV02NegDaughterMe, pairhistmanager::PrefixV0V0Se, pairhistmanager::PrefixV0V0Me, closepairrejection::PrefixV0V0PosSe, @@ -142,12 +148,18 @@ struct FemtoPairV0V0 { pairLambdaLambdaBuilder; pairbuilder::PairV0V0Builder< - v0histmanager::PrefixK0short1, - trackhistmanager::PrefixV01PosDaughter, - trackhistmanager::PrefixV01NegDaughter, - v0histmanager::PrefixK0short2, - trackhistmanager::PrefixV02PosDaughter, - trackhistmanager::PrefixV02NegDaughter, + v0histmanager::PrefixK0short1Se, + trackhistmanager::PrefixV01PosDaughterSe, + trackhistmanager::PrefixV01NegDaughterSe, + v0histmanager::PrefixK0short2Se, + trackhistmanager::PrefixV02PosDaughterSe, + trackhistmanager::PrefixV02NegDaughterSe, + v0histmanager::PrefixK0short1Me, + trackhistmanager::PrefixV01PosDaughterMe, + trackhistmanager::PrefixV01NegDaughterMe, + v0histmanager::PrefixK0short2Me, + trackhistmanager::PrefixV02PosDaughterMe, + trackhistmanager::PrefixV02NegDaughterMe, pairhistmanager::PrefixV0V0Se, pairhistmanager::PrefixV0V0Me, closepairrejection::PrefixV0V0PosSe, @@ -159,12 +171,18 @@ struct FemtoPairV0V0 { pairK0shortK0shortBuilder; pairbuilder::PairV0V0Builder< - v0histmanager::PrefixLambda1, - trackhistmanager::PrefixV01PosDaughter, - trackhistmanager::PrefixV01NegDaughter, - v0histmanager::PrefixK0short2, - trackhistmanager::PrefixV02PosDaughter, - trackhistmanager::PrefixV02NegDaughter, + v0histmanager::PrefixLambda1Se, + trackhistmanager::PrefixV01PosDaughterSe, + trackhistmanager::PrefixV01NegDaughterSe, + v0histmanager::PrefixK0short2Se, + trackhistmanager::PrefixV02PosDaughterSe, + trackhistmanager::PrefixV02NegDaughterSe, + v0histmanager::PrefixLambda1Me, + trackhistmanager::PrefixV01PosDaughterMe, + trackhistmanager::PrefixV01NegDaughterMe, + v0histmanager::PrefixK0short2Me, + trackhistmanager::PrefixV02PosDaughterMe, + trackhistmanager::PrefixV02NegDaughterMe, pairhistmanager::PrefixV0V0Se, pairhistmanager::PrefixV0V0Me, closepairrejection::PrefixV0V0PosSe, diff --git a/PWGCF/Femto/Tasks/femtoTrackTrackTwoPhotonResonanceQa.cxx b/PWGCF/Femto/Tasks/femtoTrackTrackTwoPhotonResonanceQa.cxx index ff68ce1f256..59c98e936c2 100644 --- a/PWGCF/Femto/Tasks/femtoTrackTrackTwoPhotonResonanceQa.cxx +++ b/PWGCF/Femto/Tasks/femtoTrackTrackTwoPhotonResonanceQa.cxx @@ -79,8 +79,8 @@ struct FemtoTrackTrackTwoPhotonResonanceQa { trackstwophotonresonancehistmanager::TrackTrackTwoPhotonResonanceHistManager< trackstwophotonresonancehistmanager::PrefixOmegaMeson, - trackhistmanager::PrefixResonancePosDaughter, - trackhistmanager::PrefixResonanceNegDaughter, + trackhistmanager::PrefixResonancePosDaughterSe, + trackhistmanager::PrefixResonanceNegDaughterSe, trackstwophotonresonancehistmanager::PrefixOmegaMesonNeutralDau, trackstwophotonresonancehistmanager::PrefixOmegaMesonNeutralDauPhotonDau1, trackstwophotonresonancehistmanager::PrefixOmegaMesonNeutralDauPhotonDau2, diff --git a/PWGCF/Femto/Tasks/femtoTripletMcParticleMcParticleMcParticle.cxx b/PWGCF/Femto/Tasks/femtoTripletMcParticleMcParticleMcParticle.cxx index 866eaae259f..60dfa3a3411 100644 --- a/PWGCF/Femto/Tasks/femtoTripletMcParticleMcParticleMcParticle.cxx +++ b/PWGCF/Femto/Tasks/femtoTripletMcParticleMcParticleMcParticle.cxx @@ -84,9 +84,12 @@ struct FemtoTripletMcParticleMcParticleMcParticle { closetripletrejection::ConfCtrMcParticleMcParticleMcParticle confCtr; tripletbuilder::TripletMcParticleMcParticleMcParticleBuilder< - mcparticlehistmanager::PrefixMcParticle1, - mcparticlehistmanager::PrefixMcParticle2, - mcparticlehistmanager::PrefixMcParticle3, + mcparticlehistmanager::PrefixMcParticle1Se, + mcparticlehistmanager::PrefixMcParticle2Se, + mcparticlehistmanager::PrefixMcParticle3Se, + mcparticlehistmanager::PrefixMcParticle1Me, + mcparticlehistmanager::PrefixMcParticle2Me, + mcparticlehistmanager::PrefixMcParticle3Me, triplethistmanager::PrefixMcParticleMcParticleMcParticleSe, triplethistmanager::PrefixMcParticleMcParticleMcParticleMe, closetripletrejection::PrefixMcParticle1McParticle2Se, diff --git a/PWGCF/Femto/Tasks/femtoTripletTrackTrackCascade.cxx b/PWGCF/Femto/Tasks/femtoTripletTrackTrackCascade.cxx index a4addee1ce1..319fc73ea14 100644 --- a/PWGCF/Femto/Tasks/femtoTripletTrackTrackCascade.cxx +++ b/PWGCF/Femto/Tasks/femtoTripletTrackTrackCascade.cxx @@ -124,12 +124,18 @@ struct FemtoTripletTrackTrackCascade { tripletbuilder::TripletTrackTrackCascadeBuilder< modes::Cascade::kXi, - trackhistmanager::PrefixTrack1, - trackhistmanager::PrefixTrack2, - cascadehistmanager::PrefixXi, - trackhistmanager::PrefixCascadeBachelor, - trackhistmanager::PrefixCascadePosDaughter, - trackhistmanager::PrefixCascadeNegDaughter, + trackhistmanager::PrefixTrack1Se, + trackhistmanager::PrefixTrack2Se, + cascadehistmanager::PrefixXiSe, + trackhistmanager::PrefixCascadeBachelorSe, + trackhistmanager::PrefixCascadePosDaughterSe, + trackhistmanager::PrefixCascadeNegDaughterSe, + trackhistmanager::PrefixTrack1Me, + trackhistmanager::PrefixTrack2Me, + cascadehistmanager::PrefixXiMe, + trackhistmanager::PrefixCascadeBachelorMe, + trackhistmanager::PrefixCascadePosDaughterMe, + trackhistmanager::PrefixCascadeNegDaughterMe, triplethistmanager::PrefixTrackTrackCascadeSe, triplethistmanager::PrefixTrackTrackCascadeMe, closetripletrejection::PrefixTrack1Track2Se, @@ -146,12 +152,18 @@ struct FemtoTripletTrackTrackCascade { tripletbuilder::TripletTrackTrackCascadeBuilder< modes::Cascade::kOmega, - trackhistmanager::PrefixTrack1, - trackhistmanager::PrefixTrack2, - cascadehistmanager::PrefixOmega, - trackhistmanager::PrefixCascadeBachelor, - trackhistmanager::PrefixCascadePosDaughter, - trackhistmanager::PrefixCascadeNegDaughter, + trackhistmanager::PrefixTrack1Se, + trackhistmanager::PrefixTrack2Se, + cascadehistmanager::PrefixOmegaSe, + trackhistmanager::PrefixCascadeBachelorSe, + trackhistmanager::PrefixCascadePosDaughterSe, + trackhistmanager::PrefixCascadeNegDaughterSe, + trackhistmanager::PrefixTrack1Me, + trackhistmanager::PrefixTrack2Me, + cascadehistmanager::PrefixOmegaMe, + trackhistmanager::PrefixCascadeBachelorMe, + trackhistmanager::PrefixCascadePosDaughterMe, + trackhistmanager::PrefixCascadeNegDaughterMe, triplethistmanager::PrefixTrackTrackCascadeSe, triplethistmanager::PrefixTrackTrackCascadeMe, closetripletrejection::PrefixTrack1Track2Se, diff --git a/PWGCF/Femto/Tasks/femtoTripletTrackTrackTrack.cxx b/PWGCF/Femto/Tasks/femtoTripletTrackTrackTrack.cxx index 6cd97fc7262..6c80679fc17 100644 --- a/PWGCF/Femto/Tasks/femtoTripletTrackTrackTrack.cxx +++ b/PWGCF/Femto/Tasks/femtoTripletTrackTrackTrack.cxx @@ -99,9 +99,12 @@ struct FemtoTripletTrackTrackTrack { closetripletrejection::ConfCtrTrackTrackTrack confCtr; tripletbuilder::TripletTrackTrackTrackBuilder< - trackhistmanager::PrefixTrack1, - trackhistmanager::PrefixTrack2, - trackhistmanager::PrefixTrack3, + trackhistmanager::PrefixTrack1Se, + trackhistmanager::PrefixTrack2Se, + trackhistmanager::PrefixTrack3Se, + trackhistmanager::PrefixTrack1Me, + trackhistmanager::PrefixTrack2Me, + trackhistmanager::PrefixTrack3Me, triplethistmanager::PrefixTrackTrackTrackSe, triplethistmanager::PrefixTrackTrackTrackMe, closetripletrejection::PrefixTrack1Track2Se, diff --git a/PWGCF/Femto/Tasks/femtoTripletTrackTrackV0.cxx b/PWGCF/Femto/Tasks/femtoTripletTrackTrackV0.cxx index 0f67c500627..22dd856be44 100644 --- a/PWGCF/Femto/Tasks/femtoTripletTrackTrackV0.cxx +++ b/PWGCF/Femto/Tasks/femtoTripletTrackTrackV0.cxx @@ -117,11 +117,16 @@ struct FemtoTripletTrackTrackV0 { tripletbuilder::TripletTrackTrackV0Builder< modes::V0::kLambda, - trackhistmanager::PrefixTrack1, - trackhistmanager::PrefixTrack2, - v0histmanager::PrefixLambda1, - trackhistmanager::PrefixV01PosDaughter, - trackhistmanager::PrefixV01NegDaughter, + trackhistmanager::PrefixTrack1Se, + trackhistmanager::PrefixTrack2Se, + v0histmanager::PrefixLambda1Se, + trackhistmanager::PrefixV01PosDaughterSe, + trackhistmanager::PrefixV01NegDaughterSe, + trackhistmanager::PrefixTrack1Me, + trackhistmanager::PrefixTrack2Me, + v0histmanager::PrefixLambda1Me, + trackhistmanager::PrefixV01PosDaughterMe, + trackhistmanager::PrefixV01NegDaughterMe, triplethistmanager::PrefixTrackTrackLambdaSe, triplethistmanager::PrefixTrackTrackLambdaMe, closetripletrejection::PrefixTrack1Track2Se, From a66a719354fd6b4c1d24897ae68c68e8a232d4fa Mon Sep 17 00:00:00 2001 From: Anton Riedel Date: Sun, 25 Oct 2026 22:20:43 +0100 Subject: [PATCH 2/2] Fix: add missing file --- .../Tasks/femtoPairLambdaAntilambda.cxx | 36 ++++++++++++------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/PWGCF/FemtoWorld/Tasks/femtoPairLambdaAntilambda.cxx b/PWGCF/FemtoWorld/Tasks/femtoPairLambdaAntilambda.cxx index 74e881296e3..3fd9e35e397 100644 --- a/PWGCF/FemtoWorld/Tasks/femtoPairLambdaAntilambda.cxx +++ b/PWGCF/FemtoWorld/Tasks/femtoPairLambdaAntilambda.cxx @@ -112,12 +112,18 @@ struct FemtoPairLambdaAntilambda { paircleaner::ConfPairCleanerBinning confPairCleaner; pairbuilder::PairV0V0Builder< - v0histmanager::PrefixLambda1, - trackhistmanager::PrefixV01PosDaughter, - trackhistmanager::PrefixV01NegDaughter, - v0histmanager::PrefixLambda2, - trackhistmanager::PrefixV02PosDaughter, - trackhistmanager::PrefixV02NegDaughter, + v0histmanager::PrefixLambda1Se, + trackhistmanager::PrefixV01PosDaughterSe, + trackhistmanager::PrefixV01NegDaughterSe, + v0histmanager::PrefixLambda2Se, + trackhistmanager::PrefixV02PosDaughterSe, + trackhistmanager::PrefixV02NegDaughterSe, + v0histmanager::PrefixLambda1Me, + trackhistmanager::PrefixV01PosDaughterMe, + trackhistmanager::PrefixV01NegDaughterMe, + v0histmanager::PrefixLambda2Me, + trackhistmanager::PrefixV02PosDaughterMe, + trackhistmanager::PrefixV02NegDaughterMe, pairhistmanager::PrefixV0V0Se, pairhistmanager::PrefixV0V0Me, closepairrejection::PrefixV0V0PosSe, @@ -129,12 +135,18 @@ struct FemtoPairLambdaAntilambda { pairLambdaLambdaBuilder; pairbuilder::PairV0V0Builder< - v0histmanager::PrefixK0short1, - trackhistmanager::PrefixV01PosDaughter, - trackhistmanager::PrefixV01NegDaughter, - v0histmanager::PrefixK0short2, - trackhistmanager::PrefixV02PosDaughter, - trackhistmanager::PrefixV02NegDaughter, + v0histmanager::PrefixK0short1Se, + trackhistmanager::PrefixV01PosDaughterSe, + trackhistmanager::PrefixV01NegDaughterSe, + v0histmanager::PrefixK0short2Se, + trackhistmanager::PrefixV02PosDaughterSe, + trackhistmanager::PrefixV02NegDaughterSe, + v0histmanager::PrefixK0short1Me, + trackhistmanager::PrefixV01PosDaughterMe, + trackhistmanager::PrefixV01NegDaughterMe, + v0histmanager::PrefixK0short2Me, + trackhistmanager::PrefixV02PosDaughterMe, + trackhistmanager::PrefixV02NegDaughterMe, pairhistmanager::PrefixV0V0Se, pairhistmanager::PrefixV0V0Me, closepairrejection::PrefixV0V0PosSe,