diff --git a/PWGLF/DataModel/LFSpincorrelationTables.h b/PWGLF/DataModel/LFSpincorrelationTables.h index 40a823da48c..f7ff44377d4 100644 --- a/PWGLF/DataModel/LFSpincorrelationTables.h +++ b/PWGLF/DataModel/LFSpincorrelationTables.h @@ -28,21 +28,21 @@ namespace o2::aod { -namespace lambdaspincorrevent +namespace lambdaevent { DECLARE_SOA_COLUMN(Cent, cent, float); DECLARE_SOA_COLUMN(Posz, posz, float); -} // namespace lambdaspincorrevent -DECLARE_SOA_TABLE(LambdaSpinCorrEvents, "AOD", "LAMBDASPINCOREVENT", +} // namespace lambdaevent +DECLARE_SOA_TABLE(LambdaEvents, "AOD", "LAMBDAEVENT", o2::soa::Index<>, - lambdaspincorrevent::Cent, - lambdaspincorrevent::Posz) -using LambdaSpinCorrEvent = LambdaSpinCorrEvents::iterator; + lambdaevent::Cent, + lambdaevent::Posz) +using LambdaEvent = LambdaEvents::iterator; -namespace lambdaspincorrpair +namespace lambdapair { -DECLARE_SOA_INDEX_COLUMN(LambdaSpinCorrEvent, lambdaspincorrevent); -DECLARE_SOA_COLUMN(V0Status, v0Status, float); //! Lambda or Anti-Lambda status +DECLARE_SOA_INDEX_COLUMN(LambdaEvent, lambdaevent); +DECLARE_SOA_COLUMN(V0Status, v0Status, int); //! Lambda or Anti-Lambda status DECLARE_SOA_COLUMN(DoubleStatus, doubleStatus, bool); //! Double status DECLARE_SOA_COLUMN(V0Cospa, v0Cospa, float); //! V0 Cospa DECLARE_SOA_COLUMN(V0Radius, v0Radius, float); //! V0 Radius @@ -58,27 +58,27 @@ DECLARE_SOA_COLUMN(ProtonEta, protonEta, float); //! Proton Et DECLARE_SOA_COLUMN(ProtonPhi, protonPhi, float); //! Proton Phi DECLARE_SOA_COLUMN(ProtonIndex, protonIndex, int); //! Proton index DECLARE_SOA_COLUMN(PionIndex, pionIndex, int); //! Pion index -} // namespace lambdaspincorrpair -DECLARE_SOA_TABLE(LambdaSpinCorrPairs, "AOD", "LAMBDAPAIR", +} // namespace lambdapair +DECLARE_SOA_TABLE(LambdaPairs, "AOD", "LAMBDAPAIR", o2::soa::Index<>, - lambdaspincorrpair::LambdaSpinCorrEventId, - lambdaspincorrpair::V0Status, - lambdaspincorrpair::DoubleStatus, - lambdaspincorrpair::V0Cospa, - lambdaspincorrpair::V0Radius, - lambdaspincorrpair::DcaPositive, - lambdaspincorrpair::DcaNegative, - lambdaspincorrpair::DcaBetweenDaughter, - lambdaspincorrpair::LambdaPt, - lambdaspincorrpair::LambdaEta, - lambdaspincorrpair::LambdaPhi, - lambdaspincorrpair::LambdaMass, - lambdaspincorrpair::ProtonPt, - lambdaspincorrpair::ProtonEta, - lambdaspincorrpair::ProtonPhi, - lambdaspincorrpair::ProtonIndex, - lambdaspincorrpair::PionIndex); + lambdapair::LambdaEventId, + lambdapair::V0Status, + lambdapair::DoubleStatus, + lambdapair::V0Cospa, + lambdapair::V0Radius, + lambdapair::DcaPositive, + lambdapair::DcaNegative, + lambdapair::DcaBetweenDaughter, + lambdapair::LambdaPt, + lambdapair::LambdaEta, + lambdapair::LambdaPhi, + lambdapair::LambdaMass, + lambdapair::ProtonPt, + lambdapair::ProtonEta, + lambdapair::ProtonPhi, + lambdapair::ProtonIndex, + lambdapair::PionIndex); -using LambdaSpinCorrPair = LambdaSpinCorrPairs::iterator; +using LambdaPair = LambdaPairs::iterator; } // namespace o2::aod #endif // PWGLF_DATAMODEL_LFSPINCORRELATIONTABLES_H_ diff --git a/PWGLF/TableProducer/Strangeness/lambdaspincorrelation.cxx b/PWGLF/TableProducer/Strangeness/lambdaspincorrelation.cxx index 7f60348230e..2cce0f69568 100644 --- a/PWGLF/TableProducer/Strangeness/lambdaspincorrelation.cxx +++ b/PWGLF/TableProducer/Strangeness/lambdaspincorrelation.cxx @@ -58,8 +58,8 @@ using namespace o2::aod::rctsel; struct lambdaspincorrelation { - Produces spinCorrEvent; - Produces spinCorrPair; + Produces lambdaEvent; + Produces lambdaPair; Service ccdb; @@ -246,22 +246,24 @@ struct lambdaspincorrelation { void processData(EventCandidates::iterator const& collision, AllTrackCandidates const&, ResoV0s const& V0s) { + std::vector lambdaMother, protonDaughter, pionDaughter; + std::vector v0Status = {}; + std::vector doubleStatus = {}; + std::vector v0Cospa = {}; + std::vector v0Radius = {}; + std::vector dcaPositive = {}; + std::vector dcaNegative = {}; + std::vector positiveIndex = {}; + std::vector negativeIndex = {}; + std::vector dcaBetweenDaughter = {}; + int numbV0 = 0; // LOGF(info, "event collisions: (%d)", collision.index()); auto centrality = collision.centFT0C(); + auto vz = collision.posZ(); int occupancy = collision.trackOccupancyInTimeRange(); histos.fill(HIST("hEvtSelInfo"), 0.5); if ((rctCut.requireRCTFlagChecker && rctChecker(collision)) && collision.selection_bit(aod::evsel::kNoSameBunchPileup) && collision.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV) && collision.selection_bit(aod::evsel::kNoTimeFrameBorder) && collision.selection_bit(aod::evsel::kNoITSROFrameBorder) && collision.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard) && collision.sel8() && collision.selection_bit(o2::aod::evsel::kIsGoodITSLayersAll) && occupancy < cfgCutOccupancy) { histos.fill(HIST("hEvtSelInfo"), 1.5); - std::vector lambdaMother, protonDaughter, pionDaughter; - std::vector v0Status = {}; - std::vector doubleStatus = {}; - std::vector v0Cospa = {}; - std::vector v0Radius = {}; - std::vector dcaPositive = {}; - std::vector dcaNegative = {}; - std::vector positiveIndex = {}; - std::vector negativeIndex = {}; - std::vector dcaBetweenDaughter = {}; for (const auto& v0 : V0s) { // LOGF(info, "v0 index 0 : (%d)", v0.index()); auto [lambdaTag, aLambdaTag, isValid] = getLambdaTags(v0, collision); @@ -320,19 +322,20 @@ struct lambdaspincorrelation { pionDaughter.push_back(pion); histos.fill(HIST("hLambdaMass"), lambda.M()); } + numbV0 = numbV0 + 1; } } - if (v0Status.size() > 1) { + if (numbV0 > 1 && v0Cospa.size() > 1) { histos.fill(HIST("hEvtSelInfo"), 2.5); - spinCorrEvent(centrality, collision.posZ()); - auto indexEvent = spinCorrEvent.lastIndex(); + lambdaEvent(centrality, vz); + auto indexEvent = lambdaEvent.lastIndex(); //// Fill track table for V0////////////////// for (auto if1 = lambdaMother.begin(); if1 != lambdaMother.end(); ++if1) { auto i5 = std::distance(lambdaMother.begin(), if1); lambdaDummy = lambdaMother.at(i5); protonDummy = protonDaughter.at(i5); pionDummy = pionDaughter.at(i5); - spinCorrPair(indexEvent, v0Status.at(i5), doubleStatus.at(i5), v0Cospa.at(i5), v0Radius.at(i5), dcaPositive.at(i5), dcaNegative.at(i5), dcaBetweenDaughter.at(i5), lambdaDummy.Pt(), lambdaDummy.Eta(), lambdaDummy.Phi(), lambdaDummy.M(), protonDummy.Pt(), protonDummy.Eta(), protonDummy.Phi(), positiveIndex.at(i5), negativeIndex.at(i5)); + lambdaPair(indexEvent, v0Status.at(i5), doubleStatus.at(i5), v0Cospa.at(i5), v0Radius.at(i5), dcaPositive.at(i5), dcaNegative.at(i5), dcaBetweenDaughter.at(i5), lambdaDummy.Pt(), lambdaDummy.Eta(), lambdaDummy.Phi(), lambdaDummy.M(), protonDummy.Pt(), protonDummy.Eta(), protonDummy.Phi(), positiveIndex.at(i5), negativeIndex.at(i5)); } } }