16#ifndef TRACKINGITSU_INCLUDE_TRACKERTRAITS_H_
17#define TRACKINGITSU_INCLUDE_TRACKERTRAITS_H_
58 virtual void findRoads(
const int iteration);
59 virtual void initialiseTimeFrameHybrid(
const int iteration) { LOGP(error,
"initialiseTimeFrameHybrid: this method should never be called with CPU traits"); }
60 virtual void computeTrackletsHybrid(
const int iteration,
int,
int) { LOGP(error,
"computeTrackletsHybrid: this method should never be called with CPU traits"); }
61 virtual void computeCellsHybrid(
const int iteration) { LOGP(error,
"computeCellsHybrid: this method should never be called with CPU traits"); }
62 virtual void findCellsNeighboursHybrid(
const int iteration) { LOGP(error,
"findCellsNeighboursHybrid: this method should never be called with CPU traits"); }
63 virtual void findRoadsHybrid(
const int iteration) { LOGP(error,
"findRoadsHybrid: this method should never be called with CPU traits"); }
64 virtual void findTracksHybrid(
const int iteration) { LOGP(error,
"findTracksHybrid: this method should never be called with CPU traits"); }
65 virtual void findTracks() { LOGP(error,
"findTracks: this method is deprecated."); }
68 virtual void setBz(
float bz);
70 virtual void processNeighbours(
int iLayer,
int iLevel,
const std::vector<CellSeed>& currentCellSeed,
const std::vector<int>& currentCellId, std::vector<CellSeed>& updatedCellSeed, std::vector<int>& updatedCellId);
81 GPUhd() static consteval
int4 getEmptyBinsRect() {
return int4{0, 0, 0, 0}; }
83 const int4 getBinsRect(
int layer,
float phi,
float maxdeltaphi,
float z,
float maxdeltaz)
const noexcept;
84 const int4 getBinsRect(
int layer,
float phi,
float maxdeltaphi,
float z1,
float z2,
float maxdeltaz)
const noexcept;
105 bool mApplySmoothing =
false;
133 return getBinsRect(layerIndex, phi, maxdeltaphi,
z,
z, maxdeltaz);
138 return getBinsRect(layerIndex, currentCluster.phi, maxdeltaphi, z1, z2, maxdeltaz);
143 const float zRangeMin = o2::gpu::GPUCommonMath::Min(z1, z2) - maxdeltaz;
145 const float zRangeMax = o2::gpu::GPUCommonMath::Max(z1, z2) + maxdeltaz;
148 if (zRangeMax < -mTrkParams[0].LayerZ[layerIndex] ||
149 zRangeMin > mTrkParams[0].LayerZ[layerIndex] || zRangeMin > zRangeMax) {
150 return getEmptyBinsRect();
154 return int4{o2::gpu::GPUCommonMath::Max(0,
utils.getZBinIndex(layerIndex, zRangeMin)),
155 utils.getPhiBinIndex(math_utils::getNormalizedPhi(phiRangeMin)),
156 o2::gpu::GPUCommonMath::Min(mTrkParams[0].ZBins - 1,
utils.getZBinIndex(layerIndex, zRangeMax)),
157 utils.getPhiBinIndex(math_utils::getNormalizedPhi(phiRangeMax))};
Declarations for the wrapper for the set of cylindrical material layers.
void initialise(const int iteration, const TrackingParameters &trkParam, const int maxLayers=7, bool resetVertices=true)
virtual void findRoads(const int iteration)
virtual void processNeighbours(int iLayer, int iLevel, const std::vector< CellSeed > ¤tCellSeed, const std::vector< int > ¤tCellId, std::vector< CellSeed > &updatedCellSeed, std::vector< int > &updatedCellId)
virtual void extendTracks(const int iteration)
void setSmoothing(bool v)
virtual int getTFNumberOfCells() const
o2::gpu::GPUChainITS * getChain() const
virtual void adoptTimeFrame(TimeFrame *tf)
virtual void computeLayerTracklets(const int iteration, int iROFslice, int iVertex)
virtual void setBz(float bz)
virtual void computeCellsHybrid(const int iteration)
o2::gpu::GPUChainITS * mChain
virtual int getTFNumberOfTracklets() const
void SetRecoChain(o2::gpu::GPUChainITS *chain)
virtual void findRoadsHybrid(const int iteration)
virtual void computeTrackletsHybrid(const int iteration, int, int)
virtual void findCellsNeighbours(const int iteration)
virtual void findTracksHybrid(const int iteration)
virtual int getTFNumberOfClusters() const
virtual void findShortPrimaries()
virtual void initialiseTimeFrame(const int iteration)
virtual void initialiseTimeFrameHybrid(const int iteration)
virtual ~TrackerTraits()=default
void UpdateTrackingParameters(const std::vector< TrackingParameters > &trkPars)
TimeFrame * getTimeFrame()
virtual void findCellsNeighboursHybrid(const int iteration)
const int4 getBinsRect(const Cluster &, int layer, float z1, float z2, float maxdeltaz, float maxdeltaphi) const noexcept
std::vector< TrackingParameters > mTrkParams
o2::base::PropagatorImpl< float >::MatCorrType mCorrType
bool getSmoothing() const
void setIsGPU(const unsigned char isgpu)
void setCorrType(const o2::base::PropagatorImpl< float >::MatCorrType type)
GPUhd() static const eval int4 getEmptyBinsRect()
virtual void findTracks()
virtual bool trackFollowing(TrackITSExt *track, int rof, bool outward, const int iteration)
virtual void computeLayerCells(const int iteration)
GLint GLint GLsizei GLint GLenum GLenum type
GLenum GLuint GLint GLint layer
GLdouble GLdouble GLdouble z
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
Common utility functions.
std::unique_ptr< GPUReconstructionTimeframe > tf