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
 Reference to the Framework parameters class.
 
const kf::Setup< fvec > & fSetup
 Active setup.
 
const kf::Field< fvec > & fField
 Reference to the magnetic field representation.
 
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 26 of file CaCloneMerger.cxx.

References fDefaultMass, fField, fParameters, and fSetup.

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

◆ ~CloneMerger()

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

Destructor.

Definition at line 36 of file CaCloneMerger.cxx.

◆ CloneMerger() [2/3]

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

Copy constructor.

References CloneMerger().

◆ CloneMerger() [3/3]

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

Move constructor.

References CloneMerger().

Member Function Documentation

◆ Exec()

◆ 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 208 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 254 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 319 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 344 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 355 of file CaCloneMerger.cxx.

Referenced by FilterTracks().

◆ operator=() [1/2]

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

Move assignment operator.

References CloneMerger().

◆ operator=() [2/2]

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

Copy assignment operator.

References CloneMerger().

Member Data Documentation

◆ fDefaultMass

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

mass of the propagated particle [GeV/c2]

Definition at line 126 of file CaCloneMerger.h.

Referenced by CloneMerger(), and Exec().

◆ fField

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

Reference to the magnetic field representation.

Definition at line 125 of file CaCloneMerger.h.

Referenced by CloneMerger(), and Exec().

◆ fParameters

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

Reference to the Framework parameters class.

Definition at line 123 of file CaCloneMerger.h.

Referenced by CloneMerger(), and 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().

◆ fSetup

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

Active setup.

Definition at line 124 of file CaCloneMerger.h.

Referenced by CloneMerger(), and 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: