16#ifndef TRACKINGITSU_INCLUDE_TRACKERTRAITS_H_
17#define TRACKINGITSU_INCLUDE_TRACKERTRAITS_H_
19#include <oneapi/tbb.h>
72 virtual void findRoads(
const int iteration);
74 template <
typename InputSeed>
85 virtual void setBz(
float bz);
87 virtual const char*
getName() const noexcept {
return "CPU"; }
88 virtual bool isGPU() const noexcept {
return false; }
89 void setMemoryPool(std::shared_ptr<BoundedMemoryResource> pool)
noexcept { mMemoryPool = pool; }
93 void setNThreads(
int n, std::shared_ptr<tbb::task_arena>& arena);
102 std::shared_ptr<BoundedMemoryResource> mMemoryPool;
121 const Cluster*
const* unsortedClusters,
Cross-timeframe output-size prediction.
Hypothesis search used by CPU and GPU track extension.
o2::gpu::GPUChainITS * mChain
void markTracks(int iteration)
TimeFrame< NLayers > * mTimeFrame
virtual void findRoads(const int iteration)
virtual const char * getName() const noexcept
void updateTrackingParameters(const std::vector< TrackingParameters > &trkPars)
virtual void adoptTimeFrame(TimeFrame< NLayers > *tf)
virtual int getTFNumberOfClusters() const
virtual void findCellsNeighbours(const int iteration)
void setMemoryPool(std::shared_ptr< BoundedMemoryResource > pool) noexcept
virtual int getTFNumberOfTracklets() const
TrackSeed< NLayers > TrackSeedN
virtual void computeLayerCells(const int iteration)
virtual void initialiseTimeFrame(const int iteration)
void processNeighbours(int iteration, int defaultCellTopologyId, int iLevel, uint64_t capacityKey, const bounded_vector< InputSeed > ¤tSeeds, bounded_vector< RoadSeedN > &updatedSeeds)
std::vector< TrackingParameters > mTrkParams
virtual void setBz(float bz)
void setNThreads(int n, std::shared_ptr< tbb::task_arena > &arena)
virtual bool isGPU() const noexcept
void acceptTracks(int iteration, bounded_vector< TrackITSExt > &tracks, const bounded_vector< int > &trackIndices, bounded_vector< bounded_vector< int > > &firstClusters)
std::shared_ptr< tbb::task_arena > mTaskArena
bool finaliseTrackSeed(const TrackSeedN &seed, TrackITSExt &track, const int iteration, const TrackingFrameInfo *const *tfInfos, const Cluster *const *unsortedClusters, const o2::base::Propagator *propagator, const TrackFollowContext< NLayers > &followCtx, TrackFollowerScratch &scratch)
virtual int getTFNumberOfCells() const
virtual void computeLayerTracklets(const int iteration, int iVertex)
auto getMemoryPool() const noexcept
virtual ~TrackerTraits()=default
constexpr int UnusedIndex
std::pmr::vector< T > bounded_vector
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
std::unique_ptr< GPUReconstructionTimeframe > tf
TrackSeed< NLayers > seed
RoadSeed(TrackSeed< NLayers > &&inputSeed, int inputCellId, int inputCellTopologyId)
bounded_vector< TrackExtensionHypothesis< NLayers > > activeHypotheses
TrackFollowerScratch(std::pmr::memory_resource *memoryResource)
bounded_vector< TrackExtensionHypothesis< NLayers > > nextHypotheses