2929
3030using namespace o2 ::gpu;
3131
32- GPUdii () void GPUTPCTrackletConstructor::InitTracklet(GPUTPCTrackParam& GPUrestrict () tParam)
32+ using GPUTPCTrackParam_reference = GPUTPCTrackParamSkeleton<wrapper::reference>;
33+
34+ GPUdii () void GPUTPCTrackletConstructor::InitTracklet(GPUTPCTrackParam_reference GPUrestrict () tParam)
3335{
3436 // Initialize Tracklet Parameters using default values
3537 tParam.InitParam ();
3638}
3739
38- GPUd () bool GPUTPCTrackletConstructor::CheckCov(GPUTPCTrackParam& GPUrestrict () tParam)
40+ GPUd () bool GPUTPCTrackletConstructor::CheckCov(GPUTPCTrackParam_reference GPUrestrict () tParam)
3941{
4042 bool ok = 1 ;
4143 const float * c = tParam.Cov ();
@@ -52,7 +54,7 @@ GPUd() bool GPUTPCTrackletConstructor::CheckCov(GPUTPCTrackParam& GPUrestrict()
5254 return (ok);
5355}
5456
55- GPUd () void GPUTPCTrackletConstructor::StoreTracklet(int32_t /* nBlocks*/ , int32_t /* nThreads*/ , int32_t /* iBlock*/ , int32_t /* iThread*/ , GPUsharedref() GPUSharedMemory& s, GPUTPCThreadMemory& GPUrestrict() r, GPUconstantref() GPUTPCTracker& GPUrestrict() tracker, GPUTPCTrackParam& GPUrestrict() tParam, calink* rowHits)
57+ GPUd () void GPUTPCTrackletConstructor::StoreTracklet(int32_t /* nBlocks*/ , int32_t /* nThreads*/ , int32_t /* iBlock*/ , int32_t /* iThread*/ , GPUsharedref() GPUSharedMemory& s, GPUTPCThreadMemory& GPUrestrict() r, GPUconstantref() GPUTPCTracker& GPUrestrict() tracker, GPUTPCTrackParam_reference GPUrestrict() tParam, calink* rowHits)
5658{
5759 // reconstruction of tracklets, tracklet store step
5860 const uint32_t nHits = r.mLastRow + 1 - r.mFirstRow ;
@@ -103,7 +105,7 @@ GPUd() void GPUTPCTrackletConstructor::StoreTracklet(int32_t /*nBlocks*/, int32_
103105}
104106
105107template <class T >
106- GPUdic (2 , 1 ) void GPUTPCTrackletConstructor::UpdateTracklet (int32_t /* nBlocks*/ , int32_t /* nThreads*/ , int32_t /* iBlock*/ , int32_t /* iThread*/ , GPUsharedref () T& s, GPUTPCThreadMemory& GPUrestrict () r, GPUconstantref () GPUTPCTracker& GPUrestrict () tracker, GPUTPCTrackParam& GPUrestrict () tParam, int32_t iRow, calink& rowHit, calink* rowHits)
108+ GPUdic (2 , 1 ) void GPUTPCTrackletConstructor::UpdateTracklet (int32_t /* nBlocks*/ , int32_t /* nThreads*/ , int32_t /* iBlock*/ , int32_t /* iThread*/ , GPUsharedref () T& s, GPUTPCThreadMemory& GPUrestrict () r, GPUconstantref () GPUTPCTracker& GPUrestrict () tracker, GPUTPCTrackParam_reference GPUrestrict () tParam, int32_t iRow, calink& rowHit, calink* rowHits)
107109{
108110 // reconstruction of tracklets, tracklets update step
109111 CA_MAKE_SHARED_REF (GPUTPCRow, row, tracker.Row (iRow), s.mRows [iRow]);
@@ -293,7 +295,7 @@ GPUdic(2, 1) void GPUTPCTrackletConstructor::UpdateTracklet(int32_t /*nBlocks*/,
293295 calink best = CALINK_INVAL;
294296
295297 float err2Y, err2Z;
296- tracker.GetErrors2Seeding (iRow, *((GPUTPCTrackParam*)& tParam) , -1 .f , err2Y, err2Z); // TODO: Use correct time
298+ tracker.GetErrors2Seeding (iRow, tParam, -1 .f , err2Y, err2Z); // TODO: Use correct time
297299 if (r.mNHits >= 10 ) {
298300 const float sErr2 = tracker.Param ().GetSystematicClusterErrorIFC2 (x, tParam.GetY (), tParam.GetZ (), tracker.ISector () >= 18 );
299301 err2Y += sErr2 ;
@@ -402,7 +404,7 @@ GPUdic(2, 1) void GPUTPCTrackletConstructor::UpdateTracklet(int32_t /*nBlocks*/,
402404GPUdic (2 , 1 ) void GPUTPCTrackletConstructor::DoTracklet (GPUconstantref () GPUTPCTracker& GPUrestrict () tracker, GPUsharedref () GPUTPCTrackletConstructor::GPUSharedMemory& s, GPUTPCThreadMemory& GPUrestrict () r)
403405{
404406 int32_t iRow = 0 , iRowEnd = GPUCA_ROW_COUNT;
405- GPUTPCTrackParam tParam;
407+ GPUTPCTrackParamSkeleton<wrapper::value> tParam;
406408 calink rowHits[GPUCA_ROW_COUNT];
407409 if (r.mGo ) {
408410 GPUTPCHitId id = tracker.TrackletStartHits ()[r.mISH ];
@@ -490,7 +492,7 @@ GPUdii() void GPUTPCTrackletConstructor::Thread(int32_t nBlocks, int32_t nThread
490492}
491493
492494template <> // FIXME: GPUgeneric() needed to make the clang spirv output link correctly
493- GPUd () int32_t GPUTPCTrackletConstructor::GPUTPCTrackletConstructorExtrapolationTracking<GPUgeneric () GPUTPCExtrapolationTracking::GPUSharedMemory>(GPUconstantref () GPUTPCTracker& GPUrestrict () tracker, GPUsharedref () GPUTPCExtrapolationTracking::GPUSharedMemory& sMem , GPUTPCTrackParam& GPUrestrict () tParam, int32_t row, int32_t increment, int32_t iTracklet, calink* rowHits)
495+ GPUd () int32_t GPUTPCTrackletConstructor::GPUTPCTrackletConstructorExtrapolationTracking<GPUgeneric () GPUTPCExtrapolationTracking::GPUSharedMemory>(GPUconstantref () GPUTPCTracker& GPUrestrict () tracker, GPUsharedref () GPUTPCExtrapolationTracking::GPUSharedMemory& sMem , GPUTPCTrackParam_reference GPUrestrict () tParam, int32_t row, int32_t increment, int32_t iTracklet, calink* rowHits)
494496{
495497 GPUTPCThreadMemory rMem;
496498 rMem.mISH = iTracklet;
0 commit comments