80 const int firstTripletLevel);
99 static unsigned int PackTripletId(
unsigned int iStation,
unsigned int iTriplet);
150 unsigned int iTriplet)
155 return (iStation << kMoveStation) + iTriplet;
163 return id >> kMoveStation;
171 return id & kTripletMask;
A class to store hit information in a backet-sorted way on 2D grid.
A generic hit for the CA tracker (header)
Monitor specialization for the tracking algorithm.
Container for all data, which are processed within a single sub-timeslice (implementation)
static vector< vector< QAHit > > hits
A set of parameters for the CA Track finder iteration.
A container for all external parameters of the CA tracking algorithm.
TrackFinderWindow & operator=(TrackFinderWindow &&)=delete
Move assignment operator.
TrackExtender fTrackExtender
Object of the track extender algorithm.
TripletData_t fTripletData
TrackFinderWindow(const TrackFinderWindow &)=default
Copy constructor.
std::tuple< Vector< int >, Vector< int >, TripletArray_t > TripletData_t
TrackFinderWindow & operator=(const TrackFinderWindow &)=delete
Copy assignment operator.
void InitTimeslice(size_t nHitKeys)
TrackFitter fTrackFitter
Object of the track extender algorithm.
TrackFinderWindow(TrackFinderWindow &&)=default
Move constructor.
CloneMerger fCloneMerger
Object of the clone merger algorithm.
void CAFindTrack(int ista, ca::Branch &best_tr, const ca::Triplet *curr_trip, ca::Branch &curr_tr, unsigned char min_best_l, ca::Branch *new_tr, WindowData &wData, TripletArray_t &vTriplets)
~TrackFinderWindow()=default
Destructor.
void CreateTrackCandidates(WindowData &wData, TripletArray_t &vTriplets, const int min_level, const int firstTripletLevel)
ca::Branch fNewTr[constants::size::MaxNstations]
const Parameters< fvec > & fParameters
Object of Framework parameters class.
Vector< ca::Branch > fvTrackCandidates
static unsigned int TripletId2Triplet(unsigned int id)
void DoCompetitionLoop(const WindowData &wData)
void SelectTracks(WindowData &wData)
Vector< ca::Triplet > fvTriplets
std::array< Vector< ca::Triplet >, constants::size::MaxNstations > TripletArray_t
fscal fDefaultMass
mass of the propagated particle [GeV/c2]
TrackFinderWindow(const ca::Parameters< fvec > &pars, const fscal mass, const ca::TrackingMode &mode, ca::TrackingMonitorData &monitorData)
Default constructor.
static constexpr bool fDebug
bool checkTripletMatch(const ca::Triplet &l, const ca::Triplet &r, fscal &dchi2, WindowData &wData) const
static unsigned int PackTripletId(unsigned int iStation, unsigned int iTriplet)
void CaTrackFinderSlice(const ca::InputData &input, WindowData &wData)
ca::TrackingMode fTrackingMode
void PrepareCAIteration(const ca::Iteration &caIteration, WindowData &wData, const bool isFirst)
void SearchNeighbors(WindowData &wData)
TrackingMonitorData & frMonitorData
Reference to monitor data.
void ReadWindowData(const Vector< Hit > &hits, WindowData &wData)
static unsigned int TripletId2Station(unsigned int id)
Vector< int > fvHitKeyToTrack
Triplet class represents a short 3-hits track segment called a "triplet".
void reset(std::size_t count, Tinput... value)
Clears vector and resizes it to the selected size with selected values.
Container for internal data, processed on a single time window.
constexpr fscal MuonMass
Particle masses etc used for the track fit, fscal precision.
constexpr int MaxNstations
Max number of stations, 2^6 = 64.
constexpr unsigned int TripletBits
Amount of bits to code one triplet.
constexpr int MaxNtriplets
Max number of triplets, 2^26 = 67,108,864.
TODO: SZh 8.11.2022: add selection of parameterisation.
@ Triplet
number of triplets