2424#endif
2525#include " MathUtils/Utils.h"
2626#include " ReconstructionDataFormats/TrackUtils.h"
27- #include " ReconstructionDataFormats/TrackParametrizationData .h"
27+ #include " ReconstructionDataFormats/TrackParametrizationInterface .h"
2828#include " MathUtils/Primitive2D.h"
2929
3030namespace o2 ::track
@@ -36,11 +36,12 @@ class TrackParametrization; // fwd declaration for conversion method
3636template <typename value_T>
3737class TrackParametrizationWithError ; // fwd declaration for conversion method
3838
39- class TrackParFwd : public TrackParametrizationData <float , 5 >
39+ class TrackParFwd : public TrackParametrizationData <float , 5 >, public TrackParFwdInterface<TrackParFwd, float >
4040{ // Forward track parameterization, kinematics only.
4141 public:
4242 using value_t = float ;
4343 using base_t = TrackParametrizationData<value_t , 5 >;
44+ using fwd_interface_t = TrackParFwdInterface<TrackParFwd, value_t >;
4445 using params_t = std::array<value_t , 5 >;
4546
4647 TrackParFwd () = default ;
@@ -141,11 +142,6 @@ class TrackParFwd : public TrackParametrizationData<float, 5>
141142 }
142143 }
143144
144- // / return the chi2 of the track when the associated cluster was attached
145- value_t getTrackChi2 () const { return mTrackChi2 ; }
146- // / set the chi2 of the track when the associated cluster was attached
147- void setTrackChi2 (value_t chi2) { mTrackChi2 = chi2; }
148-
149145 // Track parameter propagation
150146 void propagateParamToZlinear (double zEnd);
151147 void propagateParamToZquadratic (double zEnd, double zField);
@@ -162,15 +158,15 @@ class TrackParFwd : public TrackParametrizationData<float, 5>
162158 // / PHI = azimutal angle
163159 // / TANL = tangent of \lambda (dip angle)
164160 // / INVQPT = Inverse transverse momentum (GeV/c ** -1) times charge (assumed forward motion) </pre>
165- value_t mTrackChi2 = 0 .; // /< Chi2 of the track when the associated cluster was attached
166161
167162 ClassDefNV (TrackParFwd, 1 );
168163};
169164
170- class TrackParCovFwd : public TrackParFwd , public TrackCovarianceData <TrackParFwd::value_t , 15 >
165+ class TrackParCovFwd : public TrackParFwd , public TrackCovarianceData <TrackParFwd::value_t , 15 >, public TrackParCovFwdInterface<TrackParCovFwd, TrackParFwd:: value_t >
171166{ // Forward track+error parameterization
172167 public:
173168 using cov_base_t = TrackCovarianceData<value_t , 15 >;
169+ using cov_interface_t = TrackParCovFwdInterface<TrackParCovFwd, value_t >;
174170 using covMat_t = std::array<value_t , 15 >;
175171 struct cov_view_t {
176172 const value_t * data = nullptr ;
@@ -237,8 +233,8 @@ class TrackParCovFwd : public TrackParFwd, public TrackCovarianceData<TrackParFw
237233 ClassDefNV (TrackParCovFwd, 1 );
238234};
239235
240- static_assert (sizeof (TrackParFwd) == sizeof (TrackParFwd::base_t ) + sizeof (TrackParFwd:: value_t ) );
241- static_assert (sizeof (TrackParCovFwd) == sizeof (TrackParFwd) + 15 * sizeof (TrackParFwd:: value_t ));
236+ static_assert (sizeof (TrackParFwd) == sizeof (TrackParFwd::base_t ));
237+ static_assert (sizeof (TrackParCovFwd) == sizeof (TrackParFwd) + sizeof (TrackParCovFwd:: cov_base_t ));
242238
243239#ifndef GPUCA_GPUCODE_DEVICE
244240inline std::ostream& operator <<(std::ostream& os, const TrackParCovFwd::cov_view_t & cov)
0 commit comments