13#ifndef ITSTRACKINGGPU_VERTEXINGKERNELS_H_
14#define ITSTRACKINGGPU_VERTEXINGKERNELS_H_
28template <
int32_t nLayers>
32 const int32_t deltaROF,
34 const int32_t vertPerRofThreshold,
40 int32_t** trackletsPerClusterLUTs,
41 int32_t** trackletsPerClusterSumLUTs,
42 int32_t** trackletsPerROF,
43 const std::array<int32_t*, 2>& trackletsPerClusterLUTsHost,
44 const std::array<int32_t*, 2>& trackletsPerClusterSumLUTsHost,
45 const int32_t iteration,
47 const int32_t maxTrackletsPerCluster,
48 const int32_t nBlocks,
49 const int32_t nThreads,
52template <
int32_t nLayers>
56 const int32_t deltaROF,
58 const int vertPerRofThreshold,
65 const int32_t**
GPUrestrict() trackletsPerClusterLUTs,
66 const int32_t**
GPUrestrict() trackletsPerClusterSumLUTs,
68 const int32_t iteration,
70 const int32_t maxTrackletsPerCluster,
71 const int32_t nBlocks,
72 const int32_t nThreads,
77 const int32_t deltaROF,
84 const int32_t**
GPUrestrict() trackletsPerClusterLUTs,
85 const int32_t**
GPUrestrict() trackletsPerClusterSumLUTs,
88 const int32_t iteration,
90 const float tanLambdaCut,
91 const int32_t nBlocks,
92 const int32_t nThreads,
96 const int32_t deltaROF,
103 const int32_t**
GPUrestrict() trackletsPerClusterLUTs,
104 const int32_t**
GPUrestrict() trackletsPerClusterSumLUTs,
105 const int32_t*
GPUrestrict() linesPerClusterSumLUT,
107 const int32_t iteration,
109 const float tanLambdaCut,
110 const int32_t nBlocks,
111 const int32_t nThreads,
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 countTrackletsInROFsHandler(const IndexTableUtils< nLayers > *utils, const uint8_t *multMask, const int layer, const int startROF, const int endROF, const int maxROF, const int deltaROF, const int vertexId, const Vertex *vertices, const int *rofPV, const int nVertices, const Cluster **clusters, std::vector< unsigned int > nClusters, const int **ROFClusters, const unsigned char **usedClusters, const int **clustersIndexTables, int **trackletsLUTs, gsl::span< int * > trackletsLUTsHost, const int iteration, const float NSigmaCut, bounded_vector< float > &phiCuts, const float resolutionPV, std::array< float, nLayers > &minR, std::array< float, nLayers > &maxR, bounded_vector< float > &resolutions, std::vector< float > &radii, bounded_vector< float > &mulScatAng, o2::its::ExternalAllocator *alloc, const int nBlocks, const int nThreads, gpu::Streams &streams)
void computeTrackletsInROFsHandler(const IndexTableUtils< nLayers > *utils, const uint8_t *multMask, const int layer, const int startROF, const int endROF, const int maxROF, const int deltaROF, const int vertexId, const Vertex *vertices, const int *rofPV, const int nVertices, const Cluster **clusters, std::vector< unsigned int > nClusters, const int **ROFClusters, const unsigned char **usedClusters, const int **clustersIndexTables, Tracklet **tracklets, gsl::span< Tracklet * > spanTracklets, gsl::span< int > nTracklets, int **trackletsLUTs, gsl::span< int * > trackletsLUTsHost, const int iteration, const float NSigmaCut, bounded_vector< float > &phiCuts, const float resolutionPV, std::array< float, nLayers > &minR, std::array< float, nLayers > &maxR, bounded_vector< float > &resolutions, std::vector< float > &radii, bounded_vector< float > &mulScatAng, o2::its::ExternalAllocator *alloc, const int nBlocks, const int 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.
Common utility functions.
std::vector< Cluster > clusters