106 GPUhdi() int32_t NOutputTracks()
const {
return mMemory->nOutputTracks; }
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 NMaxOutputTrackClusters()
const {
return mNMaxOutputTrackClusters; }
117 GPUhdi() uint32_t NOutputTrackClusters()
const {
return mMemory->nOutputTrackClusters; }
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);
205 template <
int32_t mergeType>
213 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;
220 GPUdi() int32_t SectorTrackInfoLocalTotal()
const {
return mSectorTrackInfoIndex[
NSECTORS]; }
221 GPUdi() int32_t SectorTrackInfoTotal()
const {
return mSectorTrackInfoIndex[2 *
NSECTORS]; }
226 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);
230 void CheckMergedTracks();
233 template <
class T,
class S>
234 int64_t GetTrackLabelA(
const S& trk)
const;
236 int64_t GetTrackLabel(
const S& trk)
const;
240 GPUdi()
void hookEdge(int32_t u, int32_t
v);
245 int32_t* mTrackLinks =
nullptr;
246 int32_t* mTrackCCRoots;
248 uint32_t mNTotalSectorTracks = 0;
249 uint32_t mNMaxTracks = 0;
250 uint32_t mNMaxSingleSectorTracks = 0;
251 uint32_t mNMaxOutputTrackClusters = 0;
252 uint32_t mNMaxClusters = 0;
253 uint32_t mNMaxLooperMatches = 0;
255 uint16_t mMemoryResMemory = (uint16_t)-1;
256 uint16_t mMemoryResOutput = (uint16_t)-1;
257 uint16_t mMemoryResOutputState = (uint16_t)-1;
258 uint16_t mMemoryResOutputO2 = (uint16_t)-1;
259 uint16_t mMemoryResOutputO2Clus = (uint16_t)-1;
260 uint16_t mMemoryResOutputO2MC = (uint16_t)-1;
261 uint16_t mMemoryResOutputO2Scratch = (uint16_t)-1;
263 int32_t mNClusters = 0;
268 int32_t* mSectorTrackInfoIndex =
nullptr;
271 GPUAtomic(uint32_t) * mClusterAttachment =
nullptr;
272 o2::tpc::
TrackTPC* mOutputTracksTPCO2 =
nullptr;
273 uint32_t* mOutputClusRefsTPCO2 =
nullptr;
275 internal::MergeLooperParam* mLooperCandidates =
nullptr;
277 uint32_t* mTrackOrderAttach =
nullptr;
278 uint32_t* mTrackOrderProcess =
nullptr;
279 uint8_t* mClusterStateExt =
nullptr;
280 uint2* mClusRefTmp =
nullptr;
281 int32_t* mTrackIDs =
nullptr;
282 int32_t* mTmpSortMemory =
nullptr;
283 uint32_t* mTrackSort =
nullptr;
284 tmpSort* mTrackSortO2 =
nullptr;
285 GPUAtomic(uint32_t) * mSharedCount =
nullptr;
288 gputpcgmmergertypes::GPUTPCGMBorderRange* mBorderRangeMemory =
nullptr;
289 gputpcgmmergertypes::GPUTPCGMBorderRange* mBorderRange[
NSECTORS];
290 memory* mMemory =
nullptr;
291 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