|
CbmRoot
|
#include <CaTrackFinderWindow.h>
Public Member Functions | |
| TrackFinderWindow (const ca::Framework &framework, 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 (int iterationIndex, const ca::Iteration &caIteration, WindowData &wData) |
| 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 |
| int | GetBestMcTrackIdForWindowHit (int iHit) const |
| Get mc track ID for a hit (debug tool) | |
| McMatch | GetMcMatchForWindowHit (int iHit) 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 Framework & | fFramework |
| Reference to the Framework object. | |
| const Parameters< fvec > & | fParameters |
| Object of Framework parameters class. | |
| const cbm::algo::kf::Setup< fvec > & | fSetup |
| Reference to the setup. | |
| const cbm::algo::kf::Field< fvec > & | fField |
| Reference to magnetic field object. | |
| fscal | fDefaultMass {constants::phys::MuonMass} |
| mass of the propagated particle [GeV/c2] | |
| ca::TrackingMode | fTrackingMode |
| WindowData * | pwData {nullptr} |
| Pointer to the window data object. | |
| 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 33 of file CaTrackFinderWindow.h.
|
private |
|
private |
Definition at line 68 of file CaTrackFinderWindow.h.
| cbm::algo::ca::TrackFinderWindow::TrackFinderWindow | ( | const ca::Framework & | framework, |
| const ca::Parameters< fvec > & | pars, | ||
| const fscal | mass, | ||
| const ca::TrackingMode & | mode, | ||
| ca::TrackingMonitorData & | monitorData ) |
Default constructor.
Definition at line 46 of file CaTrackFinderWindow.cxx.
References fCloneMerger, fDefaultMass, fField, fFramework, fParameters, frMonitorData, fSetup, fTrackExtender, fTrackFitter, and fTrackingMode.
Referenced by operator=(), operator=(), TrackFinderWindow(), and TrackFinderWindow().
|
default |
Destructor.
|
default |
Copy constructor.
References TrackFinderWindow().
|
default |
Move constructor.
References TrackFinderWindow().
|
private |
Definition at line 669 of file CaTrackFinderWindow.cxx.
References cbm::algo::ca::Branch::AddHit(), CAFindTrack(), checkTripletMatch(), cbm::algo::ca::Branch::Chi2(), cbm::algo::ca::WindowData::CurrentIteration(), fTrackingMode, GetBestMcTrackIdForWindowHit(), cbm::algo::ca::Triplet::GetFNeighbour(), cbm::algo::ca::Triplet::GetLevel(), cbm::algo::ca::Triplet::GetLHit(), cbm::algo::ca::Triplet::GetLSta(), 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(), TripletId2Station(), and TripletId2Triplet().
Referenced by CAFindTrack(), and CreateTrackCandidates().
| void cbm::algo::ca::TrackFinderWindow::CaTrackFinderSlice | ( | const ca::InputData & | input, |
| WindowData & | wData ) |
Definition at line 123 of file CaTrackFinderWindow.cxx.
References cbm::algo::ca::Hit::BackKey(), cbm::algo::ca::ConstructTriplets, cbm::algo::ca::CreateTracks, fCloneMerger, cbm::algo::ca::FindTracks, 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, pwData, ReadWindowData(), SearchNeighbors(), cbm::algo::ca::SearchNeighbours, size(), and cbm::algo::ca::SuppressHitKeys.
Referenced by cbm::algo::ca::TrackFinder::FindTracksThread().
|
private |
Definition at line 63 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 325 of file CaTrackFinderWindow.cxx.
References cbm::algo::ca::TripletConstructor::CreateTripletsForHit(), cbm::algo::ca::TripletConstructorSW::CreateTripletsForHit(), cbm::algo::ca::WindowData::CurrentIteration(), fDefaultMass, fFramework, fParameters, fTrackingMode, fTripletData, fvTriplets, cbm::algo::ca::Iteration::GetFirstStationIndex(), cbm::algo::ca::WindowData::Grid(), cbm::algo::ca::WindowData::Hits(), PackTripletId(), 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 432 of file CaTrackFinderWindow.cxx.
References cbm::algo::ca::Branch::AddHit(), CAFindTrack(), cbm::algo::ca::Branch::Chi2(), cbm::algo::ca::WindowData::CurrentIteration(), fDebug, fFramework, fNewTr, fParameters, fTrackingMode, fvHitKeyToTrack, fvTrackCandidates, cbm::algo::ca::Iteration::GetFirstStationIndex(), 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 414 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 542 of file CaTrackFinderWindow.cxx.
References fvHitKeyToTrack, fvTrackCandidates, and cbm::algo::ca::WindowData::Hit().
Referenced by CreateTracks().
|
private |
Get mc track ID for a hit (debug tool)
Definition at line 783 of file CaTrackFinderWindow.cxx.
References fFramework, cbm::algo::ca::Hit::Id(), and pwData.
Referenced by CAFindTrack().
|
private |
Definition at line 789 of file CaTrackFinderWindow.cxx.
References fFramework, cbm::algo::ca::Hit::Id(), and pwData.
|
inline |
Definition at line 56 of file CaTrackFinderWindow.h.
References fvHitKeyToTrack.
Referenced by cbm::algo::ca::TrackFinder::FindTracksThread().
|
delete |
Copy assignment operator.
References TrackFinderWindow().
|
delete |
Move assignment operator.
References TrackFinderWindow().
|
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 160 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 287 of file CaTrackFinderWindow.cxx.
References fField, fParameters, fSetup, 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 231 of file CaTrackFinderWindow.cxx.
References cbm::algo::ca::Grid::BuildBins(), fParameters, fSetup, 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 195 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(), 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 372 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(), size(), cbm::algo::ca::Triplet, TripletId2Station(), and TripletId2Triplet().
Referenced by CaTrackFinderSlice().
|
private |
used strips are marked
Definition at line 619 of file CaTrackFinderWindow.cxx.
References cbm::algo::ca::Hit::BackKey(), cbm::algo::ca::Branch::Chi2(), cbm::algo::ca::WindowData::CurrentIteration(), fDebug, fFramework, cbm::algo::ca::Track::fNofHits, fParameters, cbm::algo::ca::Hit::FrontKey(), fTrackExtender, fvTrackCandidates, cbm::algo::ca::Iteration::GetExtendTracksFlag(), 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(), 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 171 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 179 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 133 of file CaTrackFinderWindow.h.
Referenced by CaTrackFinderSlice(), and TrackFinderWindow().
|
staticconstexprprivate |
Data members
Definition at line 120 of file CaTrackFinderWindow.h.
Referenced by CreateTrackCandidates(), ReadWindowData(), and SelectTracks().
|
private |
mass of the propagated particle [GeV/c2]
Definition at line 126 of file CaTrackFinderWindow.h.
Referenced by ConstructTriplets(), and TrackFinderWindow().
|
private |
Reference to magnetic field object.
Definition at line 125 of file CaTrackFinderWindow.h.
Referenced by PrepareCAIteration(), and TrackFinderWindow().
|
private |
Reference to the Framework object.
Definition at line 122 of file CaTrackFinderWindow.h.
Referenced by ConstructTriplets(), CreateTrackCandidates(), GetBestMcTrackIdForWindowHit(), GetMcMatchForWindowHit(), SelectTracks(), and TrackFinderWindow().
|
private |
Definition at line 141 of file CaTrackFinderWindow.h.
Referenced by CreateTrackCandidates().
|
private |
Object of Framework parameters class.
Definition at line 123 of file CaTrackFinderWindow.h.
Referenced by CaTrackFinderSlice(), ConstructTriplets(), CreateTrackCandidates(), CreateTracks(), PrepareCAIteration(), PrepareGrid(), ReadWindowData(), SearchNeighbors(), SelectTracks(), and TrackFinderWindow().
|
private |
Reference to monitor data.
Definition at line 131 of file CaTrackFinderWindow.h.
Referenced by CaTrackFinderSlice(), SearchNeighbors(), and TrackFinderWindow().
|
private |
Reference to the setup.
Definition at line 124 of file CaTrackFinderWindow.h.
Referenced by PrepareCAIteration(), PrepareGrid(), and TrackFinderWindow().
|
private |
Object of the track extender algorithm.
Definition at line 132 of file CaTrackFinderWindow.h.
Referenced by SelectTracks(), and TrackFinderWindow().
|
private |
Object of the track extender algorithm.
Definition at line 134 of file CaTrackFinderWindow.h.
Referenced by CaTrackFinderSlice(), and TrackFinderWindow().
|
private |
Definition at line 127 of file CaTrackFinderWindow.h.
Referenced by CAFindTrack(), ConstructTriplets(), CreateTrackCandidates(), and TrackFinderWindow().
|
private |
Definition at line 148 of file CaTrackFinderWindow.h.
Referenced by CaTrackFinderSlice(), ConstructTriplets(), and SearchNeighbors().
|
private |
Definition at line 137 of file CaTrackFinderWindow.h.
Referenced by CreateTrackCandidates(), DoCompetitionLoop(), and InitTimeslice().
|
private |
Definition at line 145 of file CaTrackFinderWindow.h.
Referenced by CreateTrackCandidates(), DoCompetitionLoop(), and SelectTracks().
|
private |
Definition at line 151 of file CaTrackFinderWindow.h.
Referenced by ConstructTriplets().
|
private |
Pointer to the window data object.
Definition at line 129 of file CaTrackFinderWindow.h.
Referenced by CaTrackFinderSlice(), GetBestMcTrackIdForWindowHit(), and GetMcMatchForWindowHit().