16#ifndef TRACKINGITSU_INCLUDE_TRACKER_H_
17#define TRACKINGITSU_INCLUDE_TRACKER_H_
64 std::function<
void(std::string s)> = [](std::string s) { std::cout << s << std::endl; }, std::function<
void(std::string s)> = [](std::string s) { std::cerr << s << std::endl; });
66 std::function<
void(std::string s)> = [](std::string s) { std::cout << s << std::endl; }, std::function<
void(std::string s)> = [](std::string s) { std::cerr << s << std::endl; });
80 void initialiseTimeFrame(
int& iteration);
81 void computeTracklets(
int& iteration,
int& iROFslice,
int& iVertex);
82 void computeCells(
int& iteration);
83 void findCellsNeighbours(
int& iteration);
84 void findRoads(
int& iteration);
86 void initialiseTimeFrameHybrid(
int& iteration);
87 void computeTrackletsHybrid(
int& iteration,
int& iROFslice,
int& iVertex);
88 void computeCellsHybrid(
int& iteration);
89 void findCellsNeighboursHybrid(
int& iteration);
90 void findRoadsHybrid(
int& iteration);
91 void findTracksHybrid(
int& iteration);
93 void findShortPrimaries();
95 void extendTracks(
int& iteration);
98 void computeRoadsMClabels();
99 void computeTracksMClabels();
100 void rectifyClusterIndices();
102 template <
typename... T>
108 std::vector<TrackingParameters> mTrkParams;
111 unsigned int mNumberOfRuns{0};
116 mTrkParams = trkPars;
119template <
typename... T>
126 auto start = std::chrono::high_resolution_clock::now();
127 (this->*task)(std::forward<T>(args)...);
128 auto end = std::chrono::high_resolution_clock::now();
130 std::chrono::duration<double, std::milli> diff_t{
end -
start};
131 diff = diff_t.count();
133 std::stringstream sstream;
134 if (taskName ==
nullptr) {
135 sstream << diff <<
"\t";
137 sstream << std::setw(2) <<
" - " << taskName <<
" completed in: " << diff <<
" ms";
139 logger(sstream.str());
141 if (mTrkParams[0].SaveTimeBenchmarks) {
142 std::stringstream str2file;
143 std::string taskNameStr(taskName);
144 std::transform(taskNameStr.begin(), taskNameStr.end(), taskNameStr.begin(),
145 [](
unsigned char c) { return std::tolower(c); });
146 std::replace(taskNameStr.begin(), taskNameStr.end(),
' ',
'_');
147 str2file << taskNameStr <<
"\t" << diff;
149 file.open(
"its_time_benchmarks.txt", std::ios::app);
150 file << str2file.str() << std::endl;
155 (this->*task)(std::forward<T>(args)...);
Definition of the ITS track.
void adoptTimeFrame(TimeFrame &tf)
void setCorrType(const o2::base::PropagatorImpl< float >::MatCorrType type)
Tracker & operator=(const Tracker &)=delete
std::uint32_t mTimeFrameCounter
void setParameters(const std::vector< TrackingParameters > &)
std::vector< TrackITSExt > & getTracks()
void clustersToTracksHybrid(std::function< void(std::string s)>=[](std::string s) { std::cout<< s<< std::endl;}, std::function< void(std::string s)>=[](std::string s) { std::cerr<< s<< std::endl;})
void clustersToTracks(std::function< void(std::string s)>=[](std::string s) { std::cout<< s<< std::endl;}, std::function< void(std::string s)>=[](std::string s) { std::cerr<< s<< std::endl;})
std::vector< TrackingParameters > & getParameters()
void getGlobalConfiguration()
Tracker(const Tracker &)=delete
GLsizei const GLchar *const * string
GLint GLint GLsizei GLint GLenum GLenum type
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)
constexpr bool DoTimeBenchmarks
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
Defining DataPointCompositeObject explicitly as copiable.
std::unique_ptr< GPUReconstructionTimeframe > tf