Skip to content

Commit 80ea9c0

Browse files
[PWGLF] Updates on RingPolarization spurious signal estimation (#17531)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 03d4b77 commit 80ea9c0

3 files changed

Lines changed: 2768 additions & 956 deletions

File tree

PWGLF/DataModel/lambdaJetPolarizationIons.h

Lines changed: 46 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include <Framework/AnalysisDataModel.h>
2525

2626
#include <cmath>
27+
#include <cstdint>
2728

2829
namespace o2::aod
2930
{
@@ -34,12 +35,16 @@ namespace lambdajetpol
3435
DECLARE_SOA_COLUMN(CentFT0M, centFT0M, float);
3536
DECLARE_SOA_COLUMN(CentFT0C, centFT0C, float);
3637
DECLARE_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:
3943
DECLARE_SOA_COLUMN(JetPt, jetPt, float);
4044
DECLARE_SOA_COLUMN(JetEta, jetEta, float);
4145
DECLARE_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

4449
DECLARE_SOA_COLUMN(LeadParticlePt, leadParticlePt, float);
4550
DECLARE_SOA_COLUMN(LeadParticleEta, leadParticleEta, float);
@@ -50,22 +55,27 @@ DECLARE_SOA_COLUMN(V0Pt, v0Pt, float);
5055
DECLARE_SOA_COLUMN(V0Eta, v0Eta, float);
5156
DECLARE_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
5965
DECLARE_SOA_COLUMN(PosEta, posEta, float);
6066
DECLARE_SOA_COLUMN(PosPhi, posPhi, float);
6167
DECLARE_SOA_COLUMN(NegPt, negPt, float);
6268
DECLARE_SOA_COLUMN(NegEta, negEta, float);
6369
DECLARE_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

7080
DECLARE_SOA_COLUMN(V0CosPA, v0CosPA, float);
7181
DECLARE_SOA_COLUMN(V0Radius, v0Radius, float);
@@ -74,38 +84,46 @@ DECLARE_SOA_COLUMN(DcaPosToPV, dcaPosToPV, float);
7484
DECLARE_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

92108
DECLARE_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

98116
namespace 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

103121
DECLARE_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

149166
using RingCollision = RingCollisions::iterator; // Useful shorthand
150167
} // namespace o2::aod

0 commit comments

Comments
 (0)