Skip to content

Commit 455ad70

Browse files
committed
[PWGEM] Add FV0 QVectors to EM event
- Add the FV0 QVector values to the EM event QVector table version _001 - Keep old version as _000 - Add converter task to convert from _000 to _001 - Ensure IWYU pragma for all touched files
1 parent 45e2dbd commit 455ad70

File tree

7 files changed

+189
-79
lines changed

7 files changed

+189
-79
lines changed

PWGEM/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,3 @@ add_subdirectory(Dilepton)
1313

1414
add_subdirectory(PhotonMeson)
1515
add_subdirectory(Tasks)
16-

PWGEM/Dilepton/DataModel/dileptonTables.h

Lines changed: 68 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
// granted to it by virtue of its status as an Intergovernmental Organization
1010
// or submit itself to any jurisdiction.
1111

12+
#include "Common/CCDB/EventSelectionParams.h"
1213
#include "Common/Core/RecoDecay.h"
1314
#include "Common/DataModel/Centrality.h"
1415
#include "Common/DataModel/EventSelection.h"
@@ -18,8 +19,14 @@
1819
#include "Common/DataModel/Qvectors.h"
1920
#include "Common/DataModel/TrackSelectionTables.h"
2021

21-
#include "Framework/AnalysisDataModel.h"
22+
#include <CommonConstants/MathConstants.h>
23+
#include <Framework/AnalysisDataModel.h>
2224

25+
#include <Rtypes.h>
26+
27+
#include <array>
28+
#include <cmath>
29+
#include <cstdint>
2330
#include <string>
2431
#include <unordered_map>
2532
#include <vector>
@@ -82,6 +89,8 @@ DECLARE_SOA_COLUMN(Q2xFT0A, q2xft0a, float); //!
8289
DECLARE_SOA_COLUMN(Q2yFT0A, q2yft0a, float); //! Qy for 2nd harmonics in FT0A (i.e. positive eta)
8390
DECLARE_SOA_COLUMN(Q2xFT0C, q2xft0c, float); //! Qx for 2nd harmonics in FT0C (i.e. negative eta)
8491
DECLARE_SOA_COLUMN(Q2yFT0C, q2yft0c, float); //! Qy for 2nd harmonics in FT0C (i.e. negative eta)
92+
DECLARE_SOA_COLUMN(Q2xFV0A, q2xfv0a, float); //! Qx for 2nd harmonics in FV0A (i.e. positive eta)
93+
DECLARE_SOA_COLUMN(Q2yFV0A, q2yfv0a, float); //! Qy for 2nd harmonics in FV0A (i.e. positive eta)
8594
DECLARE_SOA_COLUMN(Q2xBPos, q2xbpos, float); //! Qx for 2nd harmonics in Barrel positive eta region
8695
DECLARE_SOA_COLUMN(Q2yBPos, q2ybpos, float); //! Qy for 2nd harmonics in Barrel positive eta region
8796
DECLARE_SOA_COLUMN(Q2xBNeg, q2xbneg, float); //! Qx for 2nd harmonics in Barrel negative eta region
@@ -94,6 +103,8 @@ DECLARE_SOA_COLUMN(Q3xFT0A, q3xft0a, float); //!
94103
DECLARE_SOA_COLUMN(Q3yFT0A, q3yft0a, float); //! Qy for 3rd harmonics in FT0A (i.e. positive eta)
95104
DECLARE_SOA_COLUMN(Q3xFT0C, q3xft0c, float); //! Qx for 3rd harmonics in FT0C (i.e. negative eta)
96105
DECLARE_SOA_COLUMN(Q3yFT0C, q3yft0c, float); //! Qy for 3rd harmonics in FT0C (i.e. negative eta)
106+
DECLARE_SOA_COLUMN(Q3xFV0A, q3xfv0a, float); //! Qx for 3rd harmonics in FV0A (i.e. positive eta)
107+
DECLARE_SOA_COLUMN(Q3yFV0A, q3yfv0a, float); //! Qy for 3rd harmonics in FV0A (i.e. positive eta)
97108
DECLARE_SOA_COLUMN(Q3xBPos, q3xbpos, float); //! Qx for 3rd harmonics in Barrel positive eta region
98109
DECLARE_SOA_COLUMN(Q3yBPos, q3ybpos, float); //! Qy for 3rd harmonics in Barrel positive eta region
99110
DECLARE_SOA_COLUMN(Q3xBNeg, q3xbneg, float); //! Qx for 3rd harmonics in Barrel negative eta region
@@ -106,6 +117,8 @@ DECLARE_SOA_COLUMN(Q4xFT0A, q4xft0a, float); //!
106117
DECLARE_SOA_COLUMN(Q4yFT0A, q4yft0a, float); //! Qy for 4th harmonics in FT0A (i.e. positive eta)
107118
DECLARE_SOA_COLUMN(Q4xFT0C, q4xft0c, float); //! Qx for 4th harmonics in FT0C (i.e. negative eta)
108119
DECLARE_SOA_COLUMN(Q4yFT0C, q4yft0c, float); //! Qy for 4th harmonics in FT0C (i.e. negative eta)
120+
DECLARE_SOA_COLUMN(Q4xFV0A, q4xfv0a, float); //! Qx for 4th harmonics in FV0A (i.e. positive eta)
121+
DECLARE_SOA_COLUMN(Q4yFV0A, q4yfv0a, float); //! Qy for 4th harmonics in FV0A (i.e. positive eta)
109122
DECLARE_SOA_COLUMN(Q4xBPos, q4xbpos, float); //! Qx for 4th harmonics in Barrel positive eta region
110123
DECLARE_SOA_COLUMN(Q4yBPos, q4ybpos, float); //! Qy for 4th harmonics in Barrel positive eta region
111124
DECLARE_SOA_COLUMN(Q4xBNeg, q4xbneg, float); //! Qx for 4th harmonics in Barrel negative eta region
@@ -126,18 +139,21 @@ DECLARE_SOA_DYNAMIC_COLUMN(Sel8, sel8, [](uint64_t selection_bit) -> bool { retu
126139
DECLARE_SOA_DYNAMIC_COLUMN(EP2FT0M, ep2ft0m, [](float q2x, float q2y) -> float { return std::atan2(q2y, q2x) / 2.0; });
127140
DECLARE_SOA_DYNAMIC_COLUMN(EP2FT0A, ep2ft0a, [](float q2x, float q2y) -> float { return std::atan2(q2y, q2x) / 2.0; });
128141
DECLARE_SOA_DYNAMIC_COLUMN(EP2FT0C, ep2ft0c, [](float q2x, float q2y) -> float { return std::atan2(q2y, q2x) / 2.0; });
142+
DECLARE_SOA_DYNAMIC_COLUMN(EP2FV0A, ep2fv0a, [](float q2x, float q2y) -> float { return std::atan2(q2y, q2x) / 2.0; });
129143
DECLARE_SOA_DYNAMIC_COLUMN(EP2BPos, ep2bpos, [](float q2x, float q2y) -> float { return std::atan2(q2y, q2x) / 2.0; });
130144
DECLARE_SOA_DYNAMIC_COLUMN(EP2BNeg, ep2bneg, [](float q2x, float q2y) -> float { return std::atan2(q2y, q2x) / 2.0; });
131145
DECLARE_SOA_DYNAMIC_COLUMN(EP2BTot, ep2btot, [](float q2x, float q2y) -> float { return std::atan2(q2y, q2x) / 2.0; });
132146
DECLARE_SOA_DYNAMIC_COLUMN(EP3FT0M, ep3ft0m, [](float q3x, float q3y) -> float { return std::atan2(q3y, q3x) / 3.0; });
133147
DECLARE_SOA_DYNAMIC_COLUMN(EP3FT0A, ep3ft0a, [](float q3x, float q3y) -> float { return std::atan2(q3y, q3x) / 3.0; });
134148
DECLARE_SOA_DYNAMIC_COLUMN(EP3FT0C, ep3ft0c, [](float q3x, float q3y) -> float { return std::atan2(q3y, q3x) / 3.0; });
149+
DECLARE_SOA_DYNAMIC_COLUMN(EP3FV0A, ep3fv0a, [](float q3x, float q3y) -> float { return std::atan2(q3y, q3x) / 3.0; });
135150
DECLARE_SOA_DYNAMIC_COLUMN(EP3BPos, ep3bpos, [](float q3x, float q3y) -> float { return std::atan2(q3y, q3x) / 3.0; });
136151
DECLARE_SOA_DYNAMIC_COLUMN(EP3BNeg, ep3bneg, [](float q3x, float q3y) -> float { return std::atan2(q3y, q3x) / 3.0; });
137152
DECLARE_SOA_DYNAMIC_COLUMN(EP3BTot, ep3btot, [](float q3x, float q3y) -> float { return std::atan2(q3y, q3x) / 3.0; });
138153
DECLARE_SOA_DYNAMIC_COLUMN(EP4FT0M, ep4ft0m, [](float q4x, float q4y) -> float { return std::atan2(q4y, q4x) / 4.0; });
139154
DECLARE_SOA_DYNAMIC_COLUMN(EP4FT0A, ep4ft0a, [](float q4x, float q4y) -> float { return std::atan2(q4y, q4x) / 4.0; });
140155
DECLARE_SOA_DYNAMIC_COLUMN(EP4FT0C, ep4ft0c, [](float q4x, float q4y) -> float { return std::atan2(q4y, q4x) / 4.0; });
156+
DECLARE_SOA_DYNAMIC_COLUMN(EP4FV0A, ep4fv0a, [](float q4x, float q4y) -> float { return std::atan2(q4y, q4x) / 4.0; });
141157
DECLARE_SOA_DYNAMIC_COLUMN(EP4BPos, ep4bpos, [](float q4x, float q4y) -> float { return std::atan2(q4y, q4x) / 4.0; });
142158
DECLARE_SOA_DYNAMIC_COLUMN(EP4BNeg, ep4bneg, [](float q4x, float q4y) -> float { return std::atan2(q4y, q4x) / 4.0; });
143159
DECLARE_SOA_DYNAMIC_COLUMN(EP4BTot, ep4btot, [](float q4x, float q4y) -> float { return std::atan2(q4y, q4x) / 4.0; });
@@ -180,33 +196,61 @@ DECLARE_SOA_TABLE(EMEventsCent, "AOD", "EMEVENTCENT", //! event centrality tab
180196
cent::CentFT0M, cent::CentFT0A, cent::CentFT0C);
181197
using EMEventCent = EMEventsCent::iterator;
182198

183-
DECLARE_SOA_TABLE(EMEventsQvec, "AOD", "EMEVENTQVEC", //! event q vector table, joinable to EMEvents
184-
emevent::Q2xFT0M, emevent::Q2yFT0M, emevent::Q2xFT0A, emevent::Q2yFT0A, emevent::Q2xFT0C, emevent::Q2yFT0C,
185-
emevent::Q2xBPos, emevent::Q2yBPos, emevent::Q2xBNeg, emevent::Q2yBNeg, emevent::Q2xBTot, emevent::Q2yBTot,
186-
emevent::Q3xFT0M, emevent::Q3yFT0M, emevent::Q3xFT0A, emevent::Q3yFT0A, emevent::Q3xFT0C, emevent::Q3yFT0C,
187-
emevent::Q3xBPos, emevent::Q3yBPos, emevent::Q3xBNeg, emevent::Q3yBNeg, emevent::Q3xBTot, emevent::Q3yBTot,
188-
// emevent::Q4xFT0M, emevent::Q4yFT0M, emevent::Q4xFT0A, emevent::Q4yFT0A, emevent::Q4xFT0C, emevent::Q4yFT0C,
189-
// emevent::Q4xBPos, emevent::Q4yBPos, emevent::Q4xBNeg, emevent::Q4yBNeg, emevent::Q4xBTot, emevent::Q4yBTot,
190-
191-
// Dynamic columns
192-
emevent::EP2FT0M<emevent::Q2xFT0M, emevent::Q2yFT0M>,
193-
emevent::EP2FT0A<emevent::Q2xFT0A, emevent::Q2yFT0A>,
194-
emevent::EP2FT0C<emevent::Q2xFT0C, emevent::Q2yFT0C>,
195-
emevent::EP2BPos<emevent::Q2xBPos, emevent::Q2yBPos>,
196-
emevent::EP2BNeg<emevent::Q2xBNeg, emevent::Q2yBNeg>,
197-
emevent::EP2BTot<emevent::Q2xBTot, emevent::Q2yBTot>,
198-
emevent::EP3FT0M<emevent::Q3xFT0M, emevent::Q3yFT0M>,
199-
emevent::EP3FT0A<emevent::Q3xFT0A, emevent::Q3yFT0A>,
200-
emevent::EP3FT0C<emevent::Q3xFT0C, emevent::Q3yFT0C>,
201-
emevent::EP3BPos<emevent::Q3xBPos, emevent::Q3yBPos>,
202-
emevent::EP3BNeg<emevent::Q3xBNeg, emevent::Q3yBNeg>,
203-
emevent::EP3BTot<emevent::Q3xBTot, emevent::Q3yBTot>);
199+
DECLARE_SOA_TABLE_VERSIONED(EMEventsQvec_000, "AOD", "EMEVENTQVEC", 0, //! event q vector table, joinable to EMEvents
200+
emevent::Q2xFT0M, emevent::Q2yFT0M, emevent::Q2xFT0A, emevent::Q2yFT0A, emevent::Q2xFT0C, emevent::Q2yFT0C,
201+
emevent::Q2xBPos, emevent::Q2yBPos, emevent::Q2xBNeg, emevent::Q2yBNeg, emevent::Q2xBTot, emevent::Q2yBTot,
202+
emevent::Q3xFT0M, emevent::Q3yFT0M, emevent::Q3xFT0A, emevent::Q3yFT0A, emevent::Q3xFT0C, emevent::Q3yFT0C,
203+
emevent::Q3xBPos, emevent::Q3yBPos, emevent::Q3xBNeg, emevent::Q3yBNeg, emevent::Q3xBTot, emevent::Q3yBTot,
204+
// emevent::Q4xFT0M, emevent::Q4yFT0M, emevent::Q4xFT0A, emevent::Q4yFT0A, emevent::Q4xFT0C, emevent::Q4yFT0C,
205+
// emevent::Q4xBPos, emevent::Q4yBPos, emevent::Q4xBNeg, emevent::Q4yBNeg, emevent::Q4xBTot, emevent::Q4yBTot,
206+
207+
// Dynamic columns
208+
emevent::EP2FT0M<emevent::Q2xFT0M, emevent::Q2yFT0M>,
209+
emevent::EP2FT0A<emevent::Q2xFT0A, emevent::Q2yFT0A>,
210+
emevent::EP2FT0C<emevent::Q2xFT0C, emevent::Q2yFT0C>,
211+
emevent::EP2BPos<emevent::Q2xBPos, emevent::Q2yBPos>,
212+
emevent::EP2BNeg<emevent::Q2xBNeg, emevent::Q2yBNeg>,
213+
emevent::EP2BTot<emevent::Q2xBTot, emevent::Q2yBTot>,
214+
emevent::EP3FT0M<emevent::Q3xFT0M, emevent::Q3yFT0M>,
215+
emevent::EP3FT0A<emevent::Q3xFT0A, emevent::Q3yFT0A>,
216+
emevent::EP3FT0C<emevent::Q3xFT0C, emevent::Q3yFT0C>,
217+
emevent::EP3BPos<emevent::Q3xBPos, emevent::Q3yBPos>,
218+
emevent::EP3BNeg<emevent::Q3xBNeg, emevent::Q3yBNeg>,
219+
emevent::EP3BTot<emevent::Q3xBTot, emevent::Q3yBTot>);
204220
// emevent::EP4FT0M<emevent::Q4xFT0M, emevent::Q4yFT0M>,
205221
// emevent::EP4FT0A<emevent::Q4xFT0A, emevent::Q4yFT0A>,
206222
// emevent::EP4FT0C<emevent::Q4xFT0C, emevent::Q4yFT0C>,
207223
// emevent::EP4BPos<emevent::Q4xBPos, emevent::Q4yBPos>,
208224
// emevent::EP4BNeg<emevent::Q4xBNeg, emevent::Q4yBNeg>,
209225
// emevent::EP4BTot<emevent::Q4xBTot, emevent::Q4yBTot>
226+
227+
DECLARE_SOA_TABLE_VERSIONED(EMEventsQvec_001, "AOD", "EMEVENTQVEC", 1, //! Main event information table
228+
emevent::Q2xFT0M, emevent::Q2yFT0M, emevent::Q2xFT0A, emevent::Q2yFT0A, emevent::Q2xFT0C, emevent::Q2yFT0C,
229+
emevent::Q2xFV0A, emevent::Q2yFV0A,
230+
emevent::Q2xBPos, emevent::Q2yBPos, emevent::Q2xBNeg, emevent::Q2yBNeg, emevent::Q2xBTot, emevent::Q2yBTot,
231+
emevent::Q3xFT0M, emevent::Q3yFT0M, emevent::Q3xFT0A, emevent::Q3yFT0A, emevent::Q3xFT0C, emevent::Q3yFT0C,
232+
emevent::Q3xFV0A, emevent::Q3yFV0A,
233+
emevent::Q3xBPos, emevent::Q3yBPos, emevent::Q3xBNeg, emevent::Q3yBNeg, emevent::Q3xBTot, emevent::Q3yBTot,
234+
// emevent::Q4xFT0M, emevent::Q4yFT0M, emevent::Q4xFT0A, emevent::Q4yFT0A, emevent::Q4xFT0C, emevent::Q4yFT0C,
235+
// emevent::Q4xBPos, emevent::Q4yBPos, emevent::Q4xBNeg, emevent::Q4yBNeg, emevent::Q4xBTot, emevent::Q4yBTot,
236+
237+
// Dynamic columns
238+
emevent::EP2FT0M<emevent::Q2xFT0M, emevent::Q2yFT0M>,
239+
emevent::EP2FT0A<emevent::Q2xFT0A, emevent::Q2yFT0A>,
240+
emevent::EP2FT0C<emevent::Q2xFT0C, emevent::Q2yFT0C>,
241+
emevent::EP2FV0A<emevent::Q2xFV0A, emevent::Q2yFV0A>,
242+
emevent::EP2BPos<emevent::Q2xBPos, emevent::Q2yBPos>,
243+
emevent::EP2BNeg<emevent::Q2xBNeg, emevent::Q2yBNeg>,
244+
emevent::EP2BTot<emevent::Q2xBTot, emevent::Q2yBTot>,
245+
emevent::EP3FT0M<emevent::Q3xFT0M, emevent::Q3yFT0M>,
246+
emevent::EP3FT0A<emevent::Q3xFT0A, emevent::Q3yFT0A>,
247+
emevent::EP3FT0C<emevent::Q3xFT0C, emevent::Q3yFT0C>,
248+
emevent::EP3FV0A<emevent::Q3xFV0A, emevent::Q3yFV0A>,
249+
emevent::EP3BPos<emevent::Q3xBPos, emevent::Q3yBPos>,
250+
emevent::EP3BNeg<emevent::Q3xBNeg, emevent::Q3yBNeg>,
251+
emevent::EP3BTot<emevent::Q3xBTot, emevent::Q3yBTot>);
252+
253+
using EMEventsQvec = EMEventsQvec_001;
210254
using EMEventQvec = EMEventsQvec::iterator;
211255

212256
DECLARE_SOA_TABLE(EMSWTriggerBits, "AOD", "EMSWTBIT", emevent::SWTAlias, o2::soa::Marker<1>); //! joinable to EMEvents
@@ -454,8 +498,8 @@ DECLARE_SOA_DYNAMIC_COLUMN(P, p, [](float pt, float eta) -> float { return pt *
454498
DECLARE_SOA_DYNAMIC_COLUMN(Px, px, [](float pt, float phi) -> float { return pt * std::cos(phi); });
455499
DECLARE_SOA_DYNAMIC_COLUMN(Py, py, [](float pt, float phi) -> float { return pt * std::sin(phi); });
456500
DECLARE_SOA_DYNAMIC_COLUMN(Pz, pz, [](float pt, float eta) -> float { return pt * std::sinh(eta); });
457-
DECLARE_SOA_DYNAMIC_COLUMN(Theta, theta, [](float tgl) -> float { return M_PI_2 - std::atan(tgl); });
458-
DECLARE_SOA_DYNAMIC_COLUMN(Tgl, tgl, [](float eta) -> float { return std::tan(M_PI_2 - 2 * std::atan(std::exp(-eta))); });
501+
DECLARE_SOA_DYNAMIC_COLUMN(Theta, theta, [](float tgl) -> float { return o2::constants::math::PIHalf - std::atan(tgl); });
502+
DECLARE_SOA_DYNAMIC_COLUMN(Tgl, tgl, [](float eta) -> float { return std::tan(o2::constants::math::PIHalf - 2 * std::atan(std::exp(-eta))); });
459503
DECLARE_SOA_DYNAMIC_COLUMN(MeanClusterSizeITS, meanClusterSizeITS, [](uint32_t itsClusterSizes) -> float {
460504
int total_cluster_size = 0, nl = 0;
461505
for (unsigned int layer = 0; layer < 7; layer++) {

0 commit comments

Comments
 (0)