13#ifndef ITSTRACKINGGPU_TRACKINGKERNELS_H_
14#define ITSTRACKINGGPU_TRACKINGKERNELS_H_
25GPUd() bool fitTrack(TrackITSExt& track,
34 TrackingFrameInfo** tfInfos,
35 const
o2::base::Propagator* prop,
38template <
int nLayers = 7>
39GPUg()
void fitTrackSeedsKernel(
41 const TrackingFrameInfo** foundTrackingFrameInfo,
42 o2::its::TrackITSExt* tracks,
44 const
unsigned int nSeeds,
47 float maxChi2ClusterAttachment,
49 const
o2::base::Propagator* propagator,
54template <
int nLayers = 7>
56 const uint8_t* multMask,
67 const int** ROFClusters,
68 const unsigned char** usedClusters,
69 const int** clustersIndexTables,
71 gsl::span<int*> trackletsLUTsHost,
73 const float NSigmaCut,
74 std::vector<float>& phiCuts,
75 const float resolutionPV,
76 std::vector<float>& minR,
77 std::vector<float>& maxR,
78 std::vector<float>& resolutions,
79 std::vector<float>& radii,
80 std::vector<float>& mulScatAng,
84template <
int nLayers = 7>
86 const uint8_t* multMask,
97 const int** ROFClusters,
98 const unsigned char** usedClusters,
99 const int** clustersIndexTables,
101 gsl::span<Tracklet*> spanTracklets,
102 gsl::span<int> nTracklets,
104 gsl::span<int*> trackletsLUTsHost,
106 const float NSigmaCut,
107 std::vector<float>& phiCuts,
108 const float resolutionPV,
109 std::vector<float>& minR,
110 std::vector<float>& maxR,
111 std::vector<float>& resolutions,
112 std::vector<float>& radii,
113 std::vector<float>& mulScatAng,
118 const Cluster** unsortedClusters,
119 const TrackingFrameInfo** tfInfo,
122 const int nTracklets,
125 int** cellsLUTsDeviceArray,
128 const float maxChi2ClusterAttachment,
129 const float cellDeltaTanLambdaSigma,
130 const float nSigmaCut,
135 const Cluster** unsortedClusters,
136 const TrackingFrameInfo** tfInfo,
139 const int nTracklets,
142 int** cellsLUTsDeviceArray,
145 const float maxChi2ClusterAttachment,
146 const float cellDeltaTanLambdaSigma,
147 const float nSigmaCut,
155 int* neighboursIndexTable,
156 const float maxChi2ClusterAttachment,
158 const int layerIndex,
159 const unsigned int nCells,
160 const unsigned int nCellsNext,
161 const int maxCellNeighbours,
169 int* neighboursIndexTable,
170 const float maxChi2ClusterAttachment,
172 const int layerIndex,
173 const unsigned int nCells,
174 const unsigned int nCellsNext,
175 const int maxCellNeighbours,
184template <
int nLayers = 7>
186 const int startLevel,
189 std::array<int, nLayers - 2>& nCells,
190 const unsigned char** usedClusters,
191 std::array<int*, nLayers - 2>& neighbours,
192 gsl::span<int*> neighboursDeviceLUTs,
193 const TrackingFrameInfo** foundTrackingFrameInfo,
194 std::vector<CellSeed>& seedsHost,
196 const float MaxChi2ClusterAttachment,
197 const float maxChi2NDF,
204 const TrackingFrameInfo** foundTrackingFrameInfo,
206 std::vector<float>& minPtsHost,
207 const unsigned int nSeeds,
209 const int startLevel,
210 float maxChi2ClusterAttachment,
GLenum GLuint GLint GLint layer
void computeTrackletsInROFsHandler(const IndexTableUtils *utils, const uint8_t *multMask, 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, std::vector< float > &phiCuts, const float resolutionPV, std::vector< float > &minR, std::vector< float > &maxR, std::vector< float > &resolutions, std::vector< float > &radii, std::vector< float > &mulScatAng, const int nBlocks, const int nThreads)
void processNeighboursHandler(const int startLayer, const int startLevel, CellSeed **allCellSeeds, CellSeed *currentCellSeeds, std::array< int, nLayers - 2 > &nCells, const unsigned char **usedClusters, std::array< int *, nLayers - 2 > &neighbours, gsl::span< int * > neighboursDeviceLUTs, const TrackingFrameInfo **foundTrackingFrameInfo, std::vector< CellSeed > &seedsHost, const float bz, const float MaxChi2ClusterAttachment, const float maxChi2NDF, const o2::base::Propagator *propagator, const o2::base::PropagatorF::MatCorrType matCorrType, const int nBlocks, const int nThreads)
void computeCellsHandler(const Cluster **sortedClusters, const Cluster **unsortedClusters, const TrackingFrameInfo **tfInfo, Tracklet **tracklets, int **trackletsLUT, const int nTracklets, const int layer, CellSeed *cells, int **cellsLUTsDeviceArray, int *cellsLUTsHost, const float bz, const float maxChi2ClusterAttachment, const float cellDeltaTanLambdaSigma, const float nSigmaCut, const int nBlocks, const int nThreads)
void computeCellNeighboursHandler(CellSeed **cellsLayersDevice, int *neighboursLUTs, int **cellsLUTs, gpuPair< int, int > *cellNeighbours, int *neighboursIndexTable, const float maxChi2ClusterAttachment, const float bz, const int layerIndex, const unsigned int nCells, const unsigned int nCellsNext, const int maxCellNeighbours, const int nBlocks, const int nThreads)
unsigned int countCellNeighboursHandler(CellSeed **cellsLayersDevice, int *neighboursLUTs, int **cellsLUTs, gpuPair< int, int > *cellNeighbours, int *neighboursIndexTable, const float maxChi2ClusterAttachment, const float bz, const int layerIndex, const unsigned int nCells, const unsigned int nCellsNext, const int maxCellNeighbours, const int nBlocks, const int nThreads)
void countTrackletsInROFsHandler(const IndexTableUtils *utils, const uint8_t *multMask, 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, std::vector< float > &phiCuts, const float resolutionPV, std::vector< float > &minR, std::vector< float > &maxR, std::vector< float > &resolutions, std::vector< float > &radii, std::vector< float > &mulScatAng, const int nBlocks, const int nThreads)
void trackSeedHandler(CellSeed *trackSeeds, const TrackingFrameInfo **foundTrackingFrameInfo, o2::its::TrackITSExt *tracks, std::vector< float > &minPtsHost, const unsigned int nSeeds, const float Bz, const int startLevel, float maxChi2ClusterAttachment, float maxChi2NDF, const o2::base::Propagator *propagator, const o2::base::PropagatorF::MatCorrType matCorrType, const int nBlocks, const int nThreads)
int filterCellNeighboursHandler(std::vector< int > &, gpuPair< int, int > *, int *, unsigned int)
void countCellsHandler(const Cluster **sortedClusters, const Cluster **unsortedClusters, const TrackingFrameInfo **tfInfo, Tracklet **tracklets, int **trackletsLUT, const int nTracklets, const int layer, CellSeed *cells, int **cellsLUTsDeviceArray, int *cellsLUTsHost, const float bz, const float maxChi2ClusterAttachment, const float cellDeltaTanLambdaSigma, const float nSigmaCut, const int nBlocks, const int nThreads)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
Common utility functions.
std::vector< Cluster > clusters
std::vector< Cell > cells
std::vector< Tracklet64 > tracklets