From 4c0949365aef698cd0e59edb4d5e1207dbd068d5 Mon Sep 17 00:00:00 2001 From: skundu692 Date: Sun, 8 Jun 2025 13:33:55 +0200 Subject: [PATCH 1/7] add new expression for angular correlation --- PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx b/PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx index be85c214406..2ab12a018d8 100644 --- a/PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx +++ b/PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx @@ -290,6 +290,7 @@ struct LfTaskLambdaSpinCorr { auto proton1LambdaRF = boostLambda1ToCM(proton1pairCM); auto proton2LambdaRF = boostLambda2ToCM(proton2pairCM); + auto cosThetaDiff = -999.0; if (cosCalculation == 0) { cosThetaDiff = proton1LambdaRF.Vect().Unit().Dot(proton2LambdaRF.Vect().Unit()); From c499190b12b50f1c2cc1c2c8ddfcdfcf31ae75ef Mon Sep 17 00:00:00 2001 From: skundu692 Date: Mon, 9 Jun 2025 19:10:09 +0200 Subject: [PATCH 2/7] Fix clang formating --- PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx | 1 - 1 file changed, 1 deletion(-) diff --git a/PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx b/PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx index 2ab12a018d8..be85c214406 100644 --- a/PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx +++ b/PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx @@ -290,7 +290,6 @@ struct LfTaskLambdaSpinCorr { auto proton1LambdaRF = boostLambda1ToCM(proton1pairCM); auto proton2LambdaRF = boostLambda2ToCM(proton2pairCM); - auto cosThetaDiff = -999.0; if (cosCalculation == 0) { cosThetaDiff = proton1LambdaRF.Vect().Unit().Dot(proton2LambdaRF.Vect().Unit()); From bea86b945fb3375754cc5fb06731420ec9ecf092 Mon Sep 17 00:00:00 2001 From: skundu692 Date: Wed, 11 Jun 2025 17:25:08 +0200 Subject: [PATCH 3/7] Add new process function to study derived data --- PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx b/PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx index be85c214406..3f8790098ed 100644 --- a/PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx +++ b/PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx @@ -866,9 +866,9 @@ struct LfTaskLambdaSpinCorr { continue; } + // auto postrack1 = v0.template posTrackExtra_as(); // auto negtrack1 = v0.template negTrackExtra_as(); - // 2nd loop for combination of lambda lambda for (const auto& v02 : V0s) { if (v02.index() <= v0.index()) { @@ -899,8 +899,10 @@ struct LfTaskLambdaSpinCorr { continue; } + // auto postrack2 = v02.template posTrackExtra_as(); // auto negtrack2 = v02.template negTrackExtra_as(); + if (v0.posTrackExtraId() == v02.posTrackExtraId() || v0.negTrackExtraId() == v02.negTrackExtraId()) { continue; } @@ -1012,6 +1014,7 @@ struct LfTaskLambdaSpinCorr { if (lambdaTag2 && aLambdaTag2) { continue; } + // auto postrack1 = t1.template posTrackExtra_as(); // auto negtrack1 = t1.template negTrackExtra_as(); // auto postrack2 = t2.template posTrackExtra_as(); From 20609e4abe7072532a7c3eb1964d59ee8dfc8c43 Mon Sep 17 00:00:00 2001 From: skundu692 Date: Wed, 11 Jun 2025 17:25:39 +0200 Subject: [PATCH 4/7] Fix --- PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx b/PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx index 3f8790098ed..80c75717d08 100644 --- a/PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx +++ b/PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx @@ -866,9 +866,9 @@ struct LfTaskLambdaSpinCorr { continue; } - // auto postrack1 = v0.template posTrackExtra_as(); // auto negtrack1 = v0.template negTrackExtra_as(); + // 2nd loop for combination of lambda lambda for (const auto& v02 : V0s) { if (v02.index() <= v0.index()) { @@ -899,10 +899,8 @@ struct LfTaskLambdaSpinCorr { continue; } - // auto postrack2 = v02.template posTrackExtra_as(); // auto negtrack2 = v02.template negTrackExtra_as(); - if (v0.posTrackExtraId() == v02.posTrackExtraId() || v0.negTrackExtraId() == v02.negTrackExtraId()) { continue; } @@ -1014,7 +1012,6 @@ struct LfTaskLambdaSpinCorr { if (lambdaTag2 && aLambdaTag2) { continue; } - // auto postrack1 = t1.template posTrackExtra_as(); // auto negtrack1 = t1.template negTrackExtra_as(); // auto postrack2 = t2.template posTrackExtra_as(); From a394bcfa5d8fc51cb7efe1327450a0968c89b5e4 Mon Sep 17 00:00:00 2001 From: skundu692 Date: Wed, 18 Jun 2025 16:59:09 +0200 Subject: [PATCH 5/7] Fix clang and whitespace error --- PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx b/PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx index 80c75717d08..be85c214406 100644 --- a/PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx +++ b/PWGLF/Tasks/Strangeness/taskLambdaSpinCorr.cxx @@ -868,7 +868,7 @@ struct LfTaskLambdaSpinCorr { // auto postrack1 = v0.template posTrackExtra_as(); // auto negtrack1 = v0.template negTrackExtra_as(); - + // 2nd loop for combination of lambda lambda for (const auto& v02 : V0s) { if (v02.index() <= v0.index()) { From adad7cb29571aaac2594f0e54fef138bc6e685c5 Mon Sep 17 00:00:00 2001 From: skundu692 Date: Thu, 19 Jun 2025 18:30:11 +0200 Subject: [PATCH 6/7] Fix indexing issue in derived data --- PWGLF/DataModel/LFSpincorrelationTables.h | 60 +++++++++---------- .../Strangeness/lambdaspincorrelation.cxx | 35 ++++++----- 2 files changed, 49 insertions(+), 46 deletions(-) diff --git a/PWGLF/DataModel/LFSpincorrelationTables.h b/PWGLF/DataModel/LFSpincorrelationTables.h index 40a823da48c..7327fb1cfa6 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_ +#endif // PWGLF_DATAMODEL_LFELATIONTABLES_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)); } } } From e40d048f5f4c223d76d12825eb9cff7ca87e73c0 Mon Sep 17 00:00:00 2001 From: skundu692 Date: Thu, 19 Jun 2025 18:58:44 +0200 Subject: [PATCH 7/7] fix linter error --- PWGLF/DataModel/LFSpincorrelationTables.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGLF/DataModel/LFSpincorrelationTables.h b/PWGLF/DataModel/LFSpincorrelationTables.h index 7327fb1cfa6..f7ff44377d4 100644 --- a/PWGLF/DataModel/LFSpincorrelationTables.h +++ b/PWGLF/DataModel/LFSpincorrelationTables.h @@ -81,4 +81,4 @@ DECLARE_SOA_TABLE(LambdaPairs, "AOD", "LAMBDAPAIR", using LambdaPair = LambdaPairs::iterator; } // namespace o2::aod -#endif // PWGLF_DATAMODEL_LFELATIONTABLES_H_ +#endif // PWGLF_DATAMODEL_LFSPINCORRELATIONTABLES_H_