|
20 | 20 |
|
21 | 21 | namespace o2::aod |
22 | 22 | { |
23 | | -namespace fwdtrack |
| 23 | +namespace fwdtrackrealign |
24 | 24 | { |
25 | | -// Extra columns for re-aligned forward tracks |
| 25 | +// FwdTracksRealign Columns definitions |
| 26 | +DECLARE_SOA_INDEX_COLUMN(Collision, collision); //! |
| 27 | +DECLARE_SOA_INDEX_COLUMN(FwdTrack, fwdtrack); //! FwdTrack index |
| 28 | +DECLARE_SOA_COLUMN(TrackType, trackType, uint8_t); //! Type of track. See enum ForwardTrackTypeEnum |
| 29 | +DECLARE_SOA_COLUMN(X, x, float); //! TrackParFwd parameter x |
| 30 | +DECLARE_SOA_COLUMN(Y, y, float); //! TrackParFwd parameter y |
| 31 | +DECLARE_SOA_COLUMN(Z, z, float); //! TrackParFwd propagation parameter z |
| 32 | +DECLARE_SOA_COLUMN(Phi, phi, float); //! TrackParFwd parameter phi; (i.e. pt pointing direction) |
| 33 | +DECLARE_SOA_COLUMN(Tgl, tgl, float); //! TrackParFwd parameter tan(\lamba); (\lambda = 90 - \theta_{polar}) |
| 34 | +DECLARE_SOA_COLUMN(Signed1Pt, signed1Pt, float); //! TrackParFwd parameter: charged inverse transverse momentum; (q/pt) |
26 | 35 | DECLARE_SOA_COLUMN(IsRemovable, isRemovable, int); //! flag to validate the re-aligned track |
27 | | -} // namespace fwdtrack |
| 36 | +DECLARE_SOA_COLUMN(Chi2, chi2, float); //! Track chi^2 |
| 37 | + |
| 38 | +// FwdTracksCovRealign columns definitions |
| 39 | +DECLARE_SOA_COLUMN(SigmaX, sigmaX, float); //! Covariance matrix |
| 40 | +DECLARE_SOA_COLUMN(SigmaY, sigmaY, float); //! Covariance matrix |
| 41 | +DECLARE_SOA_COLUMN(SigmaPhi, sigmaPhi, float); //! Covariance matrix |
| 42 | +DECLARE_SOA_COLUMN(SigmaTgl, sigmaTgl, float); //! Covariance matrix |
| 43 | +DECLARE_SOA_COLUMN(Sigma1Pt, sigma1Pt, float); //! Covariance matrix |
| 44 | +DECLARE_SOA_COLUMN(RhoXY, rhoXY, int8_t); //! Covariance matrix in compressed form |
| 45 | +DECLARE_SOA_COLUMN(RhoPhiX, rhoPhiX, int8_t); //! Covariance matrix in compressed form |
| 46 | +DECLARE_SOA_COLUMN(RhoPhiY, rhoPhiY, int8_t); //! Covariance matrix in compressed form |
| 47 | +DECLARE_SOA_COLUMN(RhoTglX, rhoTglX, int8_t); //! Covariance matrix in compressed form |
| 48 | +DECLARE_SOA_COLUMN(RhoTglY, rhoTglY, int8_t); //! Covariance matrix in compressed form |
| 49 | +DECLARE_SOA_COLUMN(RhoTglPhi, rhoTglPhi, int8_t); //! Covariance matrix in compressed form |
| 50 | +DECLARE_SOA_COLUMN(Rho1PtX, rho1PtX, int8_t); //! Covariance matrix in compressed form |
| 51 | +DECLARE_SOA_COLUMN(Rho1PtY, rho1PtY, int8_t); //! Covariance matrix in compressed form |
| 52 | +DECLARE_SOA_COLUMN(Rho1PtPhi, rho1PtPhi, int8_t); //! Covariance matrix in compressed form |
| 53 | +DECLARE_SOA_COLUMN(Rho1PtTgl, rho1PtTgl, int8_t); //! Covariance matrix in compressed form |
| 54 | + |
| 55 | +// Dynamic and expression columns |
| 56 | +DECLARE_SOA_DYNAMIC_COLUMN(Sign, sign, //! Sign of the track eletric charge |
| 57 | + [](float signed1Pt) -> short { return (signed1Pt > 0) ? 1 : -1; }); |
| 58 | +DECLARE_SOA_DYNAMIC_COLUMN(Px, px, //! |
| 59 | + [](float pt, float phi) -> float { |
| 60 | + return pt * std::cos(phi); |
| 61 | + }); |
| 62 | +DECLARE_SOA_DYNAMIC_COLUMN(Py, py, //! |
| 63 | + [](float pt, float phi) -> float { |
| 64 | + return pt * std::sin(phi); |
| 65 | + }); |
| 66 | +DECLARE_SOA_DYNAMIC_COLUMN(Pz, pz, //! |
| 67 | + [](float pt, float tgl) -> float { |
| 68 | + return pt * tgl; |
| 69 | + }); |
| 70 | + |
| 71 | +DECLARE_SOA_EXPRESSION_COLUMN(Eta, eta, float, //! |
| 72 | + -1.f * nlog(ntan(o2::constants::math::PIQuarter - 0.5f * natan(aod::fwdtrackrealign::tgl)))); |
| 73 | +DECLARE_SOA_EXPRESSION_COLUMN(Pt, pt, float, //! |
| 74 | + ifnode(nabs(aod::fwdtrackrealign::signed1Pt) < o2::constants::math::Almost0, o2::constants::math::VeryBig, nabs(1.f / aod::fwdtrackrealign::signed1Pt))); |
| 75 | +DECLARE_SOA_EXPRESSION_COLUMN(P, p, float, //! |
| 76 | + ifnode((nabs(aod::fwdtrackrealign::signed1Pt) < o2::constants::math::Almost0) || (nabs(o2::constants::math::PIQuarter - 0.5f * natan(aod::fwdtrackrealign::tgl)) < o2::constants::math::Almost0), o2::constants::math::VeryBig, 0.5f * (ntan(o2::constants::math::PIQuarter - 0.5f * natan(aod::fwdtrackrealign::tgl)) + 1.f / ntan(o2::constants::math::PIQuarter - 0.5f * natan(aod::fwdtrackrealign::tgl))) / nabs(aod::fwdtrackrealign::signed1Pt))); |
| 77 | +DECLARE_SOA_EXPRESSION_COLUMN(CXX, cXX, float, //! |
| 78 | + aod::fwdtrackrealign::sigmaX* aod::fwdtrackrealign::sigmaX); |
| 79 | +DECLARE_SOA_EXPRESSION_COLUMN(CXY, cXY, float, //! |
| 80 | + (aod::fwdtrackrealign::rhoXY / 128.f) * (aod::fwdtrackrealign::sigmaX * aod::fwdtrackrealign::sigmaY)); |
| 81 | +DECLARE_SOA_EXPRESSION_COLUMN(CYY, cYY, float, //! |
| 82 | + aod::fwdtrackrealign::sigmaY* aod::fwdtrackrealign::sigmaY); |
| 83 | +DECLARE_SOA_EXPRESSION_COLUMN(CPhiX, cPhiX, float, //! |
| 84 | + (aod::fwdtrackrealign::rhoPhiX / 128.f) * (aod::fwdtrackrealign::sigmaPhi * aod::fwdtrackrealign::sigmaX)); |
| 85 | +DECLARE_SOA_EXPRESSION_COLUMN(CPhiY, cPhiY, float, //! |
| 86 | + (aod::fwdtrackrealign::rhoPhiY / 128.f) * (aod::fwdtrackrealign::sigmaPhi * aod::fwdtrackrealign::sigmaY)); |
| 87 | +DECLARE_SOA_EXPRESSION_COLUMN(CPhiPhi, cPhiPhi, float, //! |
| 88 | + aod::fwdtrackrealign::sigmaPhi* aod::fwdtrackrealign::sigmaPhi); |
| 89 | +DECLARE_SOA_EXPRESSION_COLUMN(CTglX, cTglX, float, //! |
| 90 | + (aod::fwdtrackrealign::rhoTglX / 128.f) * (aod::fwdtrackrealign::sigmaTgl * aod::fwdtrackrealign::sigmaX)); |
| 91 | +DECLARE_SOA_EXPRESSION_COLUMN(CTglY, cTglY, float, //! |
| 92 | + (aod::fwdtrackrealign::rhoTglY / 128.f) * (aod::fwdtrackrealign::sigmaTgl * aod::fwdtrackrealign::sigmaY)); |
| 93 | +DECLARE_SOA_EXPRESSION_COLUMN(CTglPhi, cTglPhi, float, //! |
| 94 | + (aod::fwdtrackrealign::rhoTglPhi / 128.f) * (aod::fwdtrackrealign::sigmaTgl * aod::fwdtrackrealign::sigmaPhi)); |
| 95 | +DECLARE_SOA_EXPRESSION_COLUMN(CTglTgl, cTglTgl, float, //! |
| 96 | + aod::fwdtrackrealign::sigmaTgl* aod::fwdtrackrealign::sigmaTgl); |
| 97 | +DECLARE_SOA_EXPRESSION_COLUMN(C1PtY, c1PtY, float, //! |
| 98 | + (aod::fwdtrackrealign::rho1PtY / 128.f) * (aod::fwdtrackrealign::sigma1Pt * aod::fwdtrackrealign::sigmaY)); |
| 99 | +DECLARE_SOA_EXPRESSION_COLUMN(C1PtX, c1PtX, float, //! |
| 100 | + (aod::fwdtrackrealign::rho1PtX / 128.f) * (aod::fwdtrackrealign::sigma1Pt * aod::fwdtrackrealign::sigmaX)); |
| 101 | +DECLARE_SOA_EXPRESSION_COLUMN(C1PtPhi, c1PtPhi, float, //! |
| 102 | + (aod::fwdtrackrealign::rho1PtPhi / 128.f) * (aod::fwdtrackrealign::sigma1Pt * aod::fwdtrackrealign::sigmaPhi)); |
| 103 | +DECLARE_SOA_EXPRESSION_COLUMN(C1PtTgl, c1PtTgl, float, //! |
| 104 | + (aod::fwdtrackrealign::rho1PtTgl / 128.f) * (aod::fwdtrackrealign::sigma1Pt * aod::fwdtrackrealign::sigmaTgl)); |
| 105 | +DECLARE_SOA_EXPRESSION_COLUMN(C1Pt21Pt2, c1Pt21Pt2, float, //! |
| 106 | + aod::fwdtrackrealign::sigma1Pt* aod::fwdtrackrealign::sigma1Pt); |
| 107 | +} // namespace fwdtrackrealign |
28 | 108 |
|
29 | 109 | // Tracks including MCH and/or MCH (plus optionally MFT) //! |
30 | 110 | DECLARE_SOA_TABLE_FULL(StoredFwdTracksReAlign, "FwdTracksReAlign", "AOD", "FWDTRACKREALIGN", |
31 | | - fwdtrack::X, fwdtrack::Y, fwdtrack::Z, fwdtrack::Phi, fwdtrack::Tgl, |
32 | | - fwdtrack::Signed1Pt, |
33 | | - fwdtrack::Px<fwdtrack::Pt, fwdtrack::Phi>, |
34 | | - fwdtrack::Py<fwdtrack::Pt, fwdtrack::Phi>, |
35 | | - fwdtrack::Pz<fwdtrack::Pt, fwdtrack::Tgl>, |
36 | | - fwdtrack::Chi2, |
37 | | - fwdtrack::IsRemovable); |
| 111 | + o2::soa::Index<>, fwdtrackrealign::CollisionId, fwdtrackrealign::FwdTrackId, fwdtrackrealign::TrackType, fwdtrackrealign::X, fwdtrackrealign::Y, fwdtrackrealign::Z, fwdtrackrealign::Phi, fwdtrackrealign::Tgl, |
| 112 | + fwdtrackrealign::Signed1Pt, |
| 113 | + fwdtrackrealign::Px<fwdtrackrealign::Pt, fwdtrackrealign::Phi>, |
| 114 | + fwdtrackrealign::Py<fwdtrackrealign::Pt, fwdtrackrealign::Phi>, |
| 115 | + fwdtrackrealign::Pz<fwdtrackrealign::Pt, fwdtrackrealign::Tgl>, |
| 116 | + fwdtrackrealign::Sign<fwdtrackrealign::Signed1Pt>, |
| 117 | + fwdtrackrealign::Chi2, |
| 118 | + fwdtrackrealign::IsRemovable); |
| 119 | + |
| 120 | +DECLARE_SOA_TABLE_FULL(StoredFwdTrksCovReAlign, "FwdCovsReAlign", "AOD", "FWDCOVREALIGN", //! |
| 121 | + fwdtrackrealign::SigmaX, fwdtrackrealign::SigmaY, fwdtrackrealign::SigmaPhi, fwdtrackrealign::SigmaTgl, fwdtrackrealign::Sigma1Pt, |
| 122 | + fwdtrackrealign::RhoXY, fwdtrackrealign::RhoPhiY, fwdtrackrealign::RhoPhiX, fwdtrackrealign::RhoTglX, fwdtrackrealign::RhoTglY, |
| 123 | + fwdtrackrealign::RhoTglPhi, fwdtrackrealign::Rho1PtX, fwdtrackrealign::Rho1PtY, fwdtrackrealign::Rho1PtPhi, fwdtrackrealign::Rho1PtTgl); |
38 | 124 |
|
39 | | -DECLARE_SOA_EXTENDED_TABLE(FwdTracksReAlign, StoredFwdTracksReAlign, "FWDTRACKREALIGN", //! |
40 | | - aod::fwdtrack::Eta, |
41 | | - aod::fwdtrack::Pt, |
42 | | - aod::fwdtrack::P); |
| 125 | +// extended table with expression columns that can be used as arguments of dynamic columns |
| 126 | +DECLARE_SOA_EXTENDED_TABLE_USER(FwdTracksReAlign, StoredFwdTracksReAlign, "FWDTRKREALIGNEXT", //! |
| 127 | + fwdtrackrealign::Pt, |
| 128 | + fwdtrackrealign::Eta, |
| 129 | + fwdtrackrealign::P); // the table name has here to be the one with EXT which is not nice and under study |
43 | 130 |
|
44 | | -DECLARE_SOA_TABLE_FULL(StoredFwdTrksCovReAlign, "FwdTrksCovReAlign", "AOD", "FWDTRKCOVREALIGN", //! |
45 | | - fwdtrack::SigmaX, fwdtrack::SigmaY, fwdtrack::SigmaPhi, fwdtrack::SigmaTgl, fwdtrack::Sigma1Pt, |
46 | | - fwdtrack::RhoXY, fwdtrack::RhoPhiY, fwdtrack::RhoPhiX, fwdtrack::RhoTglX, fwdtrack::RhoTglY, |
47 | | - fwdtrack::RhoTglPhi, fwdtrack::Rho1PtX, fwdtrack::Rho1PtY, fwdtrack::Rho1PtPhi, fwdtrack::Rho1PtTgl); |
| 131 | +// extended table with expression columns that can be used as arguments of dynamic columns |
| 132 | +DECLARE_SOA_EXTENDED_TABLE_USER(FwdTrksCovReAlign, StoredFwdTrksCovReAlign, "FWDCOVREALIGNEXT", //! |
| 133 | + fwdtrackrealign::CXX, |
| 134 | + fwdtrackrealign::CXY, |
| 135 | + fwdtrackrealign::CYY, |
| 136 | + fwdtrackrealign::CPhiX, |
| 137 | + fwdtrackrealign::CPhiY, |
| 138 | + fwdtrackrealign::CPhiPhi, |
| 139 | + fwdtrackrealign::CTglX, |
| 140 | + fwdtrackrealign::CTglY, |
| 141 | + fwdtrackrealign::CTglPhi, |
| 142 | + fwdtrackrealign::CTglTgl, |
| 143 | + fwdtrackrealign::C1PtX, |
| 144 | + fwdtrackrealign::C1PtY, |
| 145 | + fwdtrackrealign::C1PtPhi, |
| 146 | + fwdtrackrealign::C1PtTgl, |
| 147 | + fwdtrackrealign::C1Pt21Pt2); // the table name has here to be the one with EXT which is not nice and under study |
48 | 148 |
|
49 | | -DECLARE_SOA_EXTENDED_TABLE(FwdTrksCovReAlign, StoredFwdTrksCovReAlign, "FWDTRKCOVREALIGN", //! |
50 | | - aod::fwdtrack::CXX, |
51 | | - aod::fwdtrack::CXY, |
52 | | - aod::fwdtrack::CYY, |
53 | | - aod::fwdtrack::CPhiX, |
54 | | - aod::fwdtrack::CPhiY, |
55 | | - aod::fwdtrack::CPhiPhi, |
56 | | - aod::fwdtrack::CTglX, |
57 | | - aod::fwdtrack::CTglY, |
58 | | - aod::fwdtrack::CTglPhi, |
59 | | - aod::fwdtrack::CTglTgl, |
60 | | - aod::fwdtrack::C1PtX, |
61 | | - aod::fwdtrack::C1PtY, |
62 | | - aod::fwdtrack::C1PtPhi, |
63 | | - aod::fwdtrack::C1PtTgl, |
64 | | - aod::fwdtrack::C1Pt21Pt2); |
| 149 | +using FwdTrackRealign = FwdTracksReAlign::iterator; |
| 150 | +using FwdTrkCovRealign = FwdTrksCovReAlign::iterator; |
| 151 | +using FullFwdTracksRealign = soa::Join<FwdTracksReAlign, FwdTrksCovReAlign>; |
| 152 | +using FullFwdTrackRealign = FullFwdTracksRealign::iterator; |
65 | 153 | } // namespace o2::aod |
66 | 154 |
|
67 | 155 | #endif // COMMON_DATAMODEL_FWDTRACKREALIGNTABLES_H_ |
0 commit comments