Skip to content

Commit 826faec

Browse files
authored
[Common,PWGDQ] A First version of process using realigned muon tracks in table-maker (#9933)
1 parent edb8bc0 commit 826faec

File tree

5 files changed

+320
-136
lines changed

5 files changed

+320
-136
lines changed

Common/DataModel/FwdTrackReAlignTables.h

Lines changed: 122 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -20,48 +20,136 @@
2020

2121
namespace o2::aod
2222
{
23-
namespace fwdtrack
23+
namespace fwdtrackrealign
2424
{
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)
2635
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
28108

29109
// Tracks including MCH and/or MCH (plus optionally MFT) //!
30110
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);
38124

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
43130

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
48148

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;
65153
} // namespace o2::aod
66154

67155
#endif // COMMON_DATAMODEL_FWDTRACKREALIGNTABLES_H_

0 commit comments

Comments
 (0)