CbmRoot
|
#include <CaTrackFinderWindow.h>
Public Member Functions | |
TrackFinderWindow (const ca::Parameters< fvec > &pars, const fscal mass, const ca::TrackingMode &mode, ca::TrackingMonitorData &monitorData) | |
Default constructor. | |
~TrackFinderWindow ()=default | |
Destructor. | |
TrackFinderWindow (const TrackFinderWindow &)=default | |
Copy constructor. | |
TrackFinderWindow (TrackFinderWindow &&)=default | |
Move constructor. | |
TrackFinderWindow & | operator= (const TrackFinderWindow &)=delete |
Copy assignment operator. | |
TrackFinderWindow & | operator= (TrackFinderWindow &&)=delete |
Move assignment operator. | |
void | CaTrackFinderSlice (const ca::InputData &input, WindowData &wData) |
void | InitTimeslice (size_t nHitKeys) |
Private Types | |
typedef std::array< Vector< ca::Triplet >, constants::size::MaxNstations > | TripletArray_t |
typedef std::tuple< Vector< int >, Vector< int >, TripletArray_t > | TripletData_t |
Private Member Functions | |
void | ConstructTriplets (WindowData &wData) |
void | ReadWindowData (const Vector< Hit > &hits, WindowData &wData) |
void | PrepareGrid (const Vector< Hit > &hits, WindowData &wData) |
void | PrepareCAIteration (const ca::Iteration &caIteration, WindowData &wData, const bool isFirst) |
void | CreateTracks (WindowData &wData, const ca::Iteration &caIteration, TripletArray_t &vTriplets) |
void | CreateTrackCandidates (WindowData &wData, TripletArray_t &vTriplets, const int min_level, const int firstTripletLevel) |
void | DoCompetitionLoop (const WindowData &wData) |
void | SelectTracks (WindowData &wData) |
void | SearchNeighbors (WindowData &wData) |
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) |
bool | checkTripletMatch (const ca::Triplet &l, const ca::Triplet &r, fscal &dchi2, WindowData &wData) const |
Static Private Member Functions | |
static unsigned int | PackTripletId (unsigned int iStation, unsigned int iTriplet) |
static unsigned int | TripletId2Station (unsigned int id) |
static unsigned int | TripletId2Triplet (unsigned int id) |
Private Attributes | |
const Parameters< fvec > & | fParameters |
Object of Framework parameters class. | |
fscal | fDefaultMass {constants::phys::MuonMass} |
mass of the propagated particle [GeV/c2] | |
ca::TrackingMode | fTrackingMode |
TrackingMonitorData & | frMonitorData |
Reference to monitor data. | |
TrackExtender | fTrackExtender |
Object of the track extender algorithm. | |
CloneMerger | fCloneMerger |
Object of the clone merger algorithm. | |
TrackFitter | fTrackFitter |
Object of the track extender algorithm. | |
Vector< int > | fvHitKeyToTrack {"TrackFinderWindow::fvHitKeyToTrack"} |
ca::Branch | fNewTr [constants::size::MaxNstations] |
Vector< ca::Branch > | fvTrackCandidates {"TrackFinderWindow::fvTrackCandidates"} |
TripletData_t | fTripletData |
Vector< ca::Triplet > | fvTriplets |
Static Private Attributes | |
static constexpr bool | fDebug = false |
Class implements a clones merger algorithm for the CA track finder
Definition at line 32 of file CaTrackFinderWindow.h.
|
private |
|
private |
Definition at line 67 of file CaTrackFinderWindow.h.
cbm::algo::ca::TrackFinderWindow::TrackFinderWindow | ( | const ca::Parameters< fvec > & | pars, |
const fscal | mass, | ||
const ca::TrackingMode & | mode, | ||
ca::TrackingMonitorData & | monitorData ) |
Default constructor.
Definition at line 45 of file CaTrackFinderWindow.cxx.
|
default |
Destructor.
|
default |
Copy constructor.
|
default |
Move constructor.
|
private |
Definition at line 649 of file CaTrackFinderWindow.cxx.
References cbm::algo::ca::Branch::AddHit(), CAFindTrack(), checkTripletMatch(), cbm::algo::ca::Branch::Chi2(), cbm::algo::ca::WindowData::CurrentIteration(), fTrackingMode, cbm::algo::ca::Triplet::GetFNeighbour(), cbm::algo::ca::Triplet::GetLevel(), cbm::algo::ca::Triplet::GetLHit(), cbm::algo::ca::Triplet::GetLSta(), cbm::algo::ca::Framework::GetMcTrackIdForWindowHit(), cbm::algo::ca::Triplet::GetMHit(), cbm::algo::ca::Triplet::GetMSta(), cbm::algo::ca::Triplet::GetNNeighbours(), cbm::algo::ca::Triplet::GetRHit(), cbm::algo::ca::Iteration::GetTrackChi2Cut(), cbm::algo::ca::WindowData::Hit(), ID, cbm::algo::ca::WindowData::IsHitKeyUsed(), cbm::algo::ca::kGlobal, cbm::algo::ca::kMcbm, cbm::algo::ca::Branch::NofHits(), cbm::algo::ca::Branch::SetChi2(), cbm::algo::ca::Triplet, TripletId2Station(), and TripletId2Triplet().
Referenced by CAFindTrack(), and CreateTrackCandidates().
void cbm::algo::ca::TrackFinderWindow::CaTrackFinderSlice | ( | const ca::InputData & | input, |
WindowData & | wData ) |
Definition at line 118 of file CaTrackFinderWindow.cxx.
References cbm::algo::ca::Hit::BackKey(), cbm::algo::ca::ConstructTriplets, cbm::algo::ca::CreateTracks, cbm::algo::ca::CloneMerger::Exec(), fCloneMerger, cbm::algo::ca::FindTracks, cbm::algo::ca::TrackFitter::FitCaTracks(), cbm::algo::ca::FitTracks, fParameters, frMonitorData, cbm::algo::ca::Hit::FrontKey(), fTrackFitter, fTripletData, cbm::algo::ca::InputData::GetHits(), cbm::algo::ca::WindowData::Hit(), cbm::algo::ca::WindowData::Hits(), cbm::algo::ca::InitWindow, cbm::algo::ca::WindowData::IsHitKeyUsed(), cbm::algo::ca::WindowData::IsHitSuppressed(), cbm::algo::ca::MergeClones, PrepareCAIteration(), cbm::algo::ca::PrepareGrid, cbm::algo::ca::PrepareIteration, ReadWindowData(), SearchNeighbors(), cbm::algo::ca::SearchNeighbours, size(), cbm::algo::ca::MonitorData< C, T >::StartTimer(), cbm::algo::ca::MonitorData< C, T >::StopTimer(), and cbm::algo::ca::SuppressHitKeys.
Referenced by cbm::algo::ca::TrackFinder::FindTracksThread().
|
private |
Definition at line 58 of file CaTrackFinderWindow.cxx.
References cbm::algo::ca::WindowData::CurrentIteration(), cbm::algo::ca::Triplet::GetCqp(), cbm::algo::ca::Triplet::GetCtx(), cbm::algo::ca::Triplet::GetCty(), cbm::algo::ca::Triplet::GetLHit(), cbm::algo::ca::Triplet::GetLSta(), cbm::algo::ca::Triplet::GetMHit(), cbm::algo::ca::Triplet::GetMSta(), cbm::algo::ca::Triplet::GetQp(), cbm::algo::ca::Triplet::GetRHit(), cbm::algo::ca::Triplet::GetRSta(), cbm::algo::ca::Iteration::GetTripletLinkChi2(), cbm::algo::ca::Triplet::GetTx(), cbm::algo::ca::Triplet::GetTy(), and cbm::algo::ca::Triplet::IsMomentumFitted().
Referenced by CAFindTrack(), and SearchNeighbors().
|
private |
link hit -> first triplet { hit, *, *}
link hit ->n triplets { hit, *, *}
Definition at line 313 of file CaTrackFinderWindow.cxx.
References cbm::algo::ca::TripletConstructor::CreateTripletsForHit(), cbm::algo::ca::WindowData::CurrentIteration(), fDefaultMass, fParameters, fTrackingMode, fTripletData, fvTriplets, cbm::algo::ca::Iteration::GetFirstStationIndex(), cbm::algo::ca::WindowData::Grid(), cbm::algo::ca::WindowData::Hits(), PackTripletId(), cbm::algo::ca::Vector< T >::reserve(), and cbm::algo::ca::WindowData::TsHitIndices().
|
private |
reqursive func to build a tree of possible track-candidates and choose the best
Definition at line 414 of file CaTrackFinderWindow.cxx.
References cbm::algo::ca::Branch::AddHit(), CAFindTrack(), cbm::algo::ca::Branch::Chi2(), cbm::algo::ca::WindowData::CurrentIteration(), fDebug, fNewTr, fParameters, fTrackingMode, fvHitKeyToTrack, fvTrackCandidates, cbm::algo::ca::Iteration::GetFirstStationIndex(), cbm::algo::ca::Framework::GetMcTrackIdForCaHit(), cbm::algo::ca::Iteration::GetMinNhits(), cbm::algo::ca::Iteration::GetMinNhitsStation0(), cbm::algo::ca::Iteration::GetName(), cbm::algo::ca::Iteration::GetPrimaryFlag(), cbm::algo::ca::Iteration::GetTrackFromTripletsFlag(), cbm::algo::ca::WindowData::Hit(), cbm::algo::ca::Branch::Hits(), cbm::algo::ca::WindowData::Hits(), cbm::algo::ca::Hit::Id(), cbm::algo::ca::WindowData::IsHitKeyUsed(), cbm::algo::ca::kGlobal, cbm::algo::ca::kMcbm, cbm::algo::ca::constants::size::MaxNstations, cbm::algo::ca::Branch::NofHits(), cbm::algo::ca::Branch::SetAlive(), cbm::algo::ca::Branch::SetChi2(), cbm::algo::ca::Branch::SetId(), and cbm::algo::ca::Branch::SetStation().
Referenced by CreateTracks().
|
private |
Definition at line 396 of file CaTrackFinderWindow.cxx.
References CreateTrackCandidates(), cbm::algo::ca::WindowData::CurrentIteration(), DoCompetitionLoop(), fParameters, cbm::algo::ca::Iteration::GetMinNhits(), cbm::algo::ca::Iteration::GetMinNhitsStation0(), cbm::algo::ca::Iteration::GetTrackFromTripletsFlag(), and SelectTracks().
|
private |
Definition at line 522 of file CaTrackFinderWindow.cxx.
References fvHitKeyToTrack, fvTrackCandidates, and cbm::algo::ca::WindowData::Hit().
Referenced by CreateTracks().
|
inline |
Definition at line 55 of file CaTrackFinderWindow.h.
References fvHitKeyToTrack, and cbm::algo::ca::Vector< T >::reset().
Referenced by cbm::algo::ca::TrackFinder::FindTracksThread().
|
delete |
Copy assignment operator.
|
delete |
Move assignment operator.
|
inlinestaticprivate |
Packs station and triplet indices to an unique triplet ID
iStation | Index of station in the active stations array |
iTriplet | Index of triplet |
Definition at line 149 of file CaTrackFinderWindow.h.
References cbm::algo::ca::constants::size::MaxNstations, cbm::algo::ca::constants::size::MaxNtriplets, and cbm::algo::ca::constants::size::TripletBits.
Referenced by ConstructTriplets().
|
private |
Definition at line 276 of file CaTrackFinderWindow.cxx.
References fParameters, cbm::algo::ca::Iteration::GetPrimaryFlag(), cbm::algo::ca::Iteration::GetTargetPosSigmaX(), cbm::algo::ca::Iteration::GetTargetPosSigmaY(), cbm::algo::ca::WindowData::Grid(), cbm::algo::ca::WindowData::HitKeyFlags(), cbm::algo::ca::WindowData::Hits(), cbm::algo::ca::Grid::RemoveUsedHits(), cbm::algo::ca::WindowData::ResetHitSuppressionFlags(), cbm::algo::ca::WindowData::SetCurrentIteration(), cbm::algo::ca::WindowData::TargB(), and cbm::algo::ca::WindowData::TargetMeasurement().
Referenced by CaTrackFinderSlice().
|
private |
Definition at line 221 of file CaTrackFinderWindow.cxx.
References cbm::algo::ca::Grid::BuildBins(), fParameters, cbm::algo::ca::WindowData::Grid(), cbm::algo::ca::WindowData::HitKeyFlags(), cbm::algo::ca::WindowData::Hits(), hits, cbm::algo::ca::WindowData::HitStartIndexOnStation(), cbm::algo::ca::WindowData::NofHitsOnStation(), size(), sqrt(), cbm::algo::ca::WindowData::TsHitIndex(), and cbm::algo::ca::WindowData::TsHitIndices().
|
private |
D.S. 29.7.24: There is a copy operation here. Can be avoided?
Definition at line 185 of file CaTrackFinderWindow.cxx.
References fDebug, fParameters, cbm::algo::ca::WindowData::Hit(), hits, cbm::algo::ca::WindowData::HitStartIndexOnStation(), cbm::algo::ca::WindowData::NofHitsOnStation(), cbm::algo::ca::WindowData::RecoHitIndices(), cbm::algo::ca::WindowData::RecoTracks(), cbm::algo::ca::Vector< T >::reserve(), cbm::algo::ca::WindowData::ResetHitData(), size(), cbm::algo::ca::Hit::ToString(), cbm::algo::ca::WindowData::TsHitIndex(), and cbm::algo::ca::WindowData::TsHitIndices().
Referenced by CaTrackFinderSlice().
|
private |
Definition at line 354 of file CaTrackFinderWindow.cxx.
References checkTripletMatch(), cbm::algo::ca::WindowData::CurrentIteration(), fParameters, frMonitorData, fTripletData, cbm::algo::ca::Iteration::GetFirstStationIndex(), cbm::algo::ca::Triplet::GetLevel(), cbm::algo::ca::Iteration::GetMaxStationGap(), cbm::algo::ca::MonitorData< C, T >::IncrementCounter(), cbm::algo::ca::Triplet::SetNNeighbours(), size(), cbm::algo::ca::Triplet, TripletId2Station(), and TripletId2Triplet().
Referenced by CaTrackFinderSlice().
|
private |
used strips are marked
Definition at line 599 of file CaTrackFinderWindow.cxx.
References cbm::algo::ca::Hit::BackKey(), cbm::algo::ca::Branch::Chi2(), cbm::algo::ca::WindowData::CurrentIteration(), cbm::algo::ca::TrackExtender::ExtendBranch(), fDebug, cbm::algo::ca::Track::fNofHits, fParameters, cbm::algo::ca::Hit::FrontKey(), fTrackExtender, fvTrackCandidates, cbm::algo::ca::Iteration::GetExtendTracksFlag(), cbm::algo::ca::Framework::GetMcTrackIdForCaHit(), cbm::algo::ca::Iteration::GetName(), cbm::algo::ca::WindowData::Hit(), cbm::algo::ca::Branch::Hits(), cbm::algo::ca::Hit::Id(), cbm::algo::ca::Branch::IsAlive(), cbm::algo::ca::WindowData::IsHitKeyUsed(), cbm::algo::ca::Branch::NofHits(), cbm::algo::ca::Vector< T >::push_back(), cbm::algo::ca::WindowData::RecoHitIndices(), and cbm::algo::ca::WindowData::RecoTracks().
Referenced by CreateTracks().
|
inlinestaticprivate |
Unpacks the triplet ID to its station index
id | Unique triplet ID |
Definition at line 160 of file CaTrackFinderWindow.h.
References cbm::algo::ca::constants::size::TripletBits.
Referenced by CAFindTrack(), and SearchNeighbors().
|
inlinestaticprivate |
Unpacks the triplet ID to its triplet index
id | Unique triplet ID |
Definition at line 168 of file CaTrackFinderWindow.h.
References cbm::algo::ca::constants::size::TripletBits.
Referenced by CAFindTrack(), and SearchNeighbors().
|
private |
Object of the clone merger algorithm.
Definition at line 122 of file CaTrackFinderWindow.h.
Referenced by CaTrackFinderSlice().
|
staticconstexprprivate |
Data members
Definition at line 114 of file CaTrackFinderWindow.h.
Referenced by CreateTrackCandidates(), ReadWindowData(), and SelectTracks().
|
private |
mass of the propagated particle [GeV/c2]
Definition at line 117 of file CaTrackFinderWindow.h.
Referenced by ConstructTriplets().
|
private |
Definition at line 130 of file CaTrackFinderWindow.h.
Referenced by CreateTrackCandidates().
|
private |
Object of Framework parameters class.
Definition at line 116 of file CaTrackFinderWindow.h.
Referenced by CaTrackFinderSlice(), ConstructTriplets(), CreateTrackCandidates(), CreateTracks(), PrepareCAIteration(), PrepareGrid(), ReadWindowData(), SearchNeighbors(), and SelectTracks().
|
private |
Reference to monitor data.
Definition at line 120 of file CaTrackFinderWindow.h.
Referenced by CaTrackFinderSlice(), and SearchNeighbors().
|
private |
Object of the track extender algorithm.
Definition at line 121 of file CaTrackFinderWindow.h.
Referenced by SelectTracks().
|
private |
Object of the track extender algorithm.
Definition at line 123 of file CaTrackFinderWindow.h.
Referenced by CaTrackFinderSlice().
|
private |
Definition at line 118 of file CaTrackFinderWindow.h.
Referenced by CAFindTrack(), ConstructTriplets(), and CreateTrackCandidates().
|
private |
Definition at line 137 of file CaTrackFinderWindow.h.
Referenced by CaTrackFinderSlice(), ConstructTriplets(), and SearchNeighbors().
|
private |
Definition at line 126 of file CaTrackFinderWindow.h.
Referenced by CreateTrackCandidates(), DoCompetitionLoop(), and InitTimeslice().
|
private |
Definition at line 134 of file CaTrackFinderWindow.h.
Referenced by CreateTrackCandidates(), DoCompetitionLoop(), and SelectTracks().
|
private |
Definition at line 140 of file CaTrackFinderWindow.h.
Referenced by ConstructTriplets().