2424#include < Framework/AnalysisDataModel.h>
2525
2626#include < cmath>
27+ #include < cstdint>
2728
2829namespace o2 ::aod
2930{
@@ -34,12 +35,16 @@ namespace lambdajetpol
3435DECLARE_SOA_COLUMN (CentFT0M, centFT0M, float );
3536DECLARE_SOA_COLUMN (CentFT0C, centFT0C, float );
3637DECLARE_SOA_COLUMN (CentFV0A, centFV0A, float );
38+ DECLARE_SOA_COLUMN (Zvtx, zvtx, float );
39+ DECLARE_SOA_COLUMN (InteractionRate, interactionRate, float );
40+ // DECLARE_SOA_COLUMN(MagField, magField, float);
3741
3842// Jet (and jet proxies) information:
3943DECLARE_SOA_COLUMN (JetPt, jetPt, float );
4044DECLARE_SOA_COLUMN (JetEta, jetEta, float );
4145DECLARE_SOA_COLUMN (JetPhi, jetPhi, float );
42- DECLARE_SOA_COLUMN (JetNConstituents, jetNConstituents, int );
46+ // DECLARE_SOA_COLUMN(JetNConstituents, jetNConstituents, uint16_t); // Currently removed from datamodel.
47+ // Other variables can better reveal jet quenching and help identify good selection criteria for quenched jets proxies
4348
4449DECLARE_SOA_COLUMN (LeadParticlePt, leadParticlePt, float );
4550DECLARE_SOA_COLUMN (LeadParticleEta, leadParticleEta, float );
@@ -50,22 +55,27 @@ DECLARE_SOA_COLUMN(V0Pt, v0Pt, float);
5055DECLARE_SOA_COLUMN (V0Eta, v0Eta, float );
5156DECLARE_SOA_COLUMN (V0Phi, v0Phi, float );
5257
53- DECLARE_SOA_COLUMN (IsLambda, isLambda, bool );
54- DECLARE_SOA_COLUMN (IsAntiLambda, isAntiLambda, bool );
55- DECLARE_SOA_COLUMN (MassLambda, massLambda, float );
56- DECLARE_SOA_COLUMN (MassAntiLambda, massAntiLambda, float );
58+ DECLARE_SOA_COLUMN (IsLambda, isLambda, bool ); // ! 0: antiLambda, 1: Lambda. There are no ambiguous candidates stored (those that pass both Lambda-specific and AntiLambda-specific checks)
59+ // DECLARE_SOA_COLUMN(IsAntiLambda, isAntiLambda, bool);
60+ DECLARE_SOA_COLUMN (MassV0, massV0, float );
61+ // DECLARE_SOA_COLUMN(MassLambda, massLambda, float);
62+ // DECLARE_SOA_COLUMN(MassAntiLambda, massAntiLambda, float);
5763
58- DECLARE_SOA_COLUMN (PosPt, posPt, float );
64+ DECLARE_SOA_COLUMN (PosPt, posPt, float ); // Could consider rewriting this as proton/pion-like Pt, as in TPCNSigma, instead of Pos/Neg
5965DECLARE_SOA_COLUMN (PosEta, posEta, float );
6066DECLARE_SOA_COLUMN (PosPhi, posPhi, float );
6167DECLARE_SOA_COLUMN (NegPt, negPt, float );
6268DECLARE_SOA_COLUMN (NegEta, negEta, float );
6369DECLARE_SOA_COLUMN (NegPhi, negPhi, float );
6470
65- DECLARE_SOA_COLUMN (PosTPCNSigmaPr, posTPCNSigmaPr, float );
66- DECLARE_SOA_COLUMN (PosTPCNSigmaPi, posTPCNSigmaPi, float );
67- DECLARE_SOA_COLUMN (NegTPCNSigmaPr, negTPCNSigmaPr, float );
68- DECLARE_SOA_COLUMN (NegTPCNSigmaPi, negTPCNSigmaPi, float );
71+ // DECLARE_SOA_COLUMN(PosTPCNSigmaPr, posTPCNSigmaPr, float);
72+ // DECLARE_SOA_COLUMN(PosTPCNSigmaPi, posTPCNSigmaPi, float);
73+ // DECLARE_SOA_COLUMN(NegTPCNSigmaPr, negTPCNSigmaPr, float);
74+ // DECLARE_SOA_COLUMN(NegTPCNSigmaPi, negTPCNSigmaPi, float);
75+ // TPC Nsigma variables now stored only for non-ambiguous candidates (those that pass only the Lambda-specific or antiLambda-specific tests):
76+ // (PrLike: proton-like daughter of the V0, either a proton (Lambda) or an antiproton (AntiLambda). PiLike is the pion daughter)
77+ DECLARE_SOA_COLUMN (RoundPrLikeTPCNSigma, roundPrLikeTPCNSigma, int16_t ); // ! Stores nsigma with a precision of 0.01 nsigma. Following LFStrangenessPIDTables.h
78+ DECLARE_SOA_COLUMN (RoundPiLikeTPCNSigma, roundPiLikeTPCNSigma, int16_t );
6979
7080DECLARE_SOA_COLUMN (V0CosPA, v0CosPA, float );
7181DECLARE_SOA_COLUMN (V0Radius, v0Radius, float );
@@ -74,38 +84,46 @@ DECLARE_SOA_COLUMN(DcaPosToPV, dcaPosToPV, float);
7484DECLARE_SOA_COLUMN (DcaNegToPV, dcaNegToPV, float );
7585
7686// Dynamic columns for jets (Px,Py,Pz):
77- DECLARE_SOA_DYNAMIC_COLUMN (JetPx, jetPx, // ! Jet px
87+ DECLARE_SOA_DYNAMIC_COLUMN (JetPx, jetPx,
7888 [](float jetPt, float jetPhi) -> float { return jetPt * std::cos (jetPhi); });
79- DECLARE_SOA_DYNAMIC_COLUMN (JetPy, jetPy, // ! Jet py
89+ DECLARE_SOA_DYNAMIC_COLUMN (JetPy, jetPy,
8090 [](float jetPt, float jetPhi) -> float { return jetPt * std::sin (jetPhi); });
81- DECLARE_SOA_DYNAMIC_COLUMN (JetPz, jetPz, // ! Jet pz
91+ DECLARE_SOA_DYNAMIC_COLUMN (JetPz, jetPz,
8292 [](float jetPt, float jetEta) -> float { return jetPt * std::sinh (jetEta); });
8393// Same for leading particles:
84- DECLARE_SOA_DYNAMIC_COLUMN (LeadParticlePx, leadParticlePx, // ! Leading particle px
94+ DECLARE_SOA_DYNAMIC_COLUMN (LeadParticlePx, leadParticlePx,
8595 [](float leadParticlePt, float leadParticlePhi) -> float { return leadParticlePt * std::cos (leadParticlePhi); });
86- DECLARE_SOA_DYNAMIC_COLUMN (LeadParticlePy, leadParticlePy, // ! Leading particle py
96+ DECLARE_SOA_DYNAMIC_COLUMN (LeadParticlePy, leadParticlePy,
8797 [](float leadParticlePt, float leadParticlePhi) -> float { return leadParticlePt * std::sin (leadParticlePhi); });
88- DECLARE_SOA_DYNAMIC_COLUMN (LeadParticlePz, leadParticlePz, // ! Leading particle pz
98+ DECLARE_SOA_DYNAMIC_COLUMN (LeadParticlePz, leadParticlePz,
8999 [](float leadParticlePt, float leadParticleEta) -> float { return leadParticlePt * std::sinh (leadParticleEta); });
100+
101+ // Dynamic columns for retrieving rounded Nsigma columns:
102+ DECLARE_SOA_DYNAMIC_COLUMN (PrLikeTPCNSigma, prLikeTPCNSigma,
103+ [](int16_t packedValue) -> float { return packedValue / 100 .f ; });
104+ DECLARE_SOA_DYNAMIC_COLUMN (PiLikeTPCNSigma, piLikeTPCNSigma,
105+ [](int16_t packedValue) -> float { return packedValue / 100 .f ; });
90106} // namespace lambdajetpol
91107
92108DECLARE_SOA_TABLE (RingCollisions, " AOD" , " RINGCOLLISION" ,
93- o2::soa::Index<>, // self-index: auto-assigned row number
109+ o2::soa::Index<>, // ! self-index: auto-assigned row number
94110 lambdajetpol::CentFT0M,
95111 lambdajetpol::CentFT0C,
96- lambdajetpol::CentFV0A);
112+ lambdajetpol::CentFV0A,
113+ lambdajetpol::Zvtx,
114+ lambdajetpol::InteractionRate);
97115
98116namespace lambdajetpol
99117{
100- DECLARE_SOA_INDEX_COLUMN (RingCollision, ringCollision); // Declare index after table is available
118+ DECLARE_SOA_INDEX_COLUMN (RingCollision, ringCollision); // ! Declare index after table is available
101119} // namespace lambdajetpol
102120
103121DECLARE_SOA_TABLE (RingJets, " AOD" , " RINGJET" ,
104- lambdajetpol::RingCollisionId, // relational index -> RingCollisions
122+ lambdajetpol::RingCollisionId, // ! relational index -> RingCollisions
105123 lambdajetpol::JetPt,
106124 lambdajetpol::JetEta,
107125 lambdajetpol::JetPhi,
108- lambdajetpol::JetNConstituents,
126+ // lambdajetpol::JetNConstituents,
109127 // Dynamic columns (explicitly bound to their static inputs):
110128 lambdajetpol::JetPx<lambdajetpol::JetPt, lambdajetpol::JetPhi>,
111129 lambdajetpol::JetPy<lambdajetpol::JetPt, lambdajetpol::JetPhi>,
@@ -127,24 +145,23 @@ DECLARE_SOA_TABLE(RingLaV0s, "AOD", "RINGLAV0",
127145 lambdajetpol::V0Eta,
128146 lambdajetpol::V0Phi,
129147 lambdajetpol::IsLambda,
130- lambdajetpol::IsAntiLambda,
131- lambdajetpol::MassLambda,
132- lambdajetpol::MassAntiLambda,
148+ lambdajetpol::MassV0,
133149 lambdajetpol::PosPt,
134150 lambdajetpol::PosEta,
135151 lambdajetpol::PosPhi,
136152 lambdajetpol::NegPt,
137153 lambdajetpol::NegEta,
138154 lambdajetpol::NegPhi,
139- lambdajetpol::PosTPCNSigmaPr,
140- lambdajetpol::PosTPCNSigmaPi,
141- lambdajetpol::NegTPCNSigmaPr,
142- lambdajetpol::NegTPCNSigmaPi,
155+ lambdajetpol::RoundPrLikeTPCNSigma,
156+ lambdajetpol::RoundPiLikeTPCNSigma,
143157 lambdajetpol::V0CosPA,
144158 lambdajetpol::V0Radius,
145159 lambdajetpol::DcaV0Daughters,
146160 lambdajetpol::DcaPosToPV,
147- lambdajetpol::DcaNegToPV);
161+ lambdajetpol::DcaNegToPV,
162+ // Dynamic columns:
163+ lambdajetpol::PrLikeTPCNSigma<lambdajetpol::RoundPrLikeTPCNSigma>,
164+ lambdajetpol::PiLikeTPCNSigma<lambdajetpol::RoundPiLikeTPCNSigma>);
148165
149166using RingCollision = RingCollisions::iterator; // Useful shorthand
150167} // namespace o2::aod
0 commit comments