1515#include " MathUtils/Utils.h"
1616#include < cmath>
1717#include " Framework/DataTypes.h"
18+ #include " CommonConstants/MathConstants.h"
1819#include " CommonConstants/PhysicsConstants.h"
1920
21+ using namespace o2 ::constants::math;
22+
2023namespace o2
2124{
2225namespace aod
@@ -89,29 +92,21 @@ using Collision = Collisions::iterator;
8992namespace track
9093{
9194// TRACKPAR TABLE definition
92- DECLARE_SOA_INDEX_COLUMN (Collision, collision); // ! Collision to which this track belongs
93- DECLARE_SOA_COLUMN (TrackType, trackType, uint8_t ); // ! Type of track. See enum TrackTypeEnum
94- DECLARE_SOA_COLUMN (X, x, float ); // !
95- DECLARE_SOA_COLUMN (Alpha, alpha, float ); // !
96- DECLARE_SOA_COLUMN (Y, y, float ); // !
97- DECLARE_SOA_COLUMN (Z, z, float ); // !
98- DECLARE_SOA_COLUMN (Snp, snp, float ); // !
99- DECLARE_SOA_COLUMN (Tgl, tgl, float ); // !
100- DECLARE_SOA_COLUMN (Signed1Pt, signed1Pt, float ); // ! (sign of charge)/Pt in c/GeV. Use pt() and sign() instead
101- DECLARE_SOA_EXPRESSION_COLUMN (RawPhi, phiraw, float , // ! Raw Phi (not folded onto [0, 2pi)). Use phi() instead
102- nasin (aod::track::snp) + aod::track::alpha);
103- // FIXME: make expression column when conditional nodes are supported in Gandiva
104- DECLARE_SOA_DYNAMIC_COLUMN (NormalizedPhi, phi, // ! Phi of the track, in radians within [0, 2pi)
105- [](float phi) -> float {
106- constexpr float twopi = 2 .0f * static_cast <float >(M_PI );
107- if (phi < 0 )
108- phi += twopi;
109- if (phi > twopi)
110- phi -= twopi;
111- return phi;
112- });
95+ DECLARE_SOA_INDEX_COLUMN (Collision, collision); // ! Collision to which this track belongs
96+ DECLARE_SOA_COLUMN (TrackType, trackType, uint8_t ); // ! Type of track. See enum TrackTypeEnum
97+ DECLARE_SOA_COLUMN (X, x, float ); // !
98+ DECLARE_SOA_COLUMN (Alpha, alpha, float ); // !
99+ DECLARE_SOA_COLUMN (Y, y, float ); // !
100+ DECLARE_SOA_COLUMN (Z, z, float ); // !
101+ DECLARE_SOA_COLUMN (Snp, snp, float ); // !
102+ DECLARE_SOA_COLUMN (Tgl, tgl, float ); // !
103+ DECLARE_SOA_COLUMN (Signed1Pt, signed1Pt, float ); // ! (sign of charge)/Pt in c/GeV. Use pt() and sign() instead
104+ DECLARE_SOA_EXPRESSION_COLUMN (Phi, phi, float , // ! Phi of the track, in radians within [0, 2pi)
105+ ifnode (nasin(aod::track::snp) + aod::track::alpha < 0.0f, nasin(aod::track::snp) + aod::track::alpha + TwoPI,
106+ ifnode(nasin(aod::track::snp) + aod::track::alpha > TwoPI, nasin(aod::track::snp) + aod::track::alpha - TwoPI,
107+ nasin(aod::track::snp) + aod::track::alpha)));
113108DECLARE_SOA_EXPRESSION_COLUMN (Eta, eta, float , // ! Pseudorapidity
114- -1 .f * nlog (ntan(0 . 25f * static_cast < float >( M_PI ) - 0.5f * natan(aod::track::tgl))));
109+ -1 .f * nlog (ntan(PIQuarter - 0 .5f * natan (aod::track::tgl))));
115110DECLARE_SOA_EXPRESSION_COLUMN (Pt, pt, float , // ! Transverse momentum of the track in GeV/c
116111 nabs (1 .f / aod::track::signed1Pt));
117112
@@ -140,7 +135,7 @@ DECLARE_SOA_DYNAMIC_COLUMN(Pz, pz, //! Momentum in z-direction in GeV/c
140135 });
141136
142137DECLARE_SOA_EXPRESSION_COLUMN (P, p, float , // ! Momentum in Gev/c
143- 0 .5f * (ntan(0 . 25f * static_cast < float >( M_PI ) - 0 .5f * natan (aod::track::tgl)) + 1.f / ntan(0 . 25f * static_cast < float >( M_PI ) - 0.5f * natan(aod::track::tgl))) / nabs(aod::track::signed1Pt));
138+ 0 .5f * (ntan(PIQuarter - 0 .5f * natan (aod::track::tgl)) + 1.f / ntan(PIQuarter - 0 .5f * natan (aod::track::tgl))) / nabs(aod::track::signed1Pt));
144139
145140// TRACKPARCOV TABLE definition
146141DECLARE_SOA_COLUMN (SigmaY, sigmaY, float ); // ! Covariance matrix
@@ -275,7 +270,6 @@ DECLARE_SOA_TABLE_FULL(StoredTracks, "Tracks", "AOD", "TRACK", //! On disk versi
275270 track::X, track::Alpha,
276271 track::Y, track::Z, track::Snp, track::Tgl,
277272 track::Signed1Pt,
278- track::NormalizedPhi<track::RawPhi>,
279273 track::Px<track::Signed1Pt, track::Snp, track::Alpha>,
280274 track::Py<track::Signed1Pt, track::Snp, track::Alpha>,
281275 track::Pz<track::Signed1Pt, track::Tgl>,
@@ -285,7 +279,7 @@ DECLARE_SOA_EXTENDED_TABLE(Tracks, StoredTracks, "TRACK", //! Basic track proper
285279 aod::track::Pt,
286280 aod::track::P,
287281 aod::track::Eta,
288- aod::track::RawPhi );
282+ aod::track::Phi );
289283
290284DECLARE_SOA_TABLE_FULL (StoredTracksCov, " TracksCov" , " AOD" , " TRACKCOV" , // ! On disk version of the TracksCov table
291285 track::SigmaY, track::SigmaZ, track::SigmaSnp, track::SigmaTgl, track::Sigma1Pt,
@@ -372,11 +366,11 @@ DECLARE_SOA_COLUMN(TrackTimeRes, trackTimeRes, float);
372366DECLARE_SOA_DYNAMIC_COLUMN (Sign, sign, // ! Sign of the track eletric charge
373367 [](float signed1Pt) -> short { return (signed1Pt > 0 ) ? 1 : -1 ; });
374368DECLARE_SOA_EXPRESSION_COLUMN (Eta, eta, float , // !
375- -1 .f * nlog (ntan(0 . 25f * static_cast < float >( M_PI ) - 0.5f * natan(aod::fwdtrack::tgl))));
369+ -1 .f * nlog (ntan(PIQuarter - 0 .5f * natan (aod::fwdtrack::tgl))));
376370DECLARE_SOA_EXPRESSION_COLUMN (Pt, pt, float , // !
377371 nabs (1 .f / aod::fwdtrack::signed1Pt));
378372DECLARE_SOA_EXPRESSION_COLUMN (P, p, float , // !
379- 0 .5f * (ntan(0 . 25f * static_cast < float >( M_PI ) - 0 .5f * natan (aod::fwdtrack::tgl)) + 1.f / ntan(0 . 25f * static_cast < float >( M_PI ) - 0.5f * natan(aod::fwdtrack::tgl))) / nabs(aod::fwdtrack::signed1Pt));
373+ 0 .5f * (ntan(PIQuarter - 0 .5f * natan (aod::fwdtrack::tgl)) + 1.f / ntan(PIQuarter - 0 .5f * natan (aod::fwdtrack::tgl))) / nabs(aod::fwdtrack::signed1Pt));
380374DECLARE_SOA_DYNAMIC_COLUMN (Px, px, // !
381375 [](float pt, float phi) -> float {
382376 return pt * std::cos (phi);
@@ -807,7 +801,7 @@ DECLARE_SOA_COLUMN(Vy, vy, float);
807801DECLARE_SOA_COLUMN (Vz, vz, float ); // ! Z production vertex in cm
808802DECLARE_SOA_COLUMN (Vt, vt, float ); // ! Production time
809803DECLARE_SOA_DYNAMIC_COLUMN (Phi, phi, // ! Phi
810- [](float px, float py) -> float { return static_cast < float >( M_PI ) + std::atan2 (-py, -px); });
804+ [](float px, float py) -> float { return PI + std::atan2 (-py, -px); });
811805DECLARE_SOA_DYNAMIC_COLUMN (ProducedByGenerator, producedByGenerator, // ! True if particle produced by the generator (==TMCProcess::kPrimary); False if by the transport code
812806 [](uint8_t flags) -> bool { return (flags & o2::aod::mcparticle::enums::ProducedByTransport) == 0x0 ; });
813807DECLARE_SOA_DYNAMIC_COLUMN (FromBackgroundEvent, fromBackgroundEvent, // ! Particle from background event
@@ -820,7 +814,7 @@ DECLARE_SOA_DYNAMIC_COLUMN(IsPhysicalPrimary, isPhysicalPrimary, //! True if par
820814 [](uint8_t flags) -> bool { return (flags & o2::aod::mcparticle::enums::PhysicalPrimary) == o2::aod::mcparticle::enums::PhysicalPrimary; });
821815
822816// DECLARE_SOA_EXPRESSION_COLUMN(Phi, phi, float, //! Phi: NOTE this waits that the atan2 function is defined for expression columns
823- // static_cast<float>(M_PI) + natan2(-aod::mcparticle::py, -aod::mcparticle::px));
817+ // PI + natan2(-aod::mcparticle::py, -aod::mcparticle::px));
824818DECLARE_SOA_EXPRESSION_COLUMN (Eta, eta, float , // ! Pseudorapidity, conditionally defined to avoid FPEs
825819 ifnode ((nsqrt(aod::mcparticle::px * aod::mcparticle::px +
826820 aod::mcparticle::py * aod::mcparticle::py +
0 commit comments