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,
89template <
int nLayers = 7>
91 const uint8_t* multMask,
102 const int** ROFClusters,
103 const unsigned char** usedClusters,
104 const int** clustersIndexTables,
106 gsl::span<Tracklet*> spanTracklets,
107 gsl::span<int> nTracklets,
109 gsl::span<int*> trackletsLUTsHost,
111 const float NSigmaCut,
113 const float resolutionPV,
114 std::array<float, nLayers>& minR,
115 std::array<float, nLayers>& maxR,
117 std::vector<float>& radii,
123 const Cluster** unsortedClusters,
127 const int nTracklets,
130 int** cellsLUTsDeviceArray,
133 const float maxChi2ClusterAttachment,
134 const float cellDeltaTanLambdaSigma,
135 const float nSigmaCut,
140 const Cluster** unsortedClusters,
144 const int nTracklets,
147 int** cellsLUTsDeviceArray,
150 const float maxChi2ClusterAttachment,
151 const float cellDeltaTanLambdaSigma,
152 const float nSigmaCut,
160 int* neighboursIndexTable,
161 const float maxChi2ClusterAttachment,
163 const int layerIndex,
164 const unsigned int nCells,
165 const unsigned int nCellsNext,
166 const int maxCellNeighbours,
174 int* neighboursIndexTable,
175 const float maxChi2ClusterAttachment,
177 const int layerIndex,
178 const unsigned int nCells,
179 const unsigned int nCellsNext,
180 const int maxCellNeighbours,
189template <
int nLayers = 7>
191 const int startLevel,
194 std::array<int, nLayers - 2>& nCells,
195 const unsigned char** usedClusters,
196 std::array<int*, nLayers - 2>& neighbours,
197 gsl::span<int*> neighboursDeviceLUTs,
202 const float MaxChi2ClusterAttachment,
203 const float maxChi2NDF,
212 std::vector<float>& minPtsHost,
213 const unsigned int nSeeds,
215 const int startLevel,
216 float maxChi2ClusterAttachment,
GLenum GLuint GLint GLint layer
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)
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)
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 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