Skip to content

Commit c5fcc82

Browse files
[PWGLF] Add HI Lambda/AntiLambda polarization around jets workflow (#15263)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 05572c0 commit c5fcc82

File tree

5 files changed

+2938
-0
lines changed

5 files changed

+2938
-0
lines changed
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2+
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3+
// All rights not expressly granted are reserved.
4+
//
5+
// This software is distributed under the terms of the GNU General Public
6+
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7+
//
8+
// In applying this license CERN does not waive the privileges and immunities
9+
// granted to it by virtue of its status as an Intergovernmental Organization
10+
// or submit itself to any jurisdiction.
11+
///
12+
/// \file lambdaJetPolarizationIons.h
13+
/// \brief Derived Data table for Jet-induced polarization analysis (HI)
14+
/// \author Cicero Domenico Muncinelli (cicero.domenico.muncinelli@cern.ch)
15+
// Comments, questions, complaints, suggestions?
16+
// Please write to:
17+
// cicero.domenico.muncinelli@cern.ch
18+
//
19+
20+
#ifndef PWGLF_DATAMODEL_LAMBDAJETPOL_H_
21+
#define PWGLF_DATAMODEL_LAMBDAJETPOL_H_
22+
23+
#include <Framework/ASoA.h>
24+
25+
namespace o2::aod
26+
{
27+
28+
namespace lambdajetpol
29+
{
30+
31+
// DECLARE_SOA_COLUMN(CollIdx, collIdx, uint64_t); // Using a regular SOA column instead of an index column for convenience
32+
// Collision information:
33+
DECLARE_SOA_INDEX_COLUMN(Collision, collision);
34+
DECLARE_SOA_COLUMN(CentFT0M, centFT0M, float);
35+
DECLARE_SOA_COLUMN(CentFT0C, centFT0C, float);
36+
DECLARE_SOA_COLUMN(CentFT0CVariant1, centFT0CVariant1, float);
37+
DECLARE_SOA_COLUMN(CentMFT, centMFT, float);
38+
DECLARE_SOA_COLUMN(CentNGlobal, centNGlobal, float);
39+
DECLARE_SOA_COLUMN(CentFV0A, centFV0A, float);
40+
41+
// Jet (and jet proxies) information:
42+
DECLARE_SOA_COLUMN(JetPt, jetPt, float);
43+
DECLARE_SOA_COLUMN(JetEta, jetEta, float);
44+
DECLARE_SOA_COLUMN(JetPhi, jetPhi, float);
45+
DECLARE_SOA_COLUMN(JetNConstituents, jetNConstituents, uint64_t);
46+
47+
DECLARE_SOA_COLUMN(LeadParticlePt, leadParticlePt, float);
48+
DECLARE_SOA_COLUMN(LeadParticleEta, leadParticleEta, float);
49+
DECLARE_SOA_COLUMN(LeadParticlePhi, leadParticlePhi, float);
50+
51+
// V0 information:
52+
DECLARE_SOA_COLUMN(V0Pt, v0Pt, float);
53+
DECLARE_SOA_COLUMN(V0Eta, v0Eta, float);
54+
DECLARE_SOA_COLUMN(V0Phi, v0Phi, float);
55+
56+
DECLARE_SOA_COLUMN(IsLambda, isLambda, bool);
57+
DECLARE_SOA_COLUMN(IsAntiLambda, isAntiLambda, bool);
58+
DECLARE_SOA_COLUMN(MassLambda, massLambda, float);
59+
DECLARE_SOA_COLUMN(MassAntiLambda, massAntiLambda, float);
60+
61+
DECLARE_SOA_COLUMN(PosPt, posPt, float);
62+
DECLARE_SOA_COLUMN(PosEta, posEta, float);
63+
DECLARE_SOA_COLUMN(PosPhi, posPhi, float);
64+
DECLARE_SOA_COLUMN(NegPt, negPt, float);
65+
DECLARE_SOA_COLUMN(NegEta, negEta, float);
66+
DECLARE_SOA_COLUMN(NegPhi, negPhi, float);
67+
68+
DECLARE_SOA_COLUMN(PosTPCNSigmaPr, posTPCNSigmaPr, float);
69+
DECLARE_SOA_COLUMN(PosTPCNSigmaPi, posTPCNSigmaPi, float);
70+
DECLARE_SOA_COLUMN(NegTPCNSigmaPr, negTPCNSigmaPr, float);
71+
DECLARE_SOA_COLUMN(NegTPCNSigmaPi, negTPCNSigmaPi, float);
72+
73+
DECLARE_SOA_COLUMN(V0CosPA, v0cosPA, float);
74+
DECLARE_SOA_COLUMN(V0Radius, v0radius, float);
75+
DECLARE_SOA_COLUMN(DcaV0Daughters, dcaV0daughters, float);
76+
DECLARE_SOA_COLUMN(DcaPosToPV, dcaPosToPV, float);
77+
DECLARE_SOA_COLUMN(DcaNegToPV, dcaNegToPV, float);
78+
79+
// Dynamic columns for jets (Px,Py,Pz):
80+
DECLARE_SOA_DYNAMIC_COLUMN(JetPx, jetPx, //! Jet px
81+
[](float jetPt, float jetPhi) -> float { return jetPt * std::cos(jetPhi); });
82+
DECLARE_SOA_DYNAMIC_COLUMN(JetPy, jetPy, //! Jet py
83+
[](float jetPt, float jetPhi) -> float { return jetPt * std::sin(jetPhi); });
84+
DECLARE_SOA_DYNAMIC_COLUMN(JetPz, jetPz, //! Jet pz
85+
[](float jetPt, float jetEta) -> float { return jetPt * std::sinh(jetEta); });
86+
// Same for leading particles:
87+
DECLARE_SOA_DYNAMIC_COLUMN(LeadParticlePx, leadParticlePx, //! Leading particle px
88+
[](float leadParticlePt, float leadParticlePhi) -> float { return leadParticlePt * std::cos(leadParticlePhi); });
89+
DECLARE_SOA_DYNAMIC_COLUMN(LeadParticlePy, leadParticlePy, //! Leading particle py
90+
[](float leadParticlePt, float leadParticlePhi) -> float { return leadParticlePt * std::sin(leadParticlePhi); });
91+
DECLARE_SOA_DYNAMIC_COLUMN(LeadParticlePz, leadParticlePz, //! Leading particle pz
92+
[](float leadParticlePt, float leadParticleEta) -> float { return leadParticlePt * std::sinh(leadParticleEta); });
93+
94+
} // namespace lambdajetpol
95+
96+
DECLARE_SOA_TABLE(RingJets, "AOD", "RINGJETS", // Renamed to follow convention on "s" at the end of table name.
97+
lambdajetpol::CollisionId, // Changed to an internal O2 index, slightly different from usual o2::soa::Index<> though
98+
lambdajetpol::JetPt,
99+
lambdajetpol::JetEta,
100+
lambdajetpol::JetPhi,
101+
lambdajetpol::JetNConstituents,
102+
// Dynamic columns
103+
lambdajetpol::JetPx<lambdajetpol::JetPt, lambdajetpol::JetPhi>, // Explicitly binding to static columns
104+
lambdajetpol::JetPy<lambdajetpol::JetPt, lambdajetpol::JetPhi>,
105+
lambdajetpol::JetPz<lambdajetpol::JetPt, lambdajetpol::JetEta>);
106+
107+
DECLARE_SOA_TABLE(RingLeadP, "AOD", "RINGLEADP", // Leading particle table
108+
lambdajetpol::CollisionId,
109+
lambdajetpol::LeadParticlePt,
110+
lambdajetpol::LeadParticleEta,
111+
lambdajetpol::LeadParticlePhi,
112+
// Dynamic columns
113+
lambdajetpol::LeadParticlePx<lambdajetpol::LeadParticlePt, lambdajetpol::LeadParticlePhi>,
114+
lambdajetpol::LeadParticlePy<lambdajetpol::LeadParticlePt, lambdajetpol::LeadParticlePhi>,
115+
lambdajetpol::LeadParticlePz<lambdajetpol::LeadParticlePt, lambdajetpol::LeadParticleEta>);
116+
117+
DECLARE_SOA_TABLE(RingLaV0s, "AOD", "RINGLAV0S",
118+
lambdajetpol::CollisionId,
119+
lambdajetpol::V0Pt,
120+
lambdajetpol::V0Eta,
121+
lambdajetpol::V0Phi,
122+
lambdajetpol::IsLambda,
123+
lambdajetpol::IsAntiLambda,
124+
lambdajetpol::MassLambda,
125+
lambdajetpol::MassAntiLambda,
126+
lambdajetpol::PosPt,
127+
lambdajetpol::PosEta,
128+
lambdajetpol::PosPhi,
129+
lambdajetpol::NegPt,
130+
lambdajetpol::NegEta,
131+
lambdajetpol::NegPhi,
132+
lambdajetpol::PosTPCNSigmaPr,
133+
lambdajetpol::PosTPCNSigmaPi,
134+
lambdajetpol::NegTPCNSigmaPr,
135+
lambdajetpol::NegTPCNSigmaPi,
136+
lambdajetpol::V0CosPA,
137+
lambdajetpol::V0Radius,
138+
lambdajetpol::DcaV0Daughters,
139+
lambdajetpol::DcaPosToPV,
140+
lambdajetpol::DcaNegToPV);
141+
142+
DECLARE_SOA_TABLE(RingCollisions, "AOD", "RINGCOLLISIONS",
143+
lambdajetpol::CollisionId,
144+
lambdajetpol::CentFT0M,
145+
lambdajetpol::CentFT0C,
146+
lambdajetpol::CentFV0A);
147+
148+
} // namespace o2::aod
149+
150+
#endif // PWGLF_DATAMODEL_LAMBDAJETPOL_H_

PWGLF/TableProducer/Strangeness/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,11 @@ o2physics_add_dpl_workflow(lambdajetpolarizationbuilder
147147
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
148148
COMPONENT_NAME Analysis)
149149

150+
o2physics_add_dpl_workflow(lambdajetpolarizationions
151+
SOURCES lambdaJetPolarizationIons.cxx
152+
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::PWGJECore FastJet::FastJet O2Physics::AnalysisCCDB
153+
COMPONENT_NAME Analysis)
154+
150155
o2physics_add_dpl_workflow(stracents
151156
SOURCES stracents.cxx
152157
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore

0 commit comments

Comments
 (0)