@@ -90,57 +90,8 @@ class GPUTPCTrackParamSkeleton : public CRTP<GPUTPCTrackParamSkeleton, F>
9090 };
9191
9292 GPUd () GPUTPCBaseTrackParamSkeleton<wrapper::const_reference> GetParam () const { return mParam ; }
93- GPUd () void SetParam (GPUTPCBaseTrackParamSkeleton<wrapper::const_reference> v) {
94- mParam .mX = v.mX ;
95- mParam .mC [0 ] = v.mC [0 ];
96- mParam .mC [1 ] = v.mC [1 ];
97- mParam .mC [2 ] = v.mC [2 ];
98- mParam .mC [3 ] = v.mC [3 ];
99- mParam .mC [4 ] = v.mC [4 ];
100- mParam .mC [5 ] = v.mC [5 ];
101- mParam .mC [6 ] = v.mC [6 ];
102- mParam .mC [7 ] = v.mC [7 ];
103- mParam .mC [8 ] = v.mC [8 ];
104- mParam .mC [9 ] = v.mC [9 ];
105- mParam .mC [10 ] = v.mC [10 ];
106- mParam .mC [11 ] = v.mC [11 ];
107- mParam .mC [12 ] = v.mC [12 ];
108- mParam .mC [13 ] = v.mC [13 ];
109- mParam .mC [14 ] = v.mC [14 ];
110- mParam .mZOffset = v.mZOffset ;
111- mParam .mP [0 ] = v.mP [0 ];
112- mParam .mP [1 ] = v.mP [1 ];
113- mParam .mP [2 ] = v.mP [2 ];
114- mParam .mP [3 ] = v.mP [3 ];
115- mParam .mP [4 ] = v.mP [4 ];
116- }
117-
118- GPUd () void InitParam ()
119- {
120- // Initialize Tracklet Parameters using default values
121- SetSinPhi (0 );
122- SetDzDs (0 );
123- SetQPt (0 );
124- SetSignCosPhi (1 );
125- SetChi2 (0 );
126- SetNDF (-3 );
127- SetCov (0 , 1 );
128- SetCov (1 , 0 );
129- SetCov (2 , 1 );
130- SetCov (3 , 0 );
131- SetCov (4 , 0 );
132- SetCov (5 , 1 );
133- SetCov (6 , 0 );
134- SetCov (7 , 0 );
135- SetCov (8 , 0 );
136- SetCov (9 , 1 );
137- SetCov (10 , 0 );
138- SetCov (11 , 0 );
139- SetCov (12 , 0 );
140- SetCov (13 , 0 );
141- SetCov (14 , 1000 .f );
142- SetZOffset (0 );
143- }
93+ GPUd () void SetParam (GPUTPCBaseTrackParamSkeleton<wrapper::const_reference> v);
94+ GPUd () void InitParam ();
14495
14596 GPUd () float X () const { return mParam .X (); }
14697 GPUd () float Y () const { return mParam .Y (); }
@@ -193,8 +144,8 @@ class GPUTPCTrackParamSkeleton : public CRTP<GPUTPCTrackParamSkeleton, F>
193144 GPUd () void SetChi2 (float v) { mChi2 = v; }
194145 GPUd () void SetNDF (int32_t v) { mNDF = v; }
195146
196- GPUd () float GetDist2 (GPUTPCTrackParamSkeleton<wrapper::const_reference > t) const ;
197- GPUd () float GetDistXZ2 (GPUTPCTrackParamSkeleton<wrapper::const_reference > t) const ;
147+ GPUd () float GetDist2 (GPUTPCTrackParamSkeleton<wrapper::const_reference_restrict > t) const ;
148+ GPUd () float GetDistXZ2 (GPUTPCTrackParamSkeleton<wrapper::const_reference_restrict > t) const ;
198149
199150 GPUd () float GetS (float x, float y, float Bz) const ;
200151
@@ -243,7 +194,7 @@ class GPUTPCTrackParamSkeleton : public CRTP<GPUTPCTrackParamSkeleton, F>
243194#ifndef GPUCA_GPUCODE
244195 // private:
245196#endif // ! GPUCA_GPUCODE
246- GPUTPCBaseTrackParamSkeleton<F> mParam ; // Track Parameters
197+ GPUTPCBaseTrackParamSkeleton<F> mParam ;
247198
248199 // private:
249200 // WARNING, Track Param Data is copied in the GPU Tracklet Constructor element by element instead of using copy constructor!!!
@@ -254,6 +205,60 @@ class GPUTPCTrackParamSkeleton : public CRTP<GPUTPCTrackParamSkeleton, F>
254205 F<int32_t > mNDF ; // the Number of Degrees of Freedom
255206};
256207
208+ template <template <class > class F >
209+ GPUd () void GPUTPCTrackParamSkeleton<F>::SetParam(GPUTPCBaseTrackParamSkeleton<wrapper::const_reference> v) {
210+ mParam .mX = v.mX ;
211+ mParam .mC [0 ] = v.mC [0 ];
212+ mParam .mC [1 ] = v.mC [1 ];
213+ mParam .mC [2 ] = v.mC [2 ];
214+ mParam .mC [3 ] = v.mC [3 ];
215+ mParam .mC [4 ] = v.mC [4 ];
216+ mParam .mC [5 ] = v.mC [5 ];
217+ mParam .mC [6 ] = v.mC [6 ];
218+ mParam .mC [7 ] = v.mC [7 ];
219+ mParam .mC [8 ] = v.mC [8 ];
220+ mParam .mC [9 ] = v.mC [9 ];
221+ mParam .mC [10 ] = v.mC [10 ];
222+ mParam .mC [11 ] = v.mC [11 ];
223+ mParam .mC [12 ] = v.mC [12 ];
224+ mParam .mC [13 ] = v.mC [13 ];
225+ mParam .mC [14 ] = v.mC [14 ];
226+ mParam .mZOffset = v.mZOffset ;
227+ mParam .mP [0 ] = v.mP [0 ];
228+ mParam .mP [1 ] = v.mP [1 ];
229+ mParam .mP [2 ] = v.mP [2 ];
230+ mParam .mP [3 ] = v.mP [3 ];
231+ mParam .mP [4 ] = v.mP [4 ];
232+ }
233+
234+ template <template <class > class F >
235+ GPUd () void GPUTPCTrackParamSkeleton<F>::InitParam()
236+ {
237+ // Initialize Tracklet Parameters using default values
238+ SetSinPhi (0 );
239+ SetDzDs (0 );
240+ SetQPt (0 );
241+ SetSignCosPhi (1 );
242+ SetChi2 (0 );
243+ SetNDF (-3 );
244+ SetCov (0 , 1 );
245+ SetCov (1 , 0 );
246+ SetCov (2 , 1 );
247+ SetCov (3 , 0 );
248+ SetCov (4 , 0 );
249+ SetCov (5 , 1 );
250+ SetCov (6 , 0 );
251+ SetCov (7 , 0 );
252+ SetCov (8 , 0 );
253+ SetCov (9 , 1 );
254+ SetCov (10 , 0 );
255+ SetCov (11 , 0 );
256+ SetCov (12 , 0 );
257+ SetCov (13 , 0 );
258+ SetCov (14 , 1000 .f );
259+ SetZOffset (0 );
260+ }
261+
257262} // namespace o2::gpu
258263
259264#endif // GPUTPCTRACKPARAM_H
0 commit comments