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

#include <CaTripletConstructor.h>

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

Public Member Functions

 TripletConstructor (const ca::Framework &framework, const ca::Parameters< fvec > &pars, WindowData &wData, const fscal mass, const ca::TrackingMode &mode)
 ---— Constructors and destructor ---—
 
 TripletConstructor (const TripletConstructor &)=delete
 Copy constructor.
 
 TripletConstructor (TripletConstructor &&)=delete
 Move constructor.
 
TripletConstructoroperator= (const TripletConstructor &)=delete
 Copy assignment operator.
 
TripletConstructoroperator= (TripletConstructor &&)=delete
 Move assignment operator.
 
 ~TripletConstructor ()=default
 Destructor.
 
void CreateTripletsForHit (Vector< ca::Triplet > &tripletsOut, int istal, int istam, int istar, ca::HitIndex_t ihl)
 ---— FUNCTIONAL PART ---—
 

Private Types

typedef std::pair< Vector< TrackParamV >, Vector< ca::HitIndex_t > > Doublet_t
 
typedef std::tuple< Vector< TrackParamV >, Vector< ca::HitIndex_t >, Vector< ca::HitIndex_t > > Triplet_t
 

Private Member Functions

bool InitStations (int istal, int istam, int istar)
 
void FindDoublets (kf::TrackKalmanFilter< fvec > &fit)
 Find the doublets. Reformat data in the portion of doublets.
 
void FindTripletHits ()
 
void FindTriplets ()
 Find triplets on station.
 
void SelectTriplets (Vector< ca::Triplet > &tripletsOut)
 Select good triplets.
 
void CollectHits (Vector< ca::HitIndex_t > &collectedHits, kf::TrackKalmanFilter< fvec > &fit, const int iSta, const double chi2Cut, const McMatch &mc, const int maxNhits)
 

Private Attributes

const ca::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 field.
 
WindowDatafrWData
 
fscal fDefaultMass {constants::phys::MuonMass}
 mass of the propagated particle [GeV/c2]
 
ca::TrackingMode fTrackingMode
 
bool fIsTargetField {false}
 is the magnetic field present at the target
 
int fNfieldStations {0}
 
int fIstaL {-1}
 left station index
 
int fIstaM {-1}
 middle station index
 
int fIstaR {-1}
 right station index
 
const kf::ActiveLayer< fvec > * fStaL {nullptr}
 left station
 
const kf::ActiveLayer< fvec > * fStaM {nullptr}
 mid station
 
const kf::ActiveLayer< fvec > * fStaR {nullptr}
 right station
 
std::array< int, 2 > fFldStaTL {}
 indices of two stations for field approximation between the t. and l. hit
 
std::array< int, 3 > fFldStaLR {}
 indices of three stations for field approximation between the l. and r. hits
 
ca::HitIndex_t fIhitL
 index of the left hit in fAlgo->fWindowHits
 
kf::FieldRegion< fvecfFldL
 
Triplet_t fTripletData
 
Doublet_t fDoubletData
 

Static Private Attributes

static constexpr bool fDebugDublets = false
 
static constexpr bool fDebugTriplets = false
 
static constexpr bool fDebugCollectHits = false
 

Detailed Description

Construction of triplets for the CA tracker

Definition at line 29 of file CaTripletConstructor.h.

Member Typedef Documentation

◆ Doublet_t

◆ Triplet_t

Constructor & Destructor Documentation

◆ TripletConstructor() [1/3]

cbm::algo::ca::TripletConstructor::TripletConstructor ( const ca::Framework & framework,
const ca::Parameters< fvec > & pars,
WindowData & wData,
const fscal mass,
const ca::TrackingMode & mode )

---— Constructors and destructor ---—

Constructor

Parameters
nThreadsNumber of threads for multi-threaded mode

Definition at line 22 of file CaTripletConstructor.cxx.

References fDefaultMass, fField, fFramework, fIsTargetField, fNfieldStations, fParameters, frWData, fSetup, and fTrackingMode.

Referenced by operator=(), operator=(), TripletConstructor(), and TripletConstructor().

◆ TripletConstructor() [2/3]

cbm::algo::ca::TripletConstructor::TripletConstructor ( const TripletConstructor & )
delete

Copy constructor.

References TripletConstructor().

◆ TripletConstructor() [3/3]

cbm::algo::ca::TripletConstructor::TripletConstructor ( TripletConstructor && )
delete

Move constructor.

References TripletConstructor().

◆ ~TripletConstructor()

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

Destructor.

Member Function Documentation

◆ CollectHits()

void cbm::algo::ca::TripletConstructor::CollectHits ( Vector< ca::HitIndex_t > & collectedHits,
kf::TrackKalmanFilter< fvec > & fit,
const int iSta,
const double chi2Cut,
const McMatch & mc,
const int maxNhits )
private

◆ CreateTripletsForHit()

◆ FindDoublets()

◆ FindTripletHits()

◆ FindTriplets()

void cbm::algo::ca::TripletConstructor::FindTriplets ( )
private

Find triplets on station.

Refit Triplets

Definition at line 419 of file CaTripletConstructor.cxx.

References cbm::algo::ca::_fvecalignment, cbm::algo::ca::Hit::dT2(), cbm::algo::kf::MeasurementXy< DataT >::Dx2(), cbm::algo::ca::Hit::dX2(), cbm::algo::kf::MeasurementXy< DataT >::Dxy(), cbm::algo::ca::Hit::dXY(), cbm::algo::kf::MeasurementXy< DataT >::Dy2(), cbm::algo::ca::Hit::dY2(), cbm::algo::ca::constants::phys::ElectronMass, cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::EnergyLossCorrection(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::Extrapolate(), fDebugTriplets, fDefaultMass, fField, fFramework, fIhitL, cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::FilterExtrapolatedXY(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::FilterTime(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::FilterXY(), fIstaL, fIstaM, fIstaR, fParameters, frWData, fSetup, fStaL, fStaM, fStaR, fTripletData, cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::GetMeasurementModelAtZline(), cbm::algo::kf::kDownstream, cbm::algo::kf::kUpstream, cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::MultipleScattering(), cbm::algo::kf::fvec::One(), cbm::algo::kf::LinearizationQp< T >::qp, cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::SetLinearization(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::SetParticleMass(), cbm::algo::kf::defs::SpeedOfLightInv, cbm::algo::ca::Hit::T(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::Tr(), tracks, cbm::algo::ca::Hit::X(), x, cbm::algo::ca::Hit::Y(), y, and cbm::algo::ca::Hit::Z().

Referenced by CreateTripletsForHit().

◆ InitStations()

bool cbm::algo::ca::TripletConstructor::InitStations ( int istal,
int istam,
int istar )
private

Definition at line 46 of file CaTripletConstructor.cxx.

References fFldStaLR, fFldStaTL, fIstaL, fIstaM, fIstaR, fNfieldStations, fSetup, fStaL, fStaM, and fStaR.

Referenced by CreateTripletsForHit().

◆ operator=() [1/2]

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

Copy assignment operator.

References TripletConstructor().

◆ operator=() [2/2]

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

Move assignment operator.

References TripletConstructor().

◆ SelectTriplets()

void cbm::algo::ca::TripletConstructor::SelectTriplets ( Vector< ca::Triplet > & tripletsOut)
private

Select good triplets.

Selects good triplets and saves them into tripletsOut. Finds neighbouring triplets at the next station.

Definition at line 600 of file CaTripletConstructor.cxx.

References CBMCA_DEBUG_ASSERT, cbm::algo::ca::Vector< T >::emplace_back(), fIhitL, fIstaL, fIstaM, fIstaR, frWData, fStaL, fStaM, fStaR, fTripletData, cbm::algo::ca::Vector< T >::reserve(), and tracks.

Referenced by CreateTripletsForHit().

Member Data Documentation

◆ fDebugCollectHits

bool cbm::algo::ca::TripletConstructor::fDebugCollectHits = false
staticconstexprprivate

Definition at line 116 of file CaTripletConstructor.h.

Referenced by CollectHits().

◆ fDebugDublets

bool cbm::algo::ca::TripletConstructor::fDebugDublets = false
staticconstexprprivate

Definition at line 114 of file CaTripletConstructor.h.

Referenced by FindTripletHits().

◆ fDebugTriplets

bool cbm::algo::ca::TripletConstructor::fDebugTriplets = false
staticconstexprprivate

Definition at line 115 of file CaTripletConstructor.h.

Referenced by FindTriplets().

◆ fDefaultMass

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

mass of the propagated particle [GeV/c2]

Definition at line 85 of file CaTripletConstructor.h.

Referenced by CreateTripletsForHit(), FindTripletHits(), FindTriplets(), and TripletConstructor().

◆ fDoubletData

Doublet_t cbm::algo::ca::TripletConstructor::fDoubletData
private

Definition at line 111 of file CaTripletConstructor.h.

Referenced by CreateTripletsForHit(), FindDoublets(), and FindTripletHits().

◆ fField

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

Reference to field.

Definition at line 83 of file CaTripletConstructor.h.

Referenced by CreateTripletsForHit(), FindTriplets(), and TripletConstructor().

◆ fFldL

kf::FieldRegion<fvec> cbm::algo::ca::TripletConstructor::fFldL
private

Definition at line 105 of file CaTripletConstructor.h.

Referenced by CreateTripletsForHit(), and FindTripletHits().

◆ fFldStaLR

std::array<int, 3> cbm::algo::ca::TripletConstructor::fFldStaLR {}
private

indices of three stations for field approximation between the l. and r. hits

Definition at line 102 of file CaTripletConstructor.h.

Referenced by CreateTripletsForHit(), and InitStations().

◆ fFldStaTL

std::array<int, 2> cbm::algo::ca::TripletConstructor::fFldStaTL {}
private

indices of two stations for field approximation between the t. and l. hit

Definition at line 101 of file CaTripletConstructor.h.

Referenced by CreateTripletsForHit(), and InitStations().

◆ fFramework

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

◆ fIhitL

ca::HitIndex_t cbm::algo::ca::TripletConstructor::fIhitL
private

index of the left hit in fAlgo->fWindowHits

Definition at line 104 of file CaTripletConstructor.h.

Referenced by CreateTripletsForHit(), FindDoublets(), FindTripletHits(), FindTriplets(), and SelectTriplets().

◆ fIstaL

int cbm::algo::ca::TripletConstructor::fIstaL {-1}
private

left station index

Definition at line 93 of file CaTripletConstructor.h.

Referenced by CreateTripletsForHit(), FindTripletHits(), FindTriplets(), InitStations(), and SelectTriplets().

◆ fIstaM

int cbm::algo::ca::TripletConstructor::fIstaM {-1}
private

middle station index

Definition at line 94 of file CaTripletConstructor.h.

Referenced by CreateTripletsForHit(), FindDoublets(), FindTripletHits(), FindTriplets(), InitStations(), and SelectTriplets().

◆ fIstaR

int cbm::algo::ca::TripletConstructor::fIstaR {-1}
private

right station index

Definition at line 95 of file CaTripletConstructor.h.

Referenced by CreateTripletsForHit(), FindTripletHits(), FindTriplets(), InitStations(), and SelectTriplets().

◆ fIsTargetField

bool cbm::algo::ca::TripletConstructor::fIsTargetField {false}
private

is the magnetic field present at the target

Definition at line 88 of file CaTripletConstructor.h.

Referenced by FindDoublets(), and TripletConstructor().

◆ fNfieldStations

int cbm::algo::ca::TripletConstructor::fNfieldStations {0}
private

Definition at line 91 of file CaTripletConstructor.h.

Referenced by InitStations(), and TripletConstructor().

◆ fParameters

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

Object of Framework parameters class.

Definition at line 81 of file CaTripletConstructor.h.

Referenced by CollectHits(), CreateTripletsForHit(), FindDoublets(), FindTripletHits(), FindTriplets(), and TripletConstructor().

◆ frWData

WindowData& cbm::algo::ca::TripletConstructor::frWData
private

◆ fSetup

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

Reference to the setup.

Definition at line 82 of file CaTripletConstructor.h.

Referenced by CollectHits(), CreateTripletsForHit(), FindDoublets(), FindTriplets(), InitStations(), and TripletConstructor().

◆ fStaL

const kf::ActiveLayer<fvec>* cbm::algo::ca::TripletConstructor::fStaL {nullptr}
private

left station

Definition at line 97 of file CaTripletConstructor.h.

Referenced by CreateTripletsForHit(), FindDoublets(), FindTriplets(), InitStations(), and SelectTriplets().

◆ fStaM

const kf::ActiveLayer<fvec>* cbm::algo::ca::TripletConstructor::fStaM {nullptr}
private

mid station

Definition at line 98 of file CaTripletConstructor.h.

Referenced by CreateTripletsForHit(), FindDoublets(), FindTriplets(), InitStations(), and SelectTriplets().

◆ fStaR

const kf::ActiveLayer<fvec>* cbm::algo::ca::TripletConstructor::fStaR {nullptr}
private

right station

Definition at line 99 of file CaTripletConstructor.h.

Referenced by FindTripletHits(), FindTriplets(), InitStations(), and SelectTriplets().

◆ fTrackingMode

ca::TrackingMode cbm::algo::ca::TripletConstructor::fTrackingMode
private

Definition at line 86 of file CaTripletConstructor.h.

Referenced by FindDoublets(), FindTripletHits(), and TripletConstructor().

◆ fTripletData

Triplet_t cbm::algo::ca::TripletConstructor::fTripletData
private

Definition at line 108 of file CaTripletConstructor.h.

Referenced by FindTripletHits(), FindTriplets(), and SelectTriplets().


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