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::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 (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
 
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 32 of file CaTrackFinderWindow.h.

Member Typedef Documentation

◆ TripletArray_t

◆ TripletData_t

Definition at line 67 of file CaTrackFinderWindow.h.

Constructor & Destructor Documentation

◆ TrackFinderWindow() [1/3]

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.

◆ ~TrackFinderWindow()

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

Destructor.

◆ TrackFinderWindow() [2/3]

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

Copy constructor.

◆ TrackFinderWindow() [3/3]

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

Move constructor.

Member Function Documentation

◆ CAFindTrack()

◆ CaTrackFinderSlice()

◆ checkTripletMatch()

◆ ConstructTriplets()

◆ CreateTrackCandidates()

◆ CreateTracks()

◆ DoCompetitionLoop()

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

◆ InitTimeslice()

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

Definition at line 55 of file CaTrackFinderWindow.h.

References fvHitKeyToTrack, and cbm::algo::ca::Vector< T >::reset().

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

◆ operator=() [1/2]

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

Copy assignment operator.

◆ operator=() [2/2]

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

Move assignment operator.

◆ 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 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().

◆ 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 160 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 168 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 122 of file CaTrackFinderWindow.h.

Referenced by CaTrackFinderSlice().

◆ fDebug

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

Data members

Definition at line 114 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 117 of file CaTrackFinderWindow.h.

Referenced by ConstructTriplets().

◆ fNewTr

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

Definition at line 130 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 120 of file CaTrackFinderWindow.h.

Referenced by CaTrackFinderSlice(), and SearchNeighbors().

◆ fTrackExtender

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

Object of the track extender algorithm.

Definition at line 121 of file CaTrackFinderWindow.h.

Referenced by SelectTracks().

◆ fTrackFitter

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

Object of the track extender algorithm.

Definition at line 123 of file CaTrackFinderWindow.h.

Referenced by CaTrackFinderSlice().

◆ fTrackingMode

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

Definition at line 118 of file CaTrackFinderWindow.h.

Referenced by CAFindTrack(), ConstructTriplets(), and CreateTrackCandidates().

◆ fTripletData

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

Definition at line 137 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 126 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 134 of file CaTrackFinderWindow.h.

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

◆ fvTriplets

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

Definition at line 140 of file CaTrackFinderWindow.h.

Referenced by ConstructTriplets().


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