30 mTimeFrameGPU->initialise(0, trackingParams, 3, &this->mIndexTableUtils, &mTfGPUParams);
33 mTimeFrameGPU->loadIndexTableUtils(iteration);
34 mTimeFrameGPU->createUsedClustersDeviceArray(iteration, 3);
35 mTimeFrameGPU->createClustersDeviceArray(iteration, 3);
36 mTimeFrameGPU->createUnsortedClustersDeviceArray(iteration, 3);
37 mTimeFrameGPU->createClustersIndexTablesArray(iteration);
38 mTimeFrameGPU->createROFrameClustersDeviceArray(iteration);
39 for (
int iLayer{0}; iLayer < 3; ++iLayer) {
40 mTimeFrameGPU->loadClustersDevice(iteration, iLayer);
41 mTimeFrameGPU->loadUnsortedClustersDevice(iteration, iLayer);
42 mTimeFrameGPU->loadClustersIndexTables(iteration, iLayer);
43 mTimeFrameGPU->createUsedClustersDevice(iteration, iLayer);
44 mTimeFrameGPU->loadROFrameClustersDevice(iteration, iLayer);
70 if (mTimeFrameGPU->getClusters().empty()) {
75 mTimeFrameGPU->createVtxTrackletsLUTDevice(iteration);
76 countTrackletsInROFsHandler<nLayers>(mTimeFrameGPU->getDeviceIndexTableUtils(),
77 mTimeFrameGPU->getDeviceMultCutMask(),
78 mTimeFrameGPU->getNrof(),
79 this->mVrtParams[iteration].deltaRof,
80 mTimeFrameGPU->getDeviceROFramesPV(),
81 this->mVrtParams[iteration].vertPerRofThreshold,
82 mTimeFrameGPU->getDeviceArrayClusters(),
83 mTimeFrameGPU->getClusterSizes()[1],
84 mTimeFrameGPU->getDeviceROFrameClusters(),
85 (
const uint8_t**)mTimeFrameGPU->getDeviceArrayUsedClusters(),
86 mTimeFrameGPU->getDeviceArrayClustersIndexTables(),
87 mTimeFrameGPU->getDeviceArrayNTrackletsPerCluster(),
88 mTimeFrameGPU->getDeviceArrayNTrackletsPerClusterSum(),
89 mTimeFrameGPU->getDeviceArrayNTrackletsPerROF(),
90 mTimeFrameGPU->getDeviceNTrackletsPerCluster(),
91 mTimeFrameGPU->getDeviceNTrackletsPerClusterSum(),
93 this->mVrtParams[iteration].phiCut,
94 this->mVrtParams[iteration].maxTrackletsPerCluster,
95 conf.nBlocksVtxComputeTracklets[iteration],
96 conf.nThreadsVtxComputeTracklets[iteration],
97 mTimeFrameGPU->getStreams());
98 mTimeFrameGPU->createVtxTrackletsBuffers(iteration);
99 computeTrackletsInROFsHandler<nLayers>(mTimeFrameGPU->getDeviceIndexTableUtils(),
100 mTimeFrameGPU->getDeviceMultCutMask(),
101 mTimeFrameGPU->getNrof(),
102 this->mVrtParams[iteration].deltaRof,
103 mTimeFrameGPU->getDeviceROFramesPV(),
104 this->mVrtParams[iteration].vertPerRofThreshold,
105 mTimeFrameGPU->getDeviceArrayClusters(),
106 mTimeFrameGPU->getClusterSizes()[1],
107 mTimeFrameGPU->getDeviceROFrameClusters(),
108 (
const uint8_t**)mTimeFrameGPU->getDeviceArrayUsedClusters(),
109 mTimeFrameGPU->getDeviceArrayClustersIndexTables(),
110 mTimeFrameGPU->getDeviceArrayTracklets(),
111 (
const int32_t**)mTimeFrameGPU->getDeviceArrayNTrackletsPerCluster(),
112 (
const int32_t**)mTimeFrameGPU->getDeviceArrayNTrackletsPerClusterSum(),
113 (
const int32_t**)mTimeFrameGPU->getDeviceArrayNTrackletsPerROF(),
115 this->mVrtParams[iteration].phiCut,
116 this->mVrtParams[iteration].maxTrackletsPerCluster,
117 conf.nBlocksVtxComputeTracklets[iteration],
118 conf.nThreadsVtxComputeTracklets[iteration],
119 mTimeFrameGPU->getStreams());
125 if (!mTimeFrameGPU->getTotalTrackletsTF(0) || !mTimeFrameGPU->getTotalTrackletsTF(1)) {
130 mTimeFrameGPU->createVtxLinesLUTDevice(iteration);
132 this->mVrtParams[iteration].deltaRof,
133 mTimeFrameGPU->getClusterSizes()[1],
134 mTimeFrameGPU->getDeviceROFrameClusters(),
135 mTimeFrameGPU->getDeviceArrayClusters(),
136 mTimeFrameGPU->getDeviceArrayUsedClusters(),
137 (
const Tracklet**)mTimeFrameGPU->getDeviceArrayTracklets(),
138 mTimeFrameGPU->getDeviceUsedTracklets(),
139 (
const int32_t**)mTimeFrameGPU->getDeviceArrayNTrackletsPerCluster(),
140 (
const int32_t**)mTimeFrameGPU->getDeviceArrayNTrackletsPerClusterSum(),
141 mTimeFrameGPU->getDeviceNLinesPerCluster(),
142 mTimeFrameGPU->getDeviceNLinesPerClusterSum(),
144 this->mVrtParams[iteration].phiCut,
145 this->mVrtParams[iteration].tanLambdaCut,
146 conf.nBlocksVtxComputeMatching[iteration],
147 conf.nThreadsVtxComputeMatching[iteration],
148 mTimeFrameGPU->getStreams());
149 mTimeFrameGPU->createVtxLinesBuffer(iteration);
151 this->mVrtParams[iteration].deltaRof,
152 mTimeFrameGPU->getClusterSizes()[1],
153 mTimeFrameGPU->getDeviceROFrameClusters(),
154 mTimeFrameGPU->getDeviceArrayClusters(),
156 (
const Tracklet**)mTimeFrameGPU->getDeviceArrayTracklets(),
157 mTimeFrameGPU->getDeviceUsedTracklets(),
158 (
const int32_t**)mTimeFrameGPU->getDeviceArrayNTrackletsPerCluster(),
159 (
const int32_t**)mTimeFrameGPU->getDeviceArrayNTrackletsPerClusterSum(),
160 (
const int32_t*)mTimeFrameGPU->getDeviceNLinesPerClusterSum(),
161 mTimeFrameGPU->getDeviceLines(),
163 this->mVrtParams[iteration].phiCut,
164 this->mVrtParams[iteration].tanLambdaCut,
165 conf.nBlocksVtxComputeMatching[iteration],
166 conf.nThreadsVtxComputeMatching[iteration],
167 mTimeFrameGPU->getStreams());
void computeTrackletsMatchingInROFsHandler(const int32_t nRofs, const int32_t deltaROF, const uint32_t nClusters, const int32_t **GPUrestrict() ROFClusters, const Cluster **GPUrestrict() clusters, const uint8_t **GPUrestrict() usedClusters, const Tracklet **GPUrestrict() foundTracklets, uint8_t *GPUrestrict() usedTracklets, const int32_t **GPUrestrict() trackletsPerClusterLUTs, const int32_t **GPUrestrict() trackletsPerClusterSumLUTs, const int32_t *GPUrestrict() linesPerClusterSumLUT, Line *GPUrestrict() lines, const int32_t iteration, const float phiCut, const float tanLambdaCut, const int32_t nBlocks, const int32_t nThreads, gpu::Streams &streams)
void countTrackletsMatchingInROFsHandler(const int32_t nRofs, const int32_t deltaROF, const uint32_t nClusters, const int32_t **GPUrestrict() ROFClusters, const Cluster **GPUrestrict() clusters, uint8_t **GPUrestrict() usedClusters, const Tracklet **GPUrestrict() foundTracklets, uint8_t *GPUrestrict() usedTracklets, const int32_t **GPUrestrict() trackletsPerClusterLUTs, const int32_t **GPUrestrict() trackletsPerClusterSumLUTs, int32_t *GPUrestrict() linesPerClusterLUT, int32_t *GPUrestrict() linesPerClusterSumLUT, const int32_t iteration, const float phiCut, const float tanLambdaCut, const int32_t nBlocks, const int32_t nThreads, gpu::Streams &streams)
Selection.