@@ -55,93 +55,6 @@ class TrackParFwd : public TrackParametrizationData<float, 5>, public TrackParFw
5555 template <typename T>
5656 void toBarrelTrackPar (TrackParametrization<T>& t) const ;
5757
58- // / return Z coordinate (cm)
59- value_t getZ () const { return mX ; }
60- // / set Z coordinate (cm)
61- void setZ (value_t z) { mX = z; }
62- value_t getX () const { return mP [0 ]; }
63- void setX (value_t x) { mP [0 ] = x; }
64-
65- value_t getY () const { return mP [1 ]; }
66- void setY (value_t y) { mP [1 ] = y; }
67-
68- void setPhi (value_t phi) { mP [2 ] = phi; }
69- value_t getPhi () const { return mP [2 ]; }
70-
71- value_t getSnp () const
72- {
73- return o2::math_utils::sin (mP [2 ]);
74- }
75-
76- value_t getCsp2 () const
77- {
78- auto snp = o2::math_utils::sin (mP [2 ]);
79- value_t csp = o2::math_utils::sqrt ((value_t (1 ) - snp) * (value_t (1 ) + snp));
80- return csp * csp;
81- }
82-
83- void setTanl (value_t tanl) { mP [3 ] = tanl; }
84- value_t getTanl () const { return mP [3 ]; }
85-
86- value_t getTgl () const { return mP [3 ]; } // for the sake of helixhelper
87-
88- void setInvQPt (value_t invqpt) { mP [4 ] = invqpt; }
89- value_t getInvQPt () const { return mP [4 ]; } // return Inverse charged pt
90- value_t getPt () const { return o2::math_utils::abs (value_t (1 ) / mP [4 ]); }
91- value_t getInvPt () const { return o2::math_utils::abs (mP [4 ]); }
92- value_t getPx () const { return o2::math_utils::cos (getPhi ()) * getPt (); } // return px
93- value_t getPy () const { return o2::math_utils::sin (getPhi ()) * getPt (); } // return py
94- value_t getPz () const { return getTanl () * getPt (); } // return pz
95- value_t getP () const { return getPt () * o2::math_utils::sqrt (value_t (1 ) + getTanl () * getTanl ()); }
96- value_t getInverseMomentum () const { return value_t (1 ) / getP (); }
97-
98- value_t getTheta () const { return value_t (0.5 ) * o2::math_utils::pi () - o2::math_utils::atan (getTanl ()); }
99- value_t getEta () const { return -o2::math_utils::log (o2::math_utils::tan (getTheta () / value_t (2 ))); } // return total momentum
100-
101- value_t getCurvature (value_t b) const
102- {
103- auto invqpt = getInvQPt ();
104- return o2::constants::math::B2C * b * invqpt;
105- }
106-
107- // / return the charge (assumed forward motion)
108- int getCharge () const { return mP [4 ] >= 0 .f ? 1 : -1 ; }
109- // / set the charge (assumed forward motion)
110- void setCharge (int charge)
111- {
112- if (charge * mP [4 ] < 0 .) {
113- mP [4 ] *= -1 .;
114- }
115- }
116-
117- // / return track parameters
118- const value_t * getParameters () const { return mP ; }
119- const value_t * getParams () const { return mP ; }
120- params_t getParametersArray () const
121- {
122- params_t params;
123- for (int i = 0 ; i < 5 ; ++i) {
124- params[i] = mP [i];
125- }
126- return params;
127- }
128- // / set track parameters
129- void setParameters (const params_t & parameters) { setParameters (parameters.data ()); }
130- void setParameters (const value_t * parameters)
131- {
132- for (int i = 0 ; i < 5 ; ++i) {
133- mP [i] = parameters[i];
134- }
135- }
136- // / add track parameters
137- void addParameters (const params_t & parameters) { addParameters (parameters.data ()); }
138- void addParameters (const value_t * parameters)
139- {
140- for (int i = 0 ; i < 5 ; ++i) {
141- mP [i] += parameters[i];
142- }
143- }
144-
14558 // Track parameter propagation
14659 void propagateParamToZlinear (double zEnd);
14760 void propagateParamToZquadratic (double zEnd, double zField);
@@ -168,10 +81,7 @@ class TrackParCovFwd : public TrackParFwd, public TrackCovarianceData<TrackParFw
16881 using cov_base_t = TrackCovarianceData<value_t , 15 >;
16982 using cov_interface_t = TrackParCovFwdInterface<TrackParCovFwd, value_t >;
17083 using covMat_t = std::array<value_t , 15 >;
171- struct cov_view_t {
172- const value_t * data = nullptr ;
173- value_t operator ()(int i, int j) const { return data[TrackParCovFwd::covIndex (i, j)]; }
174- };
84+ using typename cov_interface_t ::cov_view_t ;
17585 using TrackParFwd::TrackParFwd; // inherit base constructors
17686
17787 TrackParCovFwd () = default ;
@@ -182,20 +92,6 @@ class TrackParCovFwd : public TrackParFwd, public TrackCovarianceData<TrackParFw
18292 template <typename T>
18393 void toBarrelTrackParCov (TrackParametrizationWithError<T>& t) const ;
18494
185- cov_view_t getCovariances () const { return {mC .data ()}; }
186- const covMat_t& getCov () const { return mC ; }
187- value_t getCovarElem (int i, int j) const { return mC [covIndex (i, j)]; }
188- void setCovariances (const covMat_t& covariances) { mC = covariances; }
189- void setCovariances (const value_t * covariances);
190- void deleteCovariances () { mC = {}; }
191-
192- value_t getSigma2X () const { return mC [covIndex (0 , 0 )]; }
193- value_t getSigma2Y () const { return mC [covIndex (1 , 1 )]; }
194- value_t getSigmaXY () const { return mC [covIndex (0 , 1 )]; }
195- value_t getSigma2Phi () const { return mC [covIndex (2 , 2 )]; }
196- value_t getSigma2Tanl () const { return mC [covIndex (3 , 3 )]; }
197- value_t getSigma2InvQPt () const { return mC [covIndex (4 , 4 )]; }
198-
19995 // Propagate parameters and covariances matrix
20096 void propagateToZlinear (double zEnd);
20197 void propagateToZquadratic (double zEnd, double zField);
@@ -215,11 +111,6 @@ class TrackParCovFwd : public TrackParFwd, public TrackCovarianceData<TrackParFw
215111
216112 bool getCovXYZPxPyPzGlo (std::array<float , 21 >& cv) const ;
217113
218- static constexpr int covIndex (int i, int j)
219- {
220- return i >= j ? i * (i + 1 ) / 2 + j : j * (j + 1 ) / 2 + i;
221- }
222-
223114 protected:
224115 using cov_base_t ::mC ;
225116
0 commit comments