19#ifndef ALICE3_INCLUDE_TRACKERACTS_H_
20#define ALICE3_INCLUDE_TRACKERACTS_H_
22#include "Acts/Definitions/Units.hpp"
34 float minPt = 0.4f * Acts::UnitConstants::GeV;
45 float zMin = -3000.f * Acts::UnitConstants::mm;
46 float zMax = 3000.f * Acts::UnitConstants::mm;
67 float r()
const {
return std::hypot(
x,
y); }
69 float phi()
const {
return std::atan2(
y,
x); }
92 if (mHistSpacePoints) {
93 mHistSpacePoints->SaveAs(
"/tmp/mHistSpacePoints.C");
94 delete mHistSpacePoints;
95 mHistSpacePoints =
nullptr;
120 TH2F* mHistSpacePoints =
nullptr;
123 void buildSpacePoints(
int rof);
135 void computeTracksMClabels();
138 template <
typename Func>
139 float evaluateTask(Func&& task, std::string_view taskName);
148 std::vector<SpacePoint> mSpacePoints;
149 std::vector<std::vector<const SpacePoint*>> mSpacePointsPerLayer;
152 std::vector<SeedACTS> mSeeds;
156 unsigned int mTimeFrameCounter{0};
157 double mTotalTime{0.};
161 SpacePointBuilding = 0,
166 State mCurState{SpacePointBuilding};
167 static constexpr std::array<const char*, NStates> StateNames{
168 "Space point building",
173template <
int nLayers>
174template <
typename Func>
175float TrackerACTS<nLayers>::evaluateTask(Func&& task, std::string_view taskName)
177 LOG(
debug) <<
" + Starting " << taskName;
178 const auto start = std::chrono::high_resolution_clock::now();
180 const auto end = std::chrono::high_resolution_clock::now();
181 std::chrono::duration<double, std::milli> diff{
end -
start};
183 LOG(
debug) <<
" - " << taskName <<
" completed in: " << std::fixed << std::setprecision(2) << diff.count() <<
" ms";
184 return static_cast<float>(diff.count());
TRK Tracker using ACTS algorithms for seeding and track finding.
void setBz(float bz)
Set the magnetic field strength.
void setConfig(const TrackerACTSConfig &cfg)
Configuration.
void clustersToTracks()
Main tracking entry point: convert clusters to tracks.
void adoptTimeFrame(o2::its::TimeFrame< nLayers > &tf)
Adopt a TimeFrame for processing.
void printSummary() const
Print tracking summary.
TrackerACTSConfig & getConfig()
float getBz() const
Get the magnetic field strength.
const TrackerACTSConfig & getConfig() const
GLdouble GLdouble GLdouble GLdouble top
GLenum GLuint GLint GLint layer
GLdouble GLdouble GLdouble z
std::unique_ptr< GPUReconstructionTimeframe > tf
Seed (triplet of space points)
const SpacePoint * middle
Space point representation for tracking.
Configuration for the ACTS-based tracker.
float deltaRMinBottom
Min deltaR for bottom-middle.
float minPt
Minimum pT for seeds.
float deltaPhiMax
Maximum phi difference for doublets.
float deltaRMinTop
Min deltaR for middle-top.
float maxImpactParameter
Maximum impact parameter.
float deltaRMaxBottom
Max deltaR for bottom-middle.
float deltaRMaxTop
Max deltaR for middle-top.
float maxSeedsPerMiddleSP
float cotThetaMax
Maximum cot(theta), corresponds to eta ~4.
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"