13#ifndef ITSTRACKINGGPU_TRACKINGKERNELS_H_
14#define ITSTRACKINGGPU_TRACKINGKERNELS_H_
22class ExternalAllocator;
30GPUd() bool fitTrack(TrackITSExt& track,
39 TrackingFrameInfo** tfInfos,
40 const
o2::base::Propagator* prop,
43template <
int nLayers = 7>
44GPUg()
void fitTrackSeedsKernel(
46 const TrackingFrameInfo** foundTrackingFrameInfo,
47 o2::its::TrackITSExt* tracks,
49 const
unsigned int nSeeds,
52 float maxChi2ClusterAttachment,
54 const
o2::base::Propagator* propagator,
59template <
int nLayers = 7>
61 const uint8_t* multMask,
72 const int** ROFClusters,
73 const unsigned char** usedClusters,
74 const int** clustersIndexTables,
76 gsl::span<int*> trackletsLUTsHost,
78 const float NSigmaCut,
80 const float resolutionPV,
81 std::array<float, nLayers>& minR,
82 std::array<float, nLayers>& maxR,
84 std::vector<float>& radii,
90template <
int nLayers = 7>
92 const uint8_t* multMask,
103 const int** ROFClusters,
104 const unsigned char** usedClusters,
105 const int** clustersIndexTables,
107 gsl::span<Tracklet*> spanTracklets,
108 gsl::span<int> nTracklets,
110 gsl::span<int*> trackletsLUTsHost,
112 const float NSigmaCut,
114 const float resolutionPV,
115 std::array<float, nLayers>& minR,
116 std::array<float, nLayers>& maxR,
118 std::vector<float>& radii,
125 const Cluster** unsortedClusters,
129 const int nTracklets,
132 int** cellsLUTsDeviceArray,
135 const float maxChi2ClusterAttachment,
136 const float cellDeltaTanLambdaSigma,
137 const float nSigmaCut,
142 const Cluster** unsortedClusters,
146 const int nTracklets,
149 int** cellsLUTsDeviceArray,
152 const float maxChi2ClusterAttachment,
153 const float cellDeltaTanLambdaSigma,
154 const float nSigmaCut,
162 int* neighboursIndexTable,
163 const float maxChi2ClusterAttachment,
165 const int layerIndex,
166 const unsigned int nCells,
167 const unsigned int nCellsNext,
168 const int maxCellNeighbours,
176 int* neighboursIndexTable,
177 const float maxChi2ClusterAttachment,
179 const int layerIndex,
180 const unsigned int nCells,
181 const unsigned int nCellsNext,
182 const int maxCellNeighbours,
191template <
int nLayers = 7>
193 const int startLevel,
196 std::array<int, nLayers - 2>& nCells,
197 const unsigned char** usedClusters,
198 std::array<int*, nLayers - 2>& neighbours,
199 gsl::span<int*> neighboursDeviceLUTs,
204 const float MaxChi2ClusterAttachment,
205 const float maxChi2NDF,
214 std::vector<float>& minPtsHost,
215 const unsigned int nSeeds,
217 const int startLevel,
218 float maxChi2ClusterAttachment,
GLenum GLuint GLint GLint layer
int filterCellNeighboursHandler(gpuPair< int, int > *, int *, unsigned int, o2::its::ExternalAllocator *=nullptr)
std::pmr::vector< T > bounded_vector
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, 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, const int nBlocks, const int nThreads, gpu::Streams &streams)
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 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)
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, bounded_vector< CellSeed > &seedsHost, o2::its::ExternalAllocator *, 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 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, 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, const int nBlocks, const int nThreads, gpu::Streams &streams)
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