2626#include < utility>
2727#include < functional>
2828
29+ #include " DetectorsBase/Propagator.h"
30+ #include " DetectorsBase/MatLayerCylSet.h"
2931#include " ITStracking/Configuration.h"
3032#include " ITStracking/Definitions.h"
3133#include " ITStracking/MathUtils.h"
@@ -50,29 +52,44 @@ class TrackerTraits
5052{
5153 public:
5254 virtual ~TrackerTraits () = default ;
55+ virtual void computeLayerTracklets (const int iteration);
56+ virtual void computeLayerCells (const int iteration);
57+ virtual void findCellsNeighbours (const int iteration);
58+ virtual void findRoads (const int iteration);
59+ virtual void findTracks (const int iteration);
60+ virtual void extendTracks (const int iteration);
61+ virtual void refitTracks (const int iteration, const std::vector<std::vector<TrackingFrameInfo>>&, std::vector<TrackITSExt>&);
62+ virtual bool trackFollowing (TrackITSExt* track, int rof, bool outward, const int iteration);
5363
64+ void UpdateTrackingParameters (const std::vector<TrackingParameters>& trkPars);
65+ TimeFrame* getTimeFrame () { return mTimeFrame ; }
66+ void adoptTimeFrame (TimeFrame* tf) { mTimeFrame = tf; }
67+ void setBz (float bz);
68+ float getBz () const ;
69+ void setCorrType (const o2::base::PropagatorImpl<float >::MatCorrType& type) { mCorrType = type; }
70+ bool isMatLUT () const ;
71+
72+ // Others
5473 GPUhd () static constexpr int4 getEmptyBinsRect () { return int4{0 , 0 , 0 , 0 }; }
5574 const int4 getBinsRect (const Cluster&, int layer, float z1, float z2, float maxdeltaz, float maxdeltaphi);
5675 const int4 getBinsRect (int layer, float phi, float maxdeltaphi, float z, float maxdeltaz);
5776 const int4 getBinsRect (int layer, float phi, float maxdeltaphi, float z1, float z2, float maxdeltaz);
58-
5977 void SetRecoChain (o2::gpu::GPUChainITS* chain, FuncRunITSTrackFit_t&& funcRunITSTrackFit)
6078 {
6179 mChainRunITSTrackFit = funcRunITSTrackFit;
6280 mChain = chain;
6381 }
82+ void setSmoothing (bool v) { mApplySmoothing = v; }
83+ bool getSmoothing () const { return mApplySmoothing ; }
6484
65- virtual void computeLayerTracklets (const int iteration);
66- virtual void computeLayerCells (const int iteration);
67- virtual void refitTracks (const int iteration, const std::vector<std::vector<TrackingFrameInfo>>&, std::vector<TrackITSExt>&);
68- virtual bool trackFollowing (TrackITSExt* track, int rof, bool outward, const int iteration);
69-
70- void UpdateTrackingParameters (const std::vector<TrackingParameters>& trkPars);
71- TimeFrame* getTimeFrame () { return mTimeFrame ; }
72- void adoptTimeFrame (TimeFrame* tf) { mTimeFrame = tf; }
85+ private:
86+ void traverseCellsTree (const int , const int );
87+ track::TrackParCov buildTrackSeed (const Cluster& cluster1, const Cluster& cluster2, const Cluster& cluster3, const TrackingFrameInfo& tf3, float resolution);
88+ bool fitTrack (TrackITSExt& track, int start, int end, int step, const float chi2cut = o2::constants::math::VeryBig, const float maxQoverPt = o2::constants::math::VeryBig);
7389
74- // GPU-specific interfaces
75- virtual void loadToDevice (){};
90+ bool mApplySmoothing = false ;
91+ o2::base::PropagatorImpl<float >::MatCorrType mCorrType = o2::base::PropagatorImpl<float >::MatCorrType::USEMatCorrNONE;
92+ float mBz = 5 .f;
7693
7794 protected:
7895 TimeFrame* mTimeFrame ;
@@ -82,19 +99,22 @@ class TrackerTraits
8299 FuncRunITSTrackFit_t mChainRunITSTrackFit ;
83100};
84101
102+ inline float TrackerTraits::getBz () const
103+ {
104+ return mBz ;
105+ }
106+
85107inline void TrackerTraits::UpdateTrackingParameters (const std::vector<TrackingParameters>& trkPars)
86108{
87109 mTrkParams = trkPars;
88110}
89111
90- inline const int4 TrackerTraits::getBinsRect (const int layerIndex, float phi, float maxdeltaphi,
91- float z, float maxdeltaz)
112+ inline const int4 TrackerTraits::getBinsRect (const int layerIndex, float phi, float maxdeltaphi, float z, float maxdeltaz)
92113{
93114 return getBinsRect (layerIndex, phi, maxdeltaphi, z, z, maxdeltaz);
94115}
95116
96- inline const int4 TrackerTraits::getBinsRect (const Cluster& currentCluster, int layerIndex,
97- float z1, float z2, float maxdeltaz, float maxdeltaphi)
117+ inline const int4 TrackerTraits::getBinsRect (const Cluster& currentCluster, int layerIndex, float z1, float z2, float maxdeltaz, float maxdeltaphi)
98118{
99119 return getBinsRect (layerIndex, currentCluster.phi , maxdeltaphi, z1, z2, maxdeltaz);
100120}
0 commit comments