CbmRoot
|
#include <CaCloneMerger.h>
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. | |
CloneMerger & | operator= (const CloneMerger &)=delete |
Copy assignment operator. | |
CloneMerger & | operator= (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_t > | fTrackFirstHit {"CloneMerger::fTrackFirstHit"} |
Index of the first hit of a track. | |
Vector< ca::HitIndex_t > | fTrackLastHit {"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< fscal > | fTrackChi2 {"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< Track > | fTracksNew {"CaCloneMerger::fTracksNew"} |
vector of tracks after the merge | |
Vector< ca::HitIndex_t > | fRecoHitsNew {"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] | |
Class implements a clones merger algorithm for the CA track finder
Definition at line 27 of file CaCloneMerger.h.
cbm::algo::ca::CloneMerger::CloneMerger | ( | const ca::Parameters< fvec > & | pars, |
const fscal | mass ) |
Default constructor.
Definition at line 24 of file CaCloneMerger.cxx.
cbm::algo::ca::CloneMerger::~CloneMerger | ( | ) |
Destructor.
Definition at line 30 of file CaCloneMerger.cxx.
|
default |
Copy constructor.
|
default |
Move constructor.
void cbm::algo::ca::CloneMerger::Exec | ( | const ca::InputData & | input, |
WindowData & | wData ) |
Registers.
Executes track clones merging algorithm and updates input containers
input | Reference to input data |
wData | Reference 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().
|
staticprivate |
Definition at line 203 of file CaCloneMerger.cxx.
References InvertCholesky(), MultiplyMS(), MultiplySR(), and MultiplySS().
Referenced by Exec().
|
staticprivate |
Definition at line 249 of file CaCloneMerger.cxx.
References cbm::algo::kf::utils::fabs(), iif(), and sqrt().
Referenced by FilterTracks().
|
staticprivate |
Definition at line 314 of file CaCloneMerger.cxx.
Referenced by FilterTracks().
|
staticprivate |
Definition at line 339 of file CaCloneMerger.cxx.
Referenced by FilterTracks().
|
staticprivate |
Multiplication of two symmetric matryces 5x5
C | Left 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] |
V | Right 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] |
K | Output: K = C * V |
Definition at line 350 of file CaCloneMerger.cxx.
Referenced by FilterTracks().
|
delete |
Move assignment operator.
|
delete |
Copy assignment operator.
|
private |
mass of the propagated particle [GeV/c2]
Definition at line 123 of file CaCloneMerger.h.
Referenced by Exec().
|
private |
Object of Framework parameters class.
Definition at line 122 of file CaCloneMerger.h.
Referenced by Exec().
|
private |
vector of track hits after the merge
Definition at line 120 of file CaCloneMerger.h.
Referenced by Exec().
Chi2 value of the track merging procedure.
Definition at line 110 of file CaCloneMerger.h.
Referenced by Exec().
|
private |
Index of the first hit of a track.
Definition at line 101 of file CaCloneMerger.h.
Referenced by Exec().
|
private |
|
private |
Flag: is the track a downstream neighbour of another track.
Definition at line 116 of file CaCloneMerger.h.
Referenced by Exec().
|
private |
Flag: is the given track already stored to the output.
Definition at line 113 of file CaCloneMerger.h.
Referenced by Exec().
|
private |
Index of the last hit of a track.
Definition at line 104 of file CaCloneMerger.h.
Referenced by Exec().
|
private |
|
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().
vector of tracks after the merge
Definition at line 118 of file CaCloneMerger.h.
Referenced by Exec().