CbmRoot
Loading...
Searching...
No Matches
cbm::algo::ca::TrackFinderWindow Class Reference

#include <CaTrackFinderWindow.h>

Collaboration diagram for cbm::algo::ca::TrackFinderWindow:
[legend]

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.
 
TrackFinderWindowoperator= (const TrackFinderWindow &)=delete
 Copy assignment operator.
 
TrackFinderWindowoperator= (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::MaxNstationsTripletArray_t
 
typedef std::tuple< Vector< int >, Vector< int >, TripletArray_tTripletData_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 FrameworkfFramework
 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
 
WindowDatapwData {nullptr}
 Pointer to the window data object.
 
TrackingMonitorDatafrMonitorData
 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::BranchfvTrackCandidates {"TrackFinderWindow::fvTrackCandidates"}
 
TripletData_t fTripletData
 
Vector< ca::TripletfvTriplets
 

Static Private Attributes

static constexpr bool fDebug = false
 

Detailed Description

Class implements a clones merger algorithm for the CA track finder

Definition at line 33 of file CaTrackFinderWindow.h.

Member Typedef Documentation

◆ TripletArray_t


Private methods

Definition at line 62 of file CaTrackFinderWindow.h.

◆ TripletData_t

Definition at line 68 of file CaTrackFinderWindow.h.

Constructor & Destructor Documentation

◆ TrackFinderWindow() [1/3]

cbm::algo::ca::TrackFinderWindow::TrackFinderWindow ( const ca::Framework & framework,
const ca::Parameters< fvec > & pars,
const fscal mass,
const ca::TrackingMode & mode,
ca::TrackingMonitorData & monitorData )

◆ ~TrackFinderWindow()

cbm::algo::ca::TrackFinderWindow::~TrackFinderWindow ( )
default

Destructor.

◆ TrackFinderWindow() [2/3]

cbm::algo::ca::TrackFinderWindow::TrackFinderWindow ( const TrackFinderWindow & )
default

Copy constructor.

References TrackFinderWindow().

◆ TrackFinderWindow() [3/3]

cbm::algo::ca::TrackFinderWindow::TrackFinderWindow ( TrackFinderWindow && )
default

Move constructor.

References TrackFinderWindow().

Member Function Documentation

◆ CAFindTrack()

◆ CaTrackFinderSlice()

◆ checkTripletMatch()

◆ ConstructTriplets()

◆ CreateTrackCandidates()

◆ CreateTracks()

◆ DoCompetitionLoop()

void cbm::algo::ca::TrackFinderWindow::DoCompetitionLoop ( const WindowData & wData)
private

◆ GetBestMcTrackIdForWindowHit()

int cbm::algo::ca::TrackFinderWindow::GetBestMcTrackIdForWindowHit ( int iHit) const
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().

◆ GetMcMatchForWindowHit()

McMatch cbm::algo::ca::TrackFinderWindow::GetMcMatchForWindowHit ( int iHit) const
private

Definition at line 789 of file CaTrackFinderWindow.cxx.

References fFramework, cbm::algo::ca::Hit::Id(), and pwData.

◆ InitTimeslice()

void cbm::algo::ca::TrackFinderWindow::InitTimeslice ( size_t nHitKeys)
inline
Note
The function initializes global arrays for a given thread

Definition at line 56 of file CaTrackFinderWindow.h.

References fvHitKeyToTrack.

Referenced by cbm::algo::ca::TrackFinder::FindTracksThread().

◆ operator=() [1/2]

TrackFinderWindow & cbm::algo::ca::TrackFinderWindow::operator= ( const TrackFinderWindow & )
delete

Copy assignment operator.

References TrackFinderWindow().

◆ operator=() [2/2]

TrackFinderWindow & cbm::algo::ca::TrackFinderWindow::operator= ( TrackFinderWindow && )
delete

Move assignment operator.

References TrackFinderWindow().

◆ PackTripletId()

unsigned int cbm::algo::ca::TrackFinderWindow::PackTripletId ( unsigned int iStation,
unsigned int iTriplet )
inlinestaticprivate

Packs station and triplet indices to an unique triplet ID

Parameters
iStationIndex of station in the active stations array
iTripletIndex 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().

◆ PrepareCAIteration()

◆ PrepareGrid()

◆ ReadWindowData()

◆ SearchNeighbors()

◆ SelectTracks()

◆ TripletId2Station()

unsigned int cbm::algo::ca::TrackFinderWindow::TripletId2Station ( unsigned int id)
inlinestaticprivate

Unpacks the triplet ID to its station index

Parameters
idUnique triplet ID

Definition at line 171 of file CaTrackFinderWindow.h.

References cbm::algo::ca::constants::size::TripletBits.

Referenced by CAFindTrack(), and SearchNeighbors().

◆ TripletId2Triplet()

unsigned int cbm::algo::ca::TrackFinderWindow::TripletId2Triplet ( unsigned int id)
inlinestaticprivate

Unpacks the triplet ID to its triplet index

Parameters
idUnique triplet ID

Definition at line 179 of file CaTrackFinderWindow.h.

References cbm::algo::ca::constants::size::TripletBits.

Referenced by CAFindTrack(), and SearchNeighbors().

Member Data Documentation

◆ fCloneMerger

CloneMerger cbm::algo::ca::TrackFinderWindow::fCloneMerger
private

Object of the clone merger algorithm.

Definition at line 133 of file CaTrackFinderWindow.h.

Referenced by CaTrackFinderSlice(), and TrackFinderWindow().

◆ fDebug

bool cbm::algo::ca::TrackFinderWindow::fDebug = false
staticconstexprprivate

Data members

Definition at line 120 of file CaTrackFinderWindow.h.

Referenced by CreateTrackCandidates(), ReadWindowData(), and SelectTracks().

◆ fDefaultMass

fscal cbm::algo::ca::TrackFinderWindow::fDefaultMass {constants::phys::MuonMass}
private

mass of the propagated particle [GeV/c2]

Definition at line 126 of file CaTrackFinderWindow.h.

Referenced by ConstructTriplets(), and TrackFinderWindow().

◆ fField

const cbm::algo::kf::Field<fvec>& cbm::algo::ca::TrackFinderWindow::fField
private

Reference to magnetic field object.

Definition at line 125 of file CaTrackFinderWindow.h.

Referenced by PrepareCAIteration(), and TrackFinderWindow().

◆ fFramework

const Framework& cbm::algo::ca::TrackFinderWindow::fFramework
private

◆ fNewTr

ca::Branch cbm::algo::ca::TrackFinderWindow::fNewTr[constants::size::MaxNstations]
private

Definition at line 141 of file CaTrackFinderWindow.h.

Referenced by CreateTrackCandidates().

◆ fParameters

const Parameters<fvec>& cbm::algo::ca::TrackFinderWindow::fParameters
private

◆ frMonitorData

TrackingMonitorData& cbm::algo::ca::TrackFinderWindow::frMonitorData
private

Reference to monitor data.

Definition at line 131 of file CaTrackFinderWindow.h.

Referenced by CaTrackFinderSlice(), SearchNeighbors(), and TrackFinderWindow().

◆ fSetup

const cbm::algo::kf::Setup<fvec>& cbm::algo::ca::TrackFinderWindow::fSetup
private

Reference to the setup.

Definition at line 124 of file CaTrackFinderWindow.h.

Referenced by PrepareCAIteration(), PrepareGrid(), and TrackFinderWindow().

◆ fTrackExtender

TrackExtender cbm::algo::ca::TrackFinderWindow::fTrackExtender
private

Object of the track extender algorithm.

Definition at line 132 of file CaTrackFinderWindow.h.

Referenced by SelectTracks(), and TrackFinderWindow().

◆ fTrackFitter

TrackFitter cbm::algo::ca::TrackFinderWindow::fTrackFitter
private

Object of the track extender algorithm.

Definition at line 134 of file CaTrackFinderWindow.h.

Referenced by CaTrackFinderSlice(), and TrackFinderWindow().

◆ fTrackingMode

ca::TrackingMode cbm::algo::ca::TrackFinderWindow::fTrackingMode
private

◆ fTripletData

TripletData_t cbm::algo::ca::TrackFinderWindow::fTripletData
private

Definition at line 148 of file CaTrackFinderWindow.h.

Referenced by CaTrackFinderSlice(), ConstructTriplets(), and SearchNeighbors().

◆ fvHitKeyToTrack

Vector<int> cbm::algo::ca::TrackFinderWindow::fvHitKeyToTrack {"TrackFinderWindow::fvHitKeyToTrack"}
private
Note
Global array for a given thread

Definition at line 137 of file CaTrackFinderWindow.h.

Referenced by CreateTrackCandidates(), DoCompetitionLoop(), and InitTimeslice().

◆ fvTrackCandidates

Vector<ca::Branch> cbm::algo::ca::TrackFinderWindow::fvTrackCandidates {"TrackFinderWindow::fvTrackCandidates"}
private

Definition at line 145 of file CaTrackFinderWindow.h.

Referenced by CreateTrackCandidates(), DoCompetitionLoop(), and SelectTracks().

◆ fvTriplets

Vector<ca::Triplet> cbm::algo::ca::TrackFinderWindow::fvTriplets
private

Definition at line 151 of file CaTrackFinderWindow.h.

Referenced by ConstructTriplets().

◆ pwData

WindowData* cbm::algo::ca::TrackFinderWindow::pwData {nullptr}
private

Pointer to the window data object.

Definition at line 129 of file CaTrackFinderWindow.h.

Referenced by CaTrackFinderSlice(), GetBestMcTrackIdForWindowHit(), and GetMcMatchForWindowHit().


The documentation for this class was generated from the following files: