diff --git a/PWGCF/Femto/Core/cascadeBuilder.h b/PWGCF/Femto/Core/cascadeBuilder.h index 2de7099ee6f..4b2fb7863b0 100644 --- a/PWGCF/Femto/Core/cascadeBuilder.h +++ b/PWGCF/Femto/Core/cascadeBuilder.h @@ -379,8 +379,8 @@ class CascadeBuilder LOG(info) << "Initialization done..."; } - template - void fillCascades(T1 const& col, T2& collisionBuilder, T3& collisionProducts, T4& trackProducts, T5& cascadeProducts, T6 const& cascades, T7 const& tracks, T8 const& tracksWithItsPid, T9& trackBuilder) + template + void fillCascades(T1 const& col, T2& collisionBuilder, T3& collisionProducts, T4& trackProducts, T5& cascadeProducts, T6 const& cascades, T7 const& tracks, T8& trackBuilder) { if (!mFillAnyTable) { return; @@ -400,24 +400,21 @@ class CascadeBuilder collisionBuilder.template fillCollision(collisionProducts, col); - // cleaner, but without ITS pid: auto bachelor = cascade.template bachelor_as(); - auto bachelor = tracksWithItsPid.iteratorAt(cascade.bachelorId() - tracksWithItsPid.offset()); + auto bachelor = cascade.template bachelor_as(); bachelorIndex = trackBuilder.template getDaughterIndex(bachelor, trackProducts, collisionProducts); - // cleaner, but without ITS pid: auto posDaughter = cascade.template posTrack_as(); - auto posDaughter = tracksWithItsPid.iteratorAt(cascade.posTrackId() - tracksWithItsPid.offset()); + auto posDaughter = cascade.template posTrack_as(); posDaughterIndex = trackBuilder.template getDaughterIndex(posDaughter, trackProducts, collisionProducts); - // cleaner, but without ITS pid: auto negDaughter = cascade.template negTrack_as(); - auto negDaughter = tracksWithItsPid.iteratorAt(cascade.negTrackId() - tracksWithItsPid.offset()); + auto negDaughter = cascade.template negTrack_as(); negDaughterIndex = trackBuilder.template getDaughterIndex(negDaughter, trackProducts, collisionProducts); fillCascade(collisionProducts, cascadeProducts, cascade, col, bachelorIndex, posDaughterIndex, negDaughterIndex); } } - template - void fillMcCascades(T1 const& col, T2& collisionBuilder, T3& collisionProducts, T4 const& mcCols, T5& trackProducts, T6& cascadeProducts, T7 const& cascades, T8 const& tracks, T9 const& tracksWithItsPid, T10& trackBuilder, T11 const& mcParticles, T12& mcBuilder, T13& mcProducts) + template + void fillMcCascades(T1 const& col, T2& collisionBuilder, T3& collisionProducts, T4 const& mcCols, T5& trackProducts, T6& cascadeProducts, T7 const& cascades, T8 const& tracks, T9& trackBuilder, T10 const& mcParticles, T11& mcBuilder, T12& mcProducts) { if (!mFillAnyTable) { return; @@ -437,17 +434,14 @@ class CascadeBuilder collisionBuilder.template fillMcCollision(collisionProducts, col, mcCols, mcProducts, mcBuilder); - auto bachelor = tracks.iteratorAt(cascade.bachelorId() - tracks.offset()); - auto bachelorWithItsPid = tracksWithItsPid.iteratorAt(cascade.bachelorId() - tracksWithItsPid.offset()); - bachelorIndex = trackBuilder.template getDaughterIndex(col, collisionProducts, mcCols, bachelor, bachelorWithItsPid, trackProducts, mcParticles, mcBuilder, mcProducts); + auto bachelor = cascade.template bachelor_as(); + bachelorIndex = trackBuilder.template getDaughterIndex(col, collisionProducts, mcCols, bachelor, trackProducts, mcParticles, mcBuilder, mcProducts); - auto posDaughter = tracks.iteratorAt(cascade.posTrackId() - tracks.offset()); - auto posDaughterWithItsPid = tracksWithItsPid.iteratorAt(cascade.posTrackId() - tracksWithItsPid.offset()); - posDaughterIndex = trackBuilder.template getDaughterIndex(col, collisionProducts, mcCols, posDaughter, posDaughterWithItsPid, trackProducts, mcParticles, mcBuilder, mcProducts); + auto posDaughter = cascade.template posTrack_as(); + posDaughterIndex = trackBuilder.template getDaughterIndex(col, collisionProducts, mcCols, posDaughter, trackProducts, mcParticles, mcBuilder, mcProducts); - auto negDaughter = tracks.iteratorAt(cascade.negTrackId() - tracks.offset()); - auto negDaughterWithItsPid = tracksWithItsPid.iteratorAt(cascade.negTrackId() - tracksWithItsPid.offset()); - negDaughterIndex = trackBuilder.template getDaughterIndex(col, collisionProducts, mcCols, negDaughter, negDaughterWithItsPid, trackProducts, mcParticles, mcBuilder, mcProducts); + auto negDaughter = cascade.template negTrack_as(); + negDaughterIndex = trackBuilder.template getDaughterIndex(col, collisionProducts, mcCols, negDaughter, trackProducts, mcParticles, mcBuilder, mcProducts); fillCascade(collisionProducts, cascadeProducts, cascade, col, bachelorIndex, posDaughterIndex, negDaughterIndex); if constexpr (modes::isEqual(cascadeType, modes::Cascade::kXi)) { diff --git a/PWGCF/Femto/Core/kinkBuilder.h b/PWGCF/Femto/Core/kinkBuilder.h index 214260ee245..99e87514824 100644 --- a/PWGCF/Femto/Core/kinkBuilder.h +++ b/PWGCF/Femto/Core/kinkBuilder.h @@ -64,10 +64,10 @@ struct ConfKinkFilters : o2::framework::ConfigurableGroup { // selections bits for all kinks #define KINK_DEFAULT_BITS \ o2::framework::Configurable> kinkTopoDcaMax{"kinkTopoDcaMax", {2.0f}, "Maximum kink topological DCA"}; \ - o2::framework::Configurable> transRadMin{"transRadMin", {0.2f}, "Minimum transverse radius (cm)"}; \ + o2::framework::Configurable> transRadMin{"transRadMin", {20.f}, "Minimum transverse radius (cm)"}; \ o2::framework::Configurable> transRadMax{"transRadMax", {100.f}, "Maximum transverse radius (cm)"}; \ - o2::framework::Configurable> dauAbsEtaMax{"dauAbsEtaMax", {0.8f}, "Maximum absolute pseudorapidity for daughter track"}; \ - o2::framework::Configurable> dauDcaPvMin{"dauDcaPvMin", {0.0f}, "Minimum DCA of daughter from primary vertex (cm)"}; \ + o2::framework::Configurable> dauAbsEtaMax{"dauAbsEtaMax", {1.0f}, "Maximum absolute pseudorapidity for daughter track"}; \ + o2::framework::Configurable> dauDcaPvMin{"dauDcaPvMin", {0.1f}, "Minimum DCA of daughter from primary vertex (cm)"}; \ o2::framework::Configurable> mothDcaPvMax{"mothDcaPvMax", {1.0f}, "Maximum DCA of mother from primary vertex (cm)"}; \ o2::framework::Configurable> alphaAPMin{"alphaAPMin", {-1.0f}, "Minimum Alpha_AP for Sigma candidates"}; \ o2::framework::Configurable> alphaAPMax{"alphaAPMax", {0.0f}, "Maximum Alpha_AP for Sigma candidates"}; \ @@ -224,8 +224,8 @@ class KinkSelection : public BaseSelectionsetupContainers(registry); }; - template - void computeQaVariables(T1 const& kinkCand, T2 const& /*tracks*/) + template + void computeKinkKinematics(T1 const& kinkCand, T2 const& /*tracks*/, T3 const& col) { std::array momMother = {kinkCand.pxMoth(), kinkCand.pyMoth(), kinkCand.pzMoth()}; float kinkMomP = RecoDecay::p(momMother); @@ -244,7 +244,7 @@ class KinkSelection : public BaseSelection vMother = {kinkCand.xDecVtx(), kinkCand.yDecVtx(), kinkCand.zDecVtx()}; + std::array vMother = {kinkCand.xDecVtx() - col.posX(), kinkCand.yDecVtx() - col.posY(), kinkCand.zDecVtx() - col.posZ()}; float vMotherNorm = std::sqrt(std::inner_product(vMother.begin(), vMother.end(), vMother.begin(), 0.f)); mCosPointingAngle = (vMotherNorm > 0.f && kinkMomP > 0.f) ? (std::inner_product(momMother.begin(), momMother.end(), vMother.begin(), 0.f)) / (kinkMomP * vMotherNorm) : 0.f; mTransRadius = std::hypot(kinkCand.xDecVtx(), kinkCand.yDecVtx()); @@ -313,13 +313,8 @@ class KinkSelection : public BaseSelection 0.f) { - mKinkMotherPt = ptRecalc; - } else { - mKinkMotherPt = -1.f; - } + float ptRecalc = utils::calcPtnew(momMother[0], momMother[1], momMother[2], momDaughter[0], momDaughter[1], momDaughter[2]); + mKinkMotherPt = (ptRecalc > 0.f) ? ptRecalc : std::hypot(momMother[0], momMother[1]); } template @@ -435,8 +430,8 @@ class KinkBuilder LOG(info) << "Initialization done..."; } - template - void fillKinks(T1 const& col, T2& collisionBuilder, T3& collisionProducts, T4& trackProducts, T5& kinkProducts, T6 const& kinks, T7 const& tracks, T8 const& tracksWithItsPid, T9& trackBuilder) + template + void fillKinks(T1 const& col, T2& collisionBuilder, T3& collisionProducts, T4& trackProducts, T5& kinkProducts, T6 const& kinks, T7 const& tracks, T8& trackBuilder) { if (!mFillAnyTable) { return; @@ -450,20 +445,15 @@ class KinkBuilder continue; } // compute qa variables before applying selections - mKinkSelection.computeQaVariables(kink, tracks); + mKinkSelection.computeKinkKinematics(kink, tracks, col); mKinkSelection.applySelections(kink, tracks); if (!mKinkSelection.passesAllRequiredSelections()) { continue; } collisionBuilder.template fillCollision(collisionProducts, col); - // cleaner, but without ITS pid: auto daughter = kink.template trackDaug_as(); - int64_t idx = kink.trackDaugId() - tracksWithItsPid.offset(); - // check for valid index - if (idx < 0 || idx >= static_cast(tracksWithItsPid.size())) { - return; - } - auto daughter = tracksWithItsPid.iteratorAt(idx); + + auto daughter = kink.template trackDaug_as(); daughterIndex = trackBuilder.template getDaughterIndex(daughter, trackProducts, collisionProducts); if constexpr (modes::isEqual(kinkType, modes::Kink::kSigma)) { fillSigma(collisionProducts, kinkProducts, kink, daughterIndex); @@ -474,8 +464,8 @@ class KinkBuilder } } - template - void fillMcKinks(T1 const& col, T2& collisionBuilder, T3& collisionProducts, T4 const& mcCols, T5& trackProducts, T6& kinkProducts, T7 const& kinks, T8 const& tracks, T9 const& tracksWithItsPid, T10& trackBuilder, T11 const& mcParticles, T12& mcBuilder, T13& mcProducts) + template + void fillMcKinks(T1 const& col, T2& collisionBuilder, T3& collisionProducts, T4 const& mcCols, T5& trackProducts, T6& kinkProducts, T7 const& kinks, T8 const& tracks, T9& trackBuilder, T10 const& mcParticles, T11& mcBuilder, T12& mcProducts) { if (!mFillAnyTable) { @@ -489,7 +479,7 @@ class KinkBuilder continue; } // compute qa variables before applying selections - mKinkSelection.computeQaVariables(kink, tracks); + mKinkSelection.computeKinkKinematics(kink, tracks, col); mKinkSelection.applySelections(kink, tracks); if (!mKinkSelection.passesAllRequiredSelections()) { continue; @@ -497,14 +487,8 @@ class KinkBuilder collisionBuilder.template fillMcCollision(collisionProducts, col, mcCols, mcProducts, mcBuilder); - int64_t idx = kink.trackDaugId() - tracks.offset(); - // check for valid index - if (idx < 0 || idx >= static_cast(tracks.size())) { - return; - } - auto daughter = tracks.iteratorAt(idx); - auto daughterWithItsPid = tracksWithItsPid.iteratorAt(idx); - daughterIndex = trackBuilder.template getDaughterIndex(col, collisionProducts, mcCols, daughter, daughterWithItsPid, trackProducts, mcParticles, mcBuilder, mcProducts); + auto daughter = kink.template trackDaug_as(); + daughterIndex = trackBuilder.template getDaughterIndex(col, collisionProducts, mcCols, daughter, trackProducts, mcParticles, mcBuilder, mcProducts); if constexpr (modes::isEqual(kinkType, modes::Kink::kSigma)) { fillSigma(collisionProducts, kinkProducts, kink, daughterIndex); diff --git a/PWGCF/Femto/Core/pairHistManager.h b/PWGCF/Femto/Core/pairHistManager.h index e104181af6f..079f217c5f3 100644 --- a/PWGCF/Femto/Core/pairHistManager.h +++ b/PWGCF/Femto/Core/pairHistManager.h @@ -172,7 +172,7 @@ struct ConfPairBinning : o2::framework::ConfigurableGroup { o2::framework::ConfigurableAxis dalitzM13{"dalitzM13", {{100, 0, 10}}, "Mass13 binning of darlitz plot"}; o2::framework::Configurable transverseMassType{"transverseMassType", static_cast(modes::TransverseMassType::kAveragePdgMass), "Type of transverse mass (0-> Average Pdg Mass, 1-> Reduced Pdg Mass, 2-> Mt from combined 4 vector)"}; o2::framework::ConfigurableAxis binningDeltaEta{"binningDeltaEta", {{35, -1.6, 1.6}}, "Delta eta"}; - o2::framework::ConfigurableAxis binningDeltaPhi{"binningDeltaPhi", {{35, -o2::constants::math::PI / 2, 3 * o2::constants::math::PI / 2}}, "Delta phi"}; + o2::framework::ConfigurableAxis binningDeltaPhi{"binningDeltaPhi", {{35, -o2::constants::math::PIHalf, 3 * o2::constants::math::PIHalf}}, "Delta phi"}; }; struct ConfPairCuts : o2::framework::ConfigurableGroup { @@ -489,7 +489,7 @@ class PairHistManager if (mPlotDeltaEtaDeltaPhi) { mDeltaEta = particle1.eta() - particle2.eta(); - mDeltaPhi = RecoDecay::constrainAngle(particle1.phi() - particle2.phi(), -o2::constants::math::PI / 2); + mDeltaPhi = RecoDecay::constrainAngle(particle1.phi() - particle2.phi(), -o2::constants::math::PIHalf); } if (mPlotDalitz) { diff --git a/PWGCF/Femto/Core/trackBuilder.h b/PWGCF/Femto/Core/trackBuilder.h index a9ac74542a2..4cfbf44664f 100644 --- a/PWGCF/Femto/Core/trackBuilder.h +++ b/PWGCF/Femto/Core/trackBuilder.h @@ -605,7 +605,7 @@ class TrackBuilder } } if (mProduceTrackMass) { - trackProducts.producedTrackMass(track.mass()); + trackProducts.producedTrackMass(track.mass()); // default value if track has no TOF signal is -999 } if (mProduceTrackDcas) { trackProducts.producedTrackDcas(track.dcaXY(), track.dcaZ()); @@ -624,25 +624,53 @@ class TrackBuilder track.beta()); } if (mProduceElectronPids) { - trackProducts.producedElectronPids(track.itsNSigmaEl(), track.tpcNSigmaEl(), track.tofNSigmaEl()); + float itsEl = 0.f; + if constexpr (requires(T1 t) { t.itsNSigmaEl(); }) { + itsEl = track.itsNSigmaEl(); + } + trackProducts.producedElectronPids(itsEl, track.tpcNSigmaEl(), track.tofNSigmaEl()); } if (mProducePionPids) { - trackProducts.producedPionPids(track.itsNSigmaPi(), track.tpcNSigmaPi(), track.tofNSigmaPi()); + float itsPi = 0.f; + if constexpr (requires(T1 t) { t.itsNSigmaPi(); }) { + itsPi = track.itsNSigmaPi(); + } + trackProducts.producedPionPids(itsPi, track.tpcNSigmaPi(), track.tofNSigmaPi()); } if (mProduceKaonPids) { - trackProducts.producedKaonPids(track.itsNSigmaKa(), track.tpcNSigmaKa(), track.tofNSigmaKa()); + float itsKa = 0.f; + if constexpr (requires(T1 t) { t.itsNSigmaKa(); }) { + itsKa = track.itsNSigmaKa(); + } + trackProducts.producedKaonPids(itsKa, track.tpcNSigmaKa(), track.tofNSigmaKa()); } if (mProduceProtonPids) { - trackProducts.producedProtonPids(track.itsNSigmaPr(), track.tpcNSigmaPr(), track.tofNSigmaPr()); + float itsPr = 0.f; + if constexpr (requires(T1 t) { t.itsNSigmaPr(); }) { + itsPr = track.itsNSigmaPr(); + } + trackProducts.producedProtonPids(itsPr, track.tpcNSigmaPr(), track.tofNSigmaPr()); } if (mProduceDeuteronPids) { - trackProducts.producedDeuteronPids(track.itsNSigmaDe(), track.tpcNSigmaDe(), track.tofNSigmaDe()); + float itsDe = 0.f; + if constexpr (requires(T1 t) { t.itsNSigmaDe(); }) { + itsDe = track.itsNSigmaDe(); + } + trackProducts.producedDeuteronPids(itsDe, track.tpcNSigmaDe(), track.tofNSigmaDe()); } if (mProduceTritonPids) { - trackProducts.producedTritonPids(track.itsNSigmaTr(), track.tpcNSigmaTr(), track.tofNSigmaTr()); + float itsTr = 0.f; + if constexpr (requires(T1 t) { t.itsNSigmaTr(); }) { + itsTr = track.itsNSigmaTr(); + } + trackProducts.producedTritonPids(itsTr, track.tpcNSigmaTr(), track.tofNSigmaTr()); } if (mProduceHeliumPids) { - trackProducts.producedHeliumPids(track.itsNSigmaHe(), track.tpcNSigmaHe(), track.tofNSigmaHe()); + float itsHe = 0.f; + if constexpr (requires(T1 t) { t.itsNSigmaHe(); }) { + itsHe = track.itsNSigmaHe(); + } + trackProducts.producedHeliumPids(itsHe, track.tpcNSigmaHe(), track.tofNSigmaHe()); } } @@ -690,15 +718,15 @@ class TrackBuilder } } - template - int64_t getDaughterIndex(const T1& col, T2& collisionProducts, T3 const& mcCols, const T4& daughter, T5& daughterWithItsPid, T6& trackProducts, T7 const& mcParticles, T8& mcBuilder, T9& mcProducts) + template + int64_t getDaughterIndex(const T1& col, T2& collisionProducts, T3 const& mcCols, const T4& daughter, T5& trackProducts, T6 const& mcParticles, T7& mcBuilder, T8& mcProducts) { auto result = utils::getIndex(daughter.globalIndex(), indexMap); if (result) { // daugher already in track table return result.value(); } else { - this->fillMcTrack(col, collisionProducts, mcCols, daughter, daughterWithItsPid, trackProducts, mcParticles, mcBuilder, mcProducts); + this->fillMcTrack(col, collisionProducts, mcCols, daughter, daughter, trackProducts, mcParticles, mcBuilder, mcProducts); // daughter is last track which was added added return trackProducts.producedTracks.lastIndex(); } diff --git a/PWGCF/Femto/Core/v0Builder.h b/PWGCF/Femto/Core/v0Builder.h index 28b2b9c37af..6277283f8b8 100644 --- a/PWGCF/Femto/Core/v0Builder.h +++ b/PWGCF/Femto/Core/v0Builder.h @@ -385,8 +385,8 @@ class V0Builder LOG(info) << "Initialization done..."; } - template - void fillV0s(T1 const& col, T2& collisionBuilder, T3& collisionProducts, T4& trackProducts, T5& v0Products, T6 const& v0s, T7 const& tracks, T8 const& tracksWithItsPid, T9& trackBuilder) + template + void fillV0s(T1 const& col, T2& collisionBuilder, T3& collisionProducts, T4& trackProducts, T5& v0Products, T6 const& v0s, T7 const& tracks, T8& trackBuilder) { if (!mFillAnyTable) { return; @@ -404,10 +404,8 @@ class V0Builder collisionBuilder.template fillCollision(collisionProducts, col); - // cleaner, but without ITS pid: auto posDaughter = v0.template posTrack_as(); - auto posDaughter = tracksWithItsPid.iteratorAt(v0.posTrackId() - tracksWithItsPid.offset()); - // cleaner, but without ITS pid: auto negDaughter = v0.template negTrack_as(); - auto negDaughter = tracksWithItsPid.iteratorAt(v0.negTrackId() - tracksWithItsPid.offset()); + auto posDaughter = v0.template posTrack_as(); + auto negDaughter = v0.template negTrack_as(); posDaughterIndex = trackBuilder.template getDaughterIndex(posDaughter, trackProducts, collisionProducts); negDaughterIndex = trackBuilder.template getDaughterIndex(negDaughter, trackProducts, collisionProducts); @@ -424,8 +422,8 @@ class V0Builder } } - template - void fillMcV0s(T1 const& col, T2& collisionBuilder, T3& collisionProducts, T4 const& mcCols, T5& trackProducts, T6& v0Products, T7 const& v0s, T8 const& tracks, T9 const& tracksWithItsPid, T10& trackBuilder, T11 const& mcParticles, T12& mcBuilder, T13& mcProducts) + template + void fillMcV0s(T1 const& col, T2& collisionBuilder, T3& collisionProducts, T4 const& mcCols, T5& trackProducts, T6& v0Products, T7 const& v0s, T8 const& tracks, T9& trackBuilder, T10 const& mcParticles, T11& mcBuilder, T12& mcProducts) { if (!mFillAnyTable) { @@ -444,13 +442,11 @@ class V0Builder collisionBuilder.template fillMcCollision(collisionProducts, col, mcCols, mcProducts, mcBuilder); - auto posDaughter = tracks.iteratorAt(v0.posTrackId() - tracksWithItsPid.offset()); - auto posDaughterWithItsPid = tracksWithItsPid.iteratorAt(v0.posTrackId() - tracksWithItsPid.offset()); - posDaughterIndex = trackBuilder.template getDaughterIndex(col, collisionProducts, mcCols, posDaughter, posDaughterWithItsPid, trackProducts, mcParticles, mcBuilder, mcProducts); + auto posDaughter = v0.template posTrack_as(); + posDaughterIndex = trackBuilder.template getDaughterIndex(col, collisionProducts, mcCols, posDaughter, trackProducts, mcParticles, mcBuilder, mcProducts); - auto negDaughter = tracks.iteratorAt(v0.negTrackId() - tracksWithItsPid.offset()); - auto negDaughterWithItsPid = tracksWithItsPid.iteratorAt(v0.negTrackId() - tracksWithItsPid.offset()); - negDaughterIndex = trackBuilder.template getDaughterIndex(col, collisionProducts, mcCols, negDaughter, negDaughterWithItsPid, trackProducts, mcParticles, mcBuilder, mcProducts); + auto negDaughter = v0.template negTrack_as(); + negDaughterIndex = trackBuilder.template getDaughterIndex(col, collisionProducts, mcCols, negDaughter, trackProducts, mcParticles, mcBuilder, mcProducts); if constexpr (modes::isEqual(v0Type, modes::V0::kLambda)) { fillLambda(collisionProducts, v0Products, v0, 1.f, posDaughterIndex, negDaughterIndex); diff --git a/PWGCF/Femto/TableProducer/femtoProducer.cxx b/PWGCF/Femto/TableProducer/femtoProducer.cxx index 6d655cb02e2..ce58dbbd4a7 100644 --- a/PWGCF/Femto/TableProducer/femtoProducer.cxx +++ b/PWGCF/Femto/TableProducer/femtoProducer.cxx @@ -229,49 +229,49 @@ struct FemtoProducer { } // processing v0s - template - void processV0s(T1 const& col, T2 const& tracks, T3 const& tracksWithItsPid, T4 const& v0s) + template + void processV0s(T1 const& col, T2 const& tracks, T3 const& v0s) { - lambdaBuilder.fillV0s(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, v0builderProducts, v0s, tracks, tracksWithItsPid, trackBuilder); - antilambdaBuilder.fillV0s(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, v0builderProducts, v0s, tracks, tracksWithItsPid, trackBuilder); - k0shortBuilder.fillV0s(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, v0builderProducts, v0s, tracks, tracksWithItsPid, trackBuilder); + lambdaBuilder.fillV0s(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, v0builderProducts, v0s, tracks, trackBuilder); + antilambdaBuilder.fillV0s(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, v0builderProducts, v0s, tracks, trackBuilder); + k0shortBuilder.fillV0s(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, v0builderProducts, v0s, tracks, trackBuilder); } - template - void processMcV0s(T1 const& col, T2 const& mcCols, T3 const& tracks, T4 const& tracksWithItsPid, T5 const& v0s, T6 const& mcParticles) + template + void processMcV0s(T1 const& col, T2 const& mcCols, T3 const& tracks, T4 const& v0s, T5 const& mcParticles) { - lambdaBuilder.fillMcV0s(col, collisionBuilder, collisionBuilderProducts, mcCols, trackBuilderProducts, v0builderProducts, v0s, tracks, tracksWithItsPid, trackBuilder, mcParticles, mcBuilder, mcProducts); - antilambdaBuilder.fillMcV0s(col, collisionBuilder, collisionBuilderProducts, mcCols, trackBuilderProducts, v0builderProducts, v0s, tracks, tracksWithItsPid, trackBuilder, mcParticles, mcBuilder, mcProducts); - k0shortBuilder.fillMcV0s(col, collisionBuilder, collisionBuilderProducts, mcCols, trackBuilderProducts, v0builderProducts, v0s, tracks, tracksWithItsPid, trackBuilder, mcParticles, mcBuilder, mcProducts); + lambdaBuilder.fillMcV0s(col, collisionBuilder, collisionBuilderProducts, mcCols, trackBuilderProducts, v0builderProducts, v0s, tracks, trackBuilder, mcParticles, mcBuilder, mcProducts); + antilambdaBuilder.fillMcV0s(col, collisionBuilder, collisionBuilderProducts, mcCols, trackBuilderProducts, v0builderProducts, v0s, tracks, trackBuilder, mcParticles, mcBuilder, mcProducts); + k0shortBuilder.fillMcV0s(col, collisionBuilder, collisionBuilderProducts, mcCols, trackBuilderProducts, v0builderProducts, v0s, tracks, trackBuilder, mcParticles, mcBuilder, mcProducts); } // processing kinks - template - void processKinks(T1 const& col, T2 const& tracks, T3 const& tracksWithItsPid, T4 const& kinks) + template + void processKinks(T1 const& col, T2 const& tracks, T3 const& kinks) { - sigmaBuilder.fillKinks(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, kinkBuilderProducts, kinks, tracks, tracksWithItsPid, trackBuilder); - sigmaPlusBuilder.fillKinks(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, kinkBuilderProducts, kinks, tracks, tracksWithItsPid, trackBuilder); + sigmaBuilder.fillKinks(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, kinkBuilderProducts, kinks, tracks, trackBuilder); + sigmaPlusBuilder.fillKinks(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, kinkBuilderProducts, kinks, tracks, trackBuilder); } - template - void processMcKinks(T1 const& col, T2 const& mcCols, T3 const& tracks, T4 const& tracksWithItsPid, T5 const& kinks, T6 const& mcParticles) + template + void processMcKinks(T1 const& col, T2 const& mcCols, T3 const& tracks, T4 const& kinks, T5 const& mcParticles) { - sigmaBuilder.fillMcKinks(col, collisionBuilder, collisionBuilderProducts, mcCols, trackBuilderProducts, kinkBuilderProducts, kinks, tracks, tracksWithItsPid, trackBuilder, mcParticles, mcBuilder, mcProducts); - sigmaPlusBuilder.fillMcKinks(col, collisionBuilder, collisionBuilderProducts, mcCols, trackBuilderProducts, kinkBuilderProducts, kinks, tracks, tracksWithItsPid, trackBuilder, mcParticles, mcBuilder, mcProducts); + sigmaBuilder.fillMcKinks(col, collisionBuilder, collisionBuilderProducts, mcCols, trackBuilderProducts, kinkBuilderProducts, kinks, tracks, trackBuilder, mcParticles, mcBuilder, mcProducts); + sigmaPlusBuilder.fillMcKinks(col, collisionBuilder, collisionBuilderProducts, mcCols, trackBuilderProducts, kinkBuilderProducts, kinks, tracks, trackBuilder, mcParticles, mcBuilder, mcProducts); } // processing cascades - template - void processCascades(T1 const& col, T2 const& tracks, T3 const& tracksWithItsPid, T4 const& cascades) + template + void processCascades(T1 const& col, T2 const& tracks, T3 const& cascades) { xiBuilder.fillCascades(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, cascadeBuilderProducts, - cascades, tracks, tracksWithItsPid, trackBuilder); + cascades, tracks, trackBuilder); omegaBuilder.fillCascades(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, cascadeBuilderProducts, - cascades, tracks, tracksWithItsPid, trackBuilder); + cascades, tracks, trackBuilder); } - template - void processMcCascades(T1 const& col, T2 const& mcCols, T3 const& tracks, T4 const& tracksWithItsPid, T5 const& cascades, T6 const& mcParticles) + template + void processMcCascades(T1 const& col, T2 const& mcCols, T3 const& tracks, T4 const& cascades, T5 const& mcParticles) { - xiBuilder.fillMcCascades(col, collisionBuilder, collisionBuilderProducts, mcCols, trackBuilderProducts, cascadeBuilderProducts, cascades, tracks, tracksWithItsPid, trackBuilder, mcParticles, mcBuilder, mcProducts); - omegaBuilder.fillMcCascades(col, collisionBuilder, collisionBuilderProducts, mcCols, trackBuilderProducts, cascadeBuilderProducts, cascades, tracks, tracksWithItsPid, trackBuilder, mcParticles, mcBuilder, mcProducts); + xiBuilder.fillMcCascades(col, collisionBuilder, collisionBuilderProducts, mcCols, trackBuilderProducts, cascadeBuilderProducts, cascades, tracks, trackBuilder, mcParticles, mcBuilder, mcProducts); + omegaBuilder.fillMcCascades(col, collisionBuilder, collisionBuilderProducts, mcCols, trackBuilderProducts, cascadeBuilderProducts, cascades, tracks, trackBuilder, mcParticles, mcBuilder, mcProducts); } // proccess functions @@ -300,7 +300,7 @@ struct FemtoProducer { auto tracksWithItsPid = o2::soa::Attach(tracks); processTracks(col, tracksWithItsPid); - processV0s(col, tracks, tracksWithItsPid, v0s); + processV0s(col, tracks, v0s); }; PROCESS_SWITCH(FemtoProducer, processTracksV0sRun3pp, "Process tracks and v0s", false); @@ -316,7 +316,7 @@ struct FemtoProducer { auto tracksWithItsPid = o2::soa::Attach(tracks); processTracks(col, tracksWithItsPid); - processKinks(col, tracks, tracksWithItsPid, kinks); + processKinks(col, tracks, kinks); } PROCESS_SWITCH(FemtoProducer, processTracksKinksRun3pp, "Process tracks and kinks", false); @@ -333,8 +333,8 @@ struct FemtoProducer { auto tracksWithItsPid = o2::soa::Attach(tracks); processTracks(col, tracksWithItsPid); - processV0s(col, tracks, tracksWithItsPid, v0s); - processCascades(col, tracks, tracksWithItsPid, cascades); + processV0s(col, tracks, v0s); + processCascades(col, tracks, cascades); } PROCESS_SWITCH(FemtoProducer, processTracksV0sCascadesRun3pp, "Provide Tracks, V0s and Cascades for Run3", false); @@ -352,9 +352,9 @@ struct FemtoProducer { auto tracksWithItsPid = o2::soa::Attach(tracks); processTracks(col, tracksWithItsPid); - processV0s(col, tracks, tracksWithItsPid, v0s); - processKinks(col, tracks, tracksWithItsPid, kinks); - processCascades(col, tracks, tracksWithItsPid, cascades); + processV0s(col, tracks, v0s); + processKinks(col, tracks, kinks); + processCascades(col, tracks, cascades); } PROCESS_SWITCH(FemtoProducer, processTracksV0sCascadesKinksRun3pp, "Provide Tracks, V0s and Cascades for Run3", false); @@ -388,7 +388,7 @@ struct FemtoProducer { auto tracksWithItsPid = o2::soa::Attach(tracks); processMcTracks(col, mcCols, tracks, tracksWithItsPid, mcParticles); - processMcV0s(col, mcCols, tracks, tracksWithItsPid, v0s, mcParticles); + processMcV0s(col, mcCols, tracks, v0s, mcParticles); } PROCESS_SWITCH(FemtoProducer, processTracksV0sRun3ppMc, "Provide reconstructed and generated tracks and v0s", false); @@ -406,7 +406,7 @@ struct FemtoProducer { auto tracksWithItsPid = o2::soa::Attach(tracks); processMcTracks(col, mcCols, tracks, tracksWithItsPid, mcParticles); - processMcKinks(col, mcCols, tracks, tracksWithItsPid, kinks, mcParticles); + processMcKinks(col, mcCols, tracks, kinks, mcParticles); } PROCESS_SWITCH(FemtoProducer, processTracksKinksRun3ppMc, "Provide reconstructed and generated tracks and kinks", false); @@ -425,8 +425,8 @@ struct FemtoProducer { auto tracksWithItsPid = o2::soa::Attach(tracks); processMcTracks(col, mcCols, tracks, tracksWithItsPid, mcParticles); - processMcV0s(col, mcCols, tracks, tracksWithItsPid, v0s, mcParticles); - processMcKinks(col, mcCols, tracks, tracksWithItsPid, kinks, mcParticles); + processMcV0s(col, mcCols, tracks, v0s, mcParticles); + processMcKinks(col, mcCols, tracks, kinks, mcParticles); } PROCESS_SWITCH(FemtoProducer, processTracksV0sKinksRun3ppMc, "Provide reconstructed and generated tracks and v0s and kinks", false); @@ -445,8 +445,8 @@ struct FemtoProducer { auto tracksWithItsPid = o2::soa::Attach(tracks); processMcTracks(col, mcCols, tracks, tracksWithItsPid, mcParticles); - processMcV0s(col, mcCols, tracks, tracksWithItsPid, v0s, mcParticles); - processMcCascades(col, mcCols, tracks, tracksWithItsPid, cascades, mcParticles); + processMcV0s(col, mcCols, tracks, v0s, mcParticles); + processMcCascades(col, mcCols, tracks, cascades, mcParticles); } PROCESS_SWITCH(FemtoProducer, processTracksV0sCascadesRun3ppMc, "Provide reconstructed and generated tracks and v0s", false); }; diff --git a/PWGCF/Femto/Tasks/femtoPairEfficiency.cxx b/PWGCF/Femto/Tasks/femtoPairEfficiency.cxx index 3cb90975c9a..10179a63fba 100644 --- a/PWGCF/Femto/Tasks/femtoPairEfficiency.cxx +++ b/PWGCF/Femto/Tasks/femtoPairEfficiency.cxx @@ -17,16 +17,18 @@ #include "PWGLF/DataModel/LFStrangenessTables.h" #include "PWGLF/DataModel/mcCentrality.h" -#include "Common/CCDB/EventSelectionParams.h" -#include "Common/DataModel/Centrality.h" -#include "Common/DataModel/EventSelection.h" -#include "Common/DataModel/McCollisionExtra.h" -#include "Common/DataModel/Multiplicity.h" -#include "Common/DataModel/PIDResponseTOF.h" -#include "Common/DataModel/PIDResponseTPC.h" -#include "Common/DataModel/TrackSelectionTables.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include #include #include #include