106 GPUhdi() int32_t NMergedTracks()
const {
return mMemory->nMergedTracks; }
113 GPUhdi() uint32_t NClusters()
const {
return mNClusters; }
114 GPUhdi() uint32_t NMaxClusters()
const {
return mNMaxClusters; }
115 GPUhdi() uint32_t NMaxTracks()
const {
return mNMaxTracks; }
116 GPUhdi() uint32_t NMaxMergedTrackClusters()
const {
return mNMaxMergedTrackClusters; }
117 GPUhdi() uint32_t NMergedTrackClusters()
const {
return mMemory->nMergedTrackClusters; }
122 GPUhdi()
GPUAtomic(uint32_t) * ClusterAttachment()
const {
return mClusterAttachment; }
123 GPUhdi() uint32_t* TrackOrderAttach()
const {
return mTrackOrderAttach; }
124 GPUhdi() uint32_t* TrackOrderProcess()
const {
return mTrackOrderProcess; }
125 GPUhdi() uint32_t* RetryRefitIds()
const {
return mRetryRefitIds; }
126 GPUhdi() uint8_t* ClusterStateExt()
const {
return mClusterStateExt; }
131 GPUhdi() uint32_t* TrackSort() {
return mTrackSort; }
133 GPUhdi() internal::MergeLooperParam* LooperCandidates() {
return mLooperCandidates; }
135 GPUhdi() gputpcgmmergertypes::GPUTPCGMBorderRange* BorderRange(int32_t
i) {
return mBorderRange[
i]; }
136 GPUhdi()
const gputpcgmmergertypes::GPUTPCGMBorderRange* BorderRange(int32_t
i)
const {
return mBorderRange[
i]; }
139 GPUhdi() uint32_t* OutputClusRefsTPCO2() {
return mOutputClusRefsTPCO2; }
141 GPUhdi() uint32_t NOutputTracksTPCO2()
const {
return mMemory->nO2Tracks; }
142 GPUhdi() uint32_t NOutputClusRefsTPCO2()
const {
return mMemory->nO2ClusRefs; }
144 GPUhdi() int32_t NMaxSingleSectorTracks()
const {
return mNMaxSingleSectorTracks; }
145 GPUhdi() int32_t* TrackIDs() {
return mTrackIDs; }
146 GPUhdi() int32_t* TmpSortMemory() {
return mTmpSortMemory; }
148 GPUd() uint16_t MemoryResMemory() {
return mMemoryResMemory; }
149 GPUd() uint16_t MemoryResOutput()
const {
return mMemoryResOutput; }
150 GPUd() uint16_t MemoryResOutputState()
const {
return mMemoryResOutputState; }
151 GPUd() uint16_t MemoryResOutputO2()
const {
return mMemoryResOutputO2; }
152 GPUd() uint16_t MemoryResOutputO2Clus()
const {
return mMemoryResOutputO2Clus; }
153 GPUd() uint16_t MemoryResOutputO2MC()
const {
return mMemoryResOutputO2MC; }
154 GPUd() uint16_t MemoryResOutputO2Scratch()
const {
return mMemoryResOutputO2Scratch; }
162 GPUd()
void UnpackSaveNumber(int32_t
id);
206 template <
int32_t mergeType>
214 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;
221 GPUdi() int32_t SectorTrackInfoLocalTotal()
const {
return mSectorTrackInfoIndex[
NSECTORS]; }
222 GPUdi() int32_t SectorTrackInfoTotal()
const {
return mSectorTrackInfoIndex[2 *
NSECTORS]; }
227 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);
231 void CheckMergedTracks();
234 template <
class T,
class S>
235 int64_t GetTrackLabelA(
const S& trk)
const;
237 int64_t GetTrackLabel(
const S& trk)
const;
241 GPUdi()
void hookEdge(int32_t u, int32_t
v);
246 int32_t* mTrackLinks =
nullptr;
247 int32_t* mTrackCCRoots;
249 uint32_t mNTotalSectorTracks = 0;
250 uint32_t mNMaxTracks = 0;
251 uint32_t mNMaxSingleSectorTracks = 0;
252 uint32_t mNMaxMergedTrackClusters = 0;
253 uint32_t mNMaxClusters = 0;
254 uint32_t mNMaxLooperMatches = 0;
256 uint16_t mMemoryResMemory = (uint16_t)-1;
257 uint16_t mMemoryResOutput = (uint16_t)-1;
258 uint16_t mMemoryResOutputState = (uint16_t)-1;
259 uint16_t mMemoryResOutputO2 = (uint16_t)-1;
260 uint16_t mMemoryResOutputO2Clus = (uint16_t)-1;
261 uint16_t mMemoryResOutputO2MC = (uint16_t)-1;
262 uint16_t mMemoryResOutputO2Scratch = (uint16_t)-1;
264 int32_t mNClusters = 0;
269 int32_t* mSectorTrackInfoIndex =
nullptr;
272 GPUAtomic(uint32_t) * mClusterAttachment =
nullptr;
273 o2::tpc::
TrackTPC* mOutputTracksTPCO2 =
nullptr;
274 uint32_t* mOutputClusRefsTPCO2 =
nullptr;
276 internal::MergeLooperParam* mLooperCandidates =
nullptr;
278 uint32_t* mTrackOrderAttach =
nullptr;
279 uint32_t* mTrackOrderProcess =
nullptr;
280 uint8_t* mClusterStateExt =
nullptr;
281 uint2* mClusRefTmp =
nullptr;
282 int32_t* mTrackIDs =
nullptr;
283 int32_t* mTmpSortMemory =
nullptr;
284 uint32_t* mTrackSort =
nullptr;
285 tmpSort* mTrackSortO2 =
nullptr;
286 GPUAtomic(uint32_t) * mSharedCount =
nullptr;
289 gputpcgmmergertypes::GPUTPCGMBorderRange* mBorderRangeMemory =
nullptr;
290 gputpcgmmergertypes::GPUTPCGMBorderRange* mBorderRange[
NSECTORS];
291 memory* mMemory =
nullptr;
292 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