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

#include <CaCloneMerger.h>

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

Public Member Functions

 CloneMerger (const ca::Parameters< fvec > &pars, const fscal mass)
 Default constructor.
 
 ~CloneMerger ()
 Destructor.
 
 CloneMerger (const CloneMerger &)=default
 Copy constructor.
 
 CloneMerger (CloneMerger &&)=default
 Move constructor.
 
CloneMergeroperator= (const CloneMerger &)=delete
 Copy assignment operator.
 
CloneMergeroperator= (CloneMerger &&)=delete
 Move assignment operator.
 
void Exec (const ca::InputData &input, WindowData &wData)
 Registers.
 

Static Private Member Functions

static void InvertCholesky (fvec a[15])
 
static void MultiplySS (fvec const C[15], fvec const V[15], fvec K[5][5])
 
static void MultiplyMS (fvec const C[5][5], fvec const V[15], fvec K[15])
 
static void MultiplySR (fvec const C[15], fvec const r_in[5], fvec r_out[5])
 
static void FilterTracks (fvec const r[5], fvec const C[15], fvec const m[5], fvec const V[15], fvec R[5], fvec W[15], fvec *chi2)
 

Private Attributes

Vector< unsigned short > fTrackFirstStation {"CloneMerger::fTrackFirstStation"}
 First station of a track.
 
Vector< unsigned short > fTrackLastStation {"CloneMerger::fTrackLastStation"}
 Last station of a track.
 
Vector< ca::HitIndex_tfTrackFirstHit {"CloneMerger::fTrackFirstHit"}
 Index of the first hit of a track.
 
Vector< ca::HitIndex_tfTrackLastHit {"CloneMerger::fTrackLastHit"}
 Index of the last hit of a track.
 
Vector< unsigned short > fTrackNeighbour {"CloneMerger::fTrackNeighbour"}
 Index (TODO:??) of a track that can be merge with the given track.
 
Vector< fscalfTrackChi2 {"CloneMerger::fTrackChi2"}
 Chi2 value of the track merging procedure.
 
Vector< char > fTrackIsStored {"CloneMerger::fTrackIsStored"}
 Flag: is the given track already stored to the output.
 
Vector< char > fTrackIsDownstreamNeighbour {"CloneMerger::fTrackIsDownstreamNeighbour"}
 Flag: is the track a downstream neighbour of another track.
 
Vector< TrackfTracksNew {"CaCloneMerger::fTracksNew"}
 vector of tracks after the merge
 
Vector< ca::HitIndex_tfRecoHitsNew {"CaCloneMerger::fRecoHitsNew"}
 vector of track hits after the merge
 
const Parameters< fvec > & fParameters
 Object of Framework parameters class.
 
fscal fDefaultMass {constants::phys::MuonMass}
 mass of the propagated particle [GeV/c2]
 

Detailed Description

Class implements a clones merger algorithm for the CA track finder

Definition at line 27 of file CaCloneMerger.h.

Constructor & Destructor Documentation

◆ CloneMerger() [1/3]

cbm::algo::ca::CloneMerger::CloneMerger ( const ca::Parameters< fvec > & pars,
const fscal mass )

Default constructor.

Definition at line 24 of file CaCloneMerger.cxx.

◆ ~CloneMerger()

cbm::algo::ca::CloneMerger::~CloneMerger ( )

Destructor.

Definition at line 30 of file CaCloneMerger.cxx.

◆ CloneMerger() [2/3]

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

Copy constructor.

◆ CloneMerger() [3/3]

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

Move constructor.

Member Function Documentation

◆ Exec()

void cbm::algo::ca::CloneMerger::Exec ( const ca::InputData & input,
WindowData & wData )

Registers.

Executes track clones merging algorithm and updates input containers

Parameters
inputReference to input data
wDataReference to the external container of reconstructed tracks and hit indices

Definition at line 34 of file CaCloneMerger.cxx.

References cbm::algo::ca::_fvecalignment, cbm::algo::ca::Vector< T >::back(), cbm::algo::kf::TrackParamBase< T >::C00(), cbm::algo::kf::TrackParamBase< T >::C55(), cbm::algo::kf::TrackKalmanFilter< DataT >::Extrapolate(), fDefaultMass, FilterTracks(), fParameters, fRecoHitsNew, fTrackChi2, fTrackFirstHit, fTrackFirstStation, fTrackIsDownstreamNeighbour, fTrackIsStored, fTrackLastHit, fTrackLastStation, fTrackNeighbour, fTracksNew, cbm::algo::ca::InputData::GetHit(), cbm::algo::kf::TrackParamBase< T >::GetQp(), cbm::algo::kf::TrackParamBase< T >::GetTime(), cbm::algo::kf::TrackParamBase< T >::GetX(), cbm::algo::kf::TrackParamBase< T >::NdfTime(), cbm::algo::kf::fmask::One(), cbm::algo::ca::Vector< T >::push_back(), cbm::algo::ca::WindowData::RecoHitIndices(), cbm::algo::ca::WindowData::RecoTracks(), cbm::algo::ca::Vector< T >::reserve(), cbm::algo::ca::Vector< T >::reset(), cbm::algo::kf::FieldValue< T >::Set(), cbm::algo::kf::TrackParamBase< T >::Set(), cbm::algo::kf::TrackKalmanFilter< DataT >::SetMask(), cbm::algo::kf::TrackKalmanFilter< DataT >::SetParticleMass(), cbm::algo::kf::TrackKalmanFilter< DataT >::SetQp0(), cbm::algo::ca::Hit::Station(), cbm::algo::kf::TrackKalmanFilter< DataT >::Tr(), cbm::algo::kf::TrackParamBase< T >::Tx(), cbm::algo::kf::TrackParamBase< T >::Ty(), cbm::algo::kf::TrackParamBase< T >::X(), cbm::algo::kf::TrackParamBase< T >::Y(), and cbm::algo::kf::TrackParamBase< T >::Z().

Referenced by cbm::algo::ca::TrackFinderWindow::CaTrackFinderSlice().

◆ FilterTracks()

void cbm::algo::ca::CloneMerger::FilterTracks ( fvec const r[5],
fvec const C[15],
fvec const m[5],
fvec const V[15],
fvec R[5],
fvec W[15],
fvec * chi2 )
staticprivate

Definition at line 203 of file CaCloneMerger.cxx.

References InvertCholesky(), MultiplyMS(), MultiplySR(), and MultiplySS().

Referenced by Exec().

◆ InvertCholesky()

void cbm::algo::ca::CloneMerger::InvertCholesky ( fvec a[15])
staticprivate

Definition at line 249 of file CaCloneMerger.cxx.

References cbm::algo::kf::utils::fabs(), iif(), and sqrt().

Referenced by FilterTracks().

◆ MultiplyMS()

void cbm::algo::ca::CloneMerger::MultiplyMS ( fvec const C[5][5],
fvec const V[15],
fvec K[15] )
staticprivate

Definition at line 314 of file CaCloneMerger.cxx.

Referenced by FilterTracks().

◆ MultiplySR()

void cbm::algo::ca::CloneMerger::MultiplySR ( fvec const C[15],
fvec const r_in[5],
fvec r_out[5] )
staticprivate

Definition at line 339 of file CaCloneMerger.cxx.

Referenced by FilterTracks().

◆ MultiplySS()

void cbm::algo::ca::CloneMerger::MultiplySS ( fvec const C[15],
fvec const V[15],
fvec K[5][5] )
staticprivate

Multiplication of two symmetric matryces 5x5

Parameters
CLeft matrix: C[0] C[1] C[3] C[6] C[10] C[1] C[2] C[4] C[7] C[11] C = C[3] C[4] C[5] C[8] C[12] C[6] C[7] C[8] C[9] C[13] C[10] C[11] C[12] C[13] C[14]
VRight matrix: V[0] V[1] V[3] V[6] V[10] V[1] V[2] V[4] V[7] V[11] V = V[3] V[4] V[5] V[8] V[12] V[6] V[7] V[8] V[9] V[13] V[10] V[11] V[12] V[13] V[14]
KOutput: K = C * V

Definition at line 350 of file CaCloneMerger.cxx.

Referenced by FilterTracks().

◆ operator=() [1/2]

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

Move assignment operator.

◆ operator=() [2/2]

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

Copy assignment operator.

Member Data Documentation

◆ fDefaultMass

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

mass of the propagated particle [GeV/c2]

Definition at line 123 of file CaCloneMerger.h.

Referenced by Exec().

◆ fParameters

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

Object of Framework parameters class.

Definition at line 122 of file CaCloneMerger.h.

Referenced by Exec().

◆ fRecoHitsNew

Vector<ca::HitIndex_t> cbm::algo::ca::CloneMerger::fRecoHitsNew {"CaCloneMerger::fRecoHitsNew"}
private

vector of track hits after the merge

Definition at line 120 of file CaCloneMerger.h.

Referenced by Exec().

◆ fTrackChi2

Vector<fscal> cbm::algo::ca::CloneMerger::fTrackChi2 {"CloneMerger::fTrackChi2"}
private

Chi2 value of the track merging procedure.

Definition at line 110 of file CaCloneMerger.h.

Referenced by Exec().

◆ fTrackFirstHit

Vector<ca::HitIndex_t> cbm::algo::ca::CloneMerger::fTrackFirstHit {"CloneMerger::fTrackFirstHit"}
private

Index of the first hit of a track.

Definition at line 101 of file CaCloneMerger.h.

Referenced by Exec().

◆ fTrackFirstStation

Vector<unsigned short> cbm::algo::ca::CloneMerger::fTrackFirstStation {"CloneMerger::fTrackFirstStation"}
private

First station of a track.

Definition at line 95 of file CaCloneMerger.h.

Referenced by Exec().

◆ fTrackIsDownstreamNeighbour

Vector<char> cbm::algo::ca::CloneMerger::fTrackIsDownstreamNeighbour {"CloneMerger::fTrackIsDownstreamNeighbour"}
private

Flag: is the track a downstream neighbour of another track.

Definition at line 116 of file CaCloneMerger.h.

Referenced by Exec().

◆ fTrackIsStored

Vector<char> cbm::algo::ca::CloneMerger::fTrackIsStored {"CloneMerger::fTrackIsStored"}
private

Flag: is the given track already stored to the output.

Definition at line 113 of file CaCloneMerger.h.

Referenced by Exec().

◆ fTrackLastHit

Vector<ca::HitIndex_t> cbm::algo::ca::CloneMerger::fTrackLastHit {"CloneMerger::fTrackLastHit"}
private

Index of the last hit of a track.

Definition at line 104 of file CaCloneMerger.h.

Referenced by Exec().

◆ fTrackLastStation

Vector<unsigned short> cbm::algo::ca::CloneMerger::fTrackLastStation {"CloneMerger::fTrackLastStation"}
private

Last station of a track.

Definition at line 98 of file CaCloneMerger.h.

Referenced by Exec().

◆ fTrackNeighbour

Vector<unsigned short> cbm::algo::ca::CloneMerger::fTrackNeighbour {"CloneMerger::fTrackNeighbour"}
private

Index (TODO:??) of a track that can be merge with the given track.

Definition at line 107 of file CaCloneMerger.h.

Referenced by Exec().

◆ fTracksNew

Vector<Track> cbm::algo::ca::CloneMerger::fTracksNew {"CaCloneMerger::fTracksNew"}
private

vector of tracks after the merge

Definition at line 118 of file CaCloneMerger.h.

Referenced by Exec().


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