107 GPUhdi() int32_t NOutputTracks()
const {
return mMemory->nOutputTracks; }
112 GPUhdi() uint32_t NClusters()
const {
return mNClusters; }
113 GPUhdi() uint32_t NMaxClusters()
const {
return mNMaxClusters; }
114 GPUhdi() uint32_t NMaxTracks()
const {
return mNMaxTracks; }
115 GPUhdi() uint32_t NMaxOutputTrackClusters()
const {
return mNMaxOutputTrackClusters; }
116 GPUhdi() uint32_t NOutputTrackClusters()
const {
return mMemory->nOutputTrackClusters; }
121 GPUhdi()
GPUAtomic(uint32_t) * ClusterAttachment()
const {
return mClusterAttachment; }
122 GPUhdi() uint32_t* TrackOrderAttach()
const {
return mTrackOrderAttach; }
123 GPUhdi() uint32_t* TrackOrderProcess()
const {
return mTrackOrderProcess; }
124 GPUhdi() uint32_t* RetryRefitIds()
const {
return mRetryRefitIds; }
125 GPUhdi() uint8_t* ClusterStateExt()
const {
return mClusterStateExt; }
130 GPUhdi() uint32_t* TrackSort() {
return mTrackSort; }
132 GPUhdi() internal::MergeLooperParam* LooperCandidates() {
return mLooperCandidates; }
134 GPUhdi() gputpcgmmergertypes::GPUTPCGMBorderRange* BorderRange(int32_t
i) {
return mBorderRange[
i]; }
135 GPUhdi()
const gputpcgmmergertypes::GPUTPCGMBorderRange* BorderRange(int32_t
i)
const {
return mBorderRange[
i]; }
138 GPUhdi() uint32_t* OutputClusRefsTPCO2() {
return mOutputClusRefsTPCO2; }
140 GPUhdi() uint32_t NOutputTracksTPCO2()
const {
return mMemory->nO2Tracks; }
141 GPUhdi() uint32_t NOutputClusRefsTPCO2()
const {
return mMemory->nO2ClusRefs; }
143 GPUhdi() int32_t NMaxSingleSectorTracks()
const {
return mNMaxSingleSectorTracks; }
144 GPUhdi() int32_t* TrackIDs() {
return mTrackIDs; }
145 GPUhdi() int32_t* TmpSortMemory() {
return mTmpSortMemory; }
147 GPUd() uint16_t MemoryResMemory() {
return mMemoryResMemory; }
148 GPUd() uint16_t MemoryResOutput()
const {
return mMemoryResOutput; }
149 GPUd() uint16_t MemoryResOutputState()
const {
return mMemoryResOutputState; }
150 GPUd() uint16_t MemoryResOutputO2()
const {
return mMemoryResOutputO2; }
151 GPUd() uint16_t MemoryResOutputO2Clus()
const {
return mMemoryResOutputO2Clus; }
152 GPUd() uint16_t MemoryResOutputO2MC()
const {
return mMemoryResOutputO2MC; }
153 GPUd() uint16_t MemoryResOutputO2Scratch()
const {
return mMemoryResOutputO2Scratch; }
161 GPUd()
void UnpackSaveNumber(int32_t
id);
204 template <
int32_t mergeType>
212 void DebugStreamerUpdate(int32_t iTrk, int32_t ihit,
float xx,
float yy,
float zz,
const GPUTPCGMMergedTrackHit& cluster,
const o2::tpc::ClusterNative& clusterNative,
const GPUTPCGMTrackParam& track,
const GPUTPCGMPropagator& prop,
const gputpcgmmergertypes::InterpolationErrorHit& interpolation, int8_t rejectChi2,
bool refit, int32_t
retVal,
float avgInvCharge,
float posY,
float posZ, int16_t clusterState, int32_t retValReject,
float err2Y,
float err2Z)
const;
219 GPUdi() int32_t SectorTrackInfoLocalTotal()
const {
return mSectorTrackInfoIndex[
NSECTORS]; }
220 GPUdi() int32_t SectorTrackInfoTotal()
const {
return mSectorTrackInfoIndex[2 *
NSECTORS]; }
225 GPUd()
void MergeBorderTracks(int32_t nBlocks, int32_t
nThreads, int32_t
iBlock, int32_t
iThread, int32_t iSector1,
GPUTPCGMBorderTrack*
B1, int32_t N1, int32_t iSector2,
GPUTPCGMBorderTrack* B2, int32_t N2, int32_t
mergeMode = 0);
229 void CheckMergedTracks();
232 template <
class T,
class S>
233 int64_t GetTrackLabelA(
const S& trk)
const;
235 int64_t GetTrackLabel(
const S& trk)
const;
239 GPUdi()
void hookEdge(int32_t u, int32_t
v);
244 int32_t* mTrackLinks =
nullptr;
245 int32_t* mTrackCCRoots;
247 uint32_t mNTotalSectorTracks = 0;
248 uint32_t mNMaxTracks = 0;
249 uint32_t mNMaxSingleSectorTracks = 0;
250 uint32_t mNMaxOutputTrackClusters = 0;
251 uint32_t mNMaxClusters = 0;
252 uint32_t mNMaxLooperMatches = 0;
254 uint16_t mMemoryResMemory = (uint16_t)-1;
255 uint16_t mMemoryResOutput = (uint16_t)-1;
256 uint16_t mMemoryResOutputState = (uint16_t)-1;
257 uint16_t mMemoryResOutputO2 = (uint16_t)-1;
258 uint16_t mMemoryResOutputO2Clus = (uint16_t)-1;
259 uint16_t mMemoryResOutputO2MC = (uint16_t)-1;
260 uint16_t mMemoryResOutputO2Scratch = (uint16_t)-1;
262 int32_t mNClusters = 0;
266 int32_t* mSectorTrackInfoIndex =
nullptr;
269 GPUAtomic(uint32_t) * mClusterAttachment =
nullptr;
270 o2::tpc::
TrackTPC* mOutputTracksTPCO2 =
nullptr;
271 uint32_t* mOutputClusRefsTPCO2 =
nullptr;
273 internal::MergeLooperParam* mLooperCandidates =
nullptr;
275 uint32_t* mTrackOrderAttach =
nullptr;
276 uint32_t* mTrackOrderProcess =
nullptr;
277 uint8_t* mClusterStateExt =
nullptr;
278 uint2* mClusRefTmp =
nullptr;
279 int32_t* mTrackIDs =
nullptr;
280 int32_t* mTmpSortMemory =
nullptr;
281 uint32_t* mTrackSort =
nullptr;
282 tmpSort* mTrackSortO2 =
nullptr;
283 GPUAtomic(uint32_t) * mSharedCount =
nullptr;
286 gputpcgmmergertypes::GPUTPCGMBorderRange* mBorderRangeMemory =
nullptr;
287 gputpcgmmergertypes::GPUTPCGMBorderRange* mBorderRange[
NSECTORS];
288 memory* mMemory =
nullptr;
289 uint32_t* mRetryRefitIds =
nullptr;
void DebugStreamerUpdate(int32_t iTrk, int32_t ihit, float xx, float yy, float zz, const GPUTPCGMMergedTrackHit &cluster, const o2::tpc::ClusterNative &clusterNative, const GPUTPCGMTrackParam &track, const GPUTPCGMPropagator &prop, const gputpcgmmergertypes::InterpolationErrorHit &interpolation, int8_t rejectChi2, bool refit, int32_t retVal, float avgInvCharge, float posY, float posZ, int16_t clusterState, int32_t retValReject, float err2Y, float err2Z) const