24 const int32_t iEnd =
mode == -1 ? merger.Memory()->nRetryRefit : merger.NOutputTracks();
26 const int32_t i = mode == -1 ? merger.RetryRefitIds()[ii] : mode ? merger.TrackOrderProcess()[ii] : ii;
27 GPUTPCGMTrackParam::RefitTrack(merger.OutputTracks()[i], i, &merger, mode == -1);
35 GPUTPCGMTrackParam::RefitLoop(&merger, i);
42 merger.UnpackResetIds(nBlocks, nThreads, iBlock, iThread, iSector);
48 merger.RefitSectorTracks(nBlocks, nThreads, iBlock, iThread, iSector);
54 merger.UnpackSectorGlobal(nBlocks, nThreads, iBlock, iThread, iSector);
60 if (iThread == 0 && iBlock == 0) {
61 merger.UnpackSaveNumber(
id);
68 merger.ResolveFindConnectedComponentsSetup(nBlocks, nThreads, iBlock, iThread);
74 merger.ResolveFindConnectedComponentsHookLinks(nBlocks, nThreads, iBlock, iThread);
80 merger.ResolveFindConnectedComponentsHookNeighbors(nBlocks, nThreads, iBlock, iThread);
86 merger.ResolveFindConnectedComponentsMultiJump(nBlocks, nThreads, iBlock, iThread);
92 merger.ResolveMergeSectors(smem, nBlocks, nThreads, iBlock, iThread, useOrigTrackParam, mergeAll);
98 merger.ClearTrackLinks(nBlocks, nThreads, iBlock, iThread,
output);
104 merger.MergeWithinSectorsPrepare(nBlocks, nThreads, iBlock, iThread);
110 merger.MergeSectorsPrepare(nBlocks, nThreads, iBlock, iThread, border0, border1, useOrigTrackParam);
113template <int32_t I,
typename... Args>
116 merger.MergeBorderTracks<I>(nBlocks, nThreads, iBlock, iThread, args...);
118#if !defined(GPUCA_GPUCODE) || defined(GPUCA_GPUCODE_DEVICE)
126 merger.MergeBorderTracks<1>(2, nThreads, iBlock & 1, iThread, iBlock / 2, withinSector, mergeMode);
132 merger.MergeCE(nBlocks, nThreads, iBlock, iThread);
138 merger.LinkExtrapolatedTracks(nBlocks, nThreads, iBlock, iThread);
144 merger.CollectMergedTracks(nBlocks, nThreads, iBlock, iThread);
150 merger.SortTracks(nBlocks, nThreads, iBlock, iThread);
156 merger.SortTracksQPt(nBlocks, nThreads, iBlock, iThread);
162 merger.SortTracksPrepare(nBlocks, nThreads, iBlock, iThread);
168 merger.PrepareClustersForFit0(nBlocks, nThreads, iBlock, iThread);
174 merger.PrepareClustersForFit1(nBlocks, nThreads, iBlock, iThread);
180 merger.PrepareClustersForFit2(nBlocks, nThreads, iBlock, iThread);
186 merger.Finalize0(nBlocks, nThreads, iBlock, iThread);
192 merger.Finalize1(nBlocks, nThreads, iBlock, iThread);
198 merger.Finalize2(nBlocks, nThreads, iBlock, iThread);
204 merger.MergeLoopersInit(nBlocks, nThreads, iBlock, iThread);
210 merger.MergeLoopersSort(nBlocks, nThreads, iBlock, iThread);
216 merger.MergeLoopersMain(nBlocks, nThreads, iBlock, iThread);
#define GPUCA_TBB_KERNEL_LOOP(rec, vartype, varname, iEnd, code)
GPUdii() void GPUTPCGMMergerTrackFit
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)