BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
CbmKF Class Reference

The CbmKF Kalman Filter algorithm. More...

#include <CbmKF.h>

Inheritance diagram for CbmKF:
Collaboration diagram for CbmKF:

Public Member Functions

 CbmKF (const char *name="KF", Int_t iVerbose=1)
 ~CbmKF ()
void SetParContainers ()
InitStatus ReInit ()
InitStatus Init ()
Int_t GetMaterialIndex (Int_t uid)
Int_t Propagate (Double_t *T, Double_t *C, Double_t z_out, Double_t QP0, Bool_t line=false)
 Propagation of (T, C) to z_out without material, using linearisation at qp0.
Int_t PassMaterial (CbmKFTrackInterface &track, Double_t &QP0, Int_t ifst, Int_t ilst)
Int_t PassMaterialBetween (CbmKFTrackInterface &track, Double_t &QP0, Int_t ifst, Int_t ilst)
Int_t PassMaterialBetween (CbmKFTrackInterface &track, Double_t &QP0, CbmKFHit *fst, CbmKFHit *lst)
BmnNewFieldMap * GetMagneticField ()
Int_t GetMethod ()
void SetMethod (Int_t fm)
int GetNMvdStations () const
int GetNStsStations () const
virtual void SetField (const std::unique_ptr< FairField > &magneticField)
 CbmKF (const char *name="KF", Int_t iVerbose=1)
 ~CbmKF ()
void SetParContainers ()
InitStatus ReInit ()
InitStatus Init ()
Int_t GetMaterialIndex (Int_t uid)
Int_t Propagate (Double_t *T, Double_t *C, Double_t z_out, Double_t QP0, Bool_t line=false)
 Propagation of (T, C) to z_out without material, using linearisation at qp0.
Int_t PassMaterial (CbmKFTrackInterface &track, Double_t &QP0, Int_t ifst, Int_t ilst)
Int_t PassMaterialBetween (CbmKFTrackInterface &track, Double_t &QP0, Int_t ifst, Int_t ilst)
Int_t PassMaterialBetween (CbmKFTrackInterface &track, Double_t &QP0, CbmKFHit *fst, CbmKFHit *lst)
BmnNewFieldMap * GetMagneticField ()
Int_t GetMethod ()
void SetMethod (Int_t fm)
int GetNMvdStations () const
int GetNStsStations () const
virtual void SetField (const std::unique_ptr< FairField > &magneticField)
Public Member Functions inherited from BmnTask
 BmnTask ()
 Default constructor.
 BmnTask (const char *name, Int_t iVerbose=1)
 Standard constructor.
virtual ~BmnTask ()
 Destroy the BmnTask object.
virtual void OnlineWrite (const std::unique_ptr< TTree > &resultTree)
 Write task resul to tree.
 BmnTask (const BmnTask &)=delete
BmnTask & operator= (const BmnTask &)=delete
 BmnTask ()
 Default constructor.
 BmnTask (const char *name, Int_t iVerbose=1)
 Standard constructor.
virtual ~BmnTask ()
 Destroy the BmnTask object.
virtual void OnlineWrite (const std::unique_ptr< TTree > &resultTree)
 Write task resul to tree.
 BmnTask (const BmnTask &)=delete
BmnTask & operator= (const BmnTask &)=delete

Static Public Member Functions

static CbmKF * Instance ()
static CbmKF * Instance ()

Public Attributes

std::vector< CbmKFMaterial * > vMaterial
std::vector< CbmKFTube > vMvdMaterial
std::vector< CbmKFTube > vStsMaterial
std::vector< CbmKFWall > vSttMaterial
std::vector< CbmKFTube > vTargets
std::vector< CbmKFCone > vPipe
std::vector< CbmKFTube > vPassiveTube
std::vector< CbmKFWall > vPassiveWall
std::vector< CbmKFBox > vPassiveBox
std::map< Int_t, Int_t > MvdStationIDMap
std::map< Int_t, Int_t > StsStationIDMap
std::map< Int_t, Int_t > SttStationIDMap
CbmStsDigiScheme * StsDigi

Private Member Functions

Int_t ReadTube (CbmKFTube &tube, FairGeoNode *node)
Int_t ReadTube (CbmKFTube &tube, TGeoVolume *vol)
CbmKFMaterial * ReadPassive (FairGeoNode *node)
 CbmKF (const CbmKF &)
void operator= (const CbmKF &)
Int_t ReadTube (CbmKFTube &tube, FairGeoNode *node)
Int_t ReadTube (CbmKFTube &tube, TGeoVolume *vol)
CbmKFMaterial * ReadPassive (FairGeoNode *node)
 CbmKF (const CbmKF &)
void operator= (const CbmKF &)

Private Attributes

BmnNewFieldMap * fMagneticField
Int_t fMethod
std::map< Int_t, Int_t > fMaterialID2IndexMap

Static Private Attributes

static CbmKF * fInstance = 0

Detailed Description

Author
S.Gorbunov
Version
0.0
Since
02.12.05

Description will be here

To be used by high-level utilites like StsTrackFitter

Definition at line 27 of file CbmKF.h.

Constructor & Destructor Documentation

◆ CbmKF() [1/4]

CbmKF::CbmKF ( const char * name = "KF",
Int_t iVerbose = 1 )

Definition at line 25 of file CbmKF.cxx.

References BmnTask::BmnTask(), fInstance, fMagneticField, fMaterialID2IndexMap, fMethod, CbmStsDigiScheme::Instance(), MvdStationIDMap, StsDigi, StsStationIDMap, SttStationIDMap, vMaterial, vMvdMaterial, vPassiveBox, vPassiveTube, vPassiveWall, vPipe, vStsMaterial, vSttMaterial, and vTargets.

Referenced by CbmKF(), Instance(), and operator=().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~CbmKF() [1/2]

CbmKF::~CbmKF ( )

Definition at line 57 of file CbmKF.cxx.

References fInstance.

◆ CbmKF() [2/4]

CbmKF::CbmKF ( const CbmKF & )
private

References CbmKF().

Here is the call graph for this function:

◆ CbmKF() [3/4]

CbmKF::CbmKF ( const char * name = "KF",
Int_t iVerbose = 1 )

◆ ~CbmKF() [2/2]

CbmKF::~CbmKF ( )

◆ CbmKF() [4/4]

CbmKF::CbmKF ( const CbmKF & )
private

References CbmKF().

Here is the call graph for this function:

Member Function Documentation

◆ GetMagneticField() [1/2]

BmnNewFieldMap * CbmKF::GetMagneticField ( )
inline
  • Usefull information

Definition at line 72 of file CbmKF.h.

References fMagneticField.

Referenced by CbmKFParticle::Construct(), CbmKFParticle::ConstructFromKFParticle(), CbmKFParticle::Convert(), CbmKFParticle::Extrapolate(), CbmL1::FieldApproxCheck(), CbmL1::FieldIntegralCheck(), CbmKFParticle::GetDStoPoint(), KFParticle::GetFieldValue(), CbmL1::Init(), and CbmL1::WriteSIMDKFData().

Here is the caller graph for this function:

◆ GetMagneticField() [2/2]

BmnNewFieldMap * CbmKF::GetMagneticField ( )
inline
  • Usefull information

Definition at line 72 of file CbmKF.h.

References fMagneticField.

◆ GetMaterialIndex() [1/2]

Int_t CbmKF::GetMaterialIndex ( Int_t uid)
  • Utilites

Definition at line 459 of file CbmKF.cxx.

References fMaterialID2IndexMap, and i.

Referenced by BmnKFStsHit::Create(), CbmKFStsHit::Create(), and CbmKFStsHit::Create().

Here is the caller graph for this function:

◆ GetMaterialIndex() [2/2]

Int_t CbmKF::GetMaterialIndex ( Int_t uid)
  • Utilites

◆ GetMethod() [1/2]

Int_t CbmKF::GetMethod ( )
inline

Definition at line 78 of file CbmKF.h.

References fMethod.

Referenced by CbmKFTrackInterface::Fit(), BmnStsKFTrackFitter::FitWithMat(), and CbmKFTrackInterface::Smooth().

Here is the caller graph for this function:

◆ GetMethod() [2/2]

Int_t CbmKF::GetMethod ( )
inline

Definition at line 78 of file CbmKF.h.

References fMethod.

◆ GetNMvdStations() [1/2]

int CbmKF::GetNMvdStations ( ) const
inline

Definition at line 85 of file CbmKF.h.

References Instance(), and vMvdMaterial.

Here is the call graph for this function:

◆ GetNMvdStations() [2/2]

int CbmKF::GetNMvdStations ( ) const
inline

Definition at line 85 of file CbmKF.h.

References Instance(), and vMvdMaterial.

Here is the call graph for this function:

◆ GetNStsStations() [1/2]

int CbmKF::GetNStsStations ( ) const
inline

Definition at line 87 of file CbmKF.h.

References CbmStsDigiScheme::GetNStations(), and CbmStsDigiScheme::Instance().

Referenced by BmnStsVectorFinder::Exec(), and BmnStsVectorFinderV9::Exec().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetNStsStations() [2/2]

int CbmKF::GetNStsStations ( ) const
inline

Definition at line 87 of file CbmKF.h.

References CbmStsDigiScheme::GetNStations(), and CbmStsDigiScheme::Instance().

Here is the call graph for this function:

◆ Init() [1/2]

◆ Init() [2/2]

InitStatus CbmKF::Init ( )

◆ Instance() [1/2]

CbmKF * CbmKF::Instance ( )
inlinestatic

Definition at line 34 of file CbmKF.h.

References CbmKF(), and fInstance.

Referenced by BmnMotherFitterPart::BmnMotherFitterPart(), BmnMotherFitterPart::BmnMotherFitterPart(), BmnParticle::BmnParticle(), CbmKFParticle::Construct(), CbmKFParticle::ConstructFromKFParticle(), CbmKFParticle::Convert(), BmnKFStsHit::Create(), CbmKFStsHit::Create(), CbmKFStsHit::Create(), L1AlgoDraw::DrawMCTracks(), BmnKFPrimaryVertexFinder::EvalVertex(), BmnStsVectorFinder::Exec(), BmnStsVectorFinderV9::Exec(), CbmKFParticlesFinderQA::Exec(), CbmKFTrackFitQA::Exec(), CbmL1SttTrackFinder::Exec(), CbmStsFitPerformanceTask::Exec(), CbmKFParticle::Extrapolate(), CbmKFTrackInterface::Extrapolate(), CbmL1::FieldApproxCheck(), CbmL1::FieldIntegralCheck(), CbmKFTrackFitQA::FillHitHistos(), BmnStsVectorFinder::FilterHit(), BmnStsVectorFinderV9::FilterHit(), BmnKFPrimaryVertexFinder::Fit(), CbmKFPrimaryVertexFinder::Fit(), CbmKFSecondaryVertexFinder::Fit(), CbmKFTrackInterface::Fit(), BmnStsKFTrackFitter::FitWithMat(), CbmKFParticle::GetDStoPoint(), KFParticle::GetFieldValue(), CbmKFTrErrMCPoints::GetNConsHitStations(), CbmKFTrErrMCPoints::GetNConsMCStations(), CbmKFTrErrMCPoints::GetNHitStations(), CbmKFTrErrMCPoints::GetNMaxMCPointsOnStation(), GetNMvdStations(), CbmKFParticlesFinderQA::Init(), CbmKFTrackFitQA::Init(), CbmL1::Init(), CbmKFCone::Pass(), CbmKFMaterial::Pass(), CbmKFTrackInterface::Propagate(), CbmL1::ReadEvent(), CbmKFTrackInterface::Smooth(), BmnParticle::Track2Part(), and CbmL1::WriteSIMDKFData().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Instance() [2/2]

CbmKF * CbmKF::Instance ( )
inlinestatic

Definition at line 34 of file CbmKF.h.

References CbmKF(), and fInstance.

Here is the call graph for this function:

◆ operator=() [1/2]

void CbmKF::operator= ( const CbmKF & )
private

References CbmKF().

Here is the call graph for this function:

◆ operator=() [2/2]

void CbmKF::operator= ( const CbmKF & )
private

References CbmKF().

Here is the call graph for this function:

◆ PassMaterial() [1/2]

Int_t CbmKF::PassMaterial ( CbmKFTrackInterface & track,
Double_t & QP0,
Int_t ifst,
Int_t ilst )

Definition at line 840 of file CbmKF.cxx.

References i, and vMaterial.

◆ PassMaterial() [2/2]

Int_t CbmKF::PassMaterial ( CbmKFTrackInterface & track,
Double_t & QP0,
Int_t ifst,
Int_t ilst )

◆ PassMaterialBetween() [1/4]

Int_t CbmKF::PassMaterialBetween ( CbmKFTrackInterface & track,
Double_t & QP0,
CbmKFHit * fst,
CbmKFHit * lst )

Definition at line 862 of file CbmKF.cxx.

References CbmKFHit::MaterialIndex, and PassMaterialBetween().

Here is the call graph for this function:

◆ PassMaterialBetween() [2/4]

Int_t CbmKF::PassMaterialBetween ( CbmKFTrackInterface & track,
Double_t & QP0,
CbmKFHit * fst,
CbmKFHit * lst )

◆ PassMaterialBetween() [3/4]

Int_t CbmKF::PassMaterialBetween ( CbmKFTrackInterface & track,
Double_t & QP0,
Int_t ifst,
Int_t ilst )

Definition at line 851 of file CbmKF.cxx.

References i, and vMaterial.

Referenced by PassMaterialBetween().

Here is the caller graph for this function:

◆ PassMaterialBetween() [4/4]

Int_t CbmKF::PassMaterialBetween ( CbmKFTrackInterface & track,
Double_t & QP0,
Int_t ifst,
Int_t ilst )

◆ Propagate() [1/2]

Int_t CbmKF::Propagate ( Double_t * T,
Double_t * C,
Double_t z_out,
Double_t QP0,
Bool_t line = false )

Definition at line 747 of file CbmKF.cxx.

References CbmKFFieldMath::ExtrapolateALight(), CbmKFFieldMath::ExtrapolateLine(), CbmKFFieldMath::ExtrapolateRK4(), fabs(), fMagneticField, fMethod, BmnFieldMap::GetPositionZ(), and BmnFieldMap::GetZmax().

Referenced by L1AlgoDraw::DrawMCTracks(), CbmKFCone::Pass(), CbmKFMaterial::Pass(), CbmKFTrackInterface::Propagate(), and CbmKFTrackInterface::Smooth().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Propagate() [2/2]

Int_t CbmKF::Propagate ( Double_t * T,
Double_t * C,
Double_t z_out,
Double_t QP0,
Bool_t line = false )

◆ ReadPassive() [1/2]

CbmKFMaterial * CbmKF::ReadPassive ( FairGeoNode * node)
private

Definition at line 631 of file CbmKF.cxx.

References TArrayD::At(), i, v, vPassiveBox, vPassiveTube, z, and z0.

Referenced by Init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReadPassive() [2/2]

CbmKFMaterial * CbmKF::ReadPassive ( FairGeoNode * node)
private

◆ ReadTube() [1/4]

Int_t CbmKF::ReadTube ( CbmKFTube & tube,
FairGeoNode * node )
private

Definition at line 517 of file CbmKF.cxx.

References TArrayD::At(), CbmKFTube::dz, CbmKFMaterial::F, CbmKFMaterial::Fe, i, CbmKFMaterial::ID, CbmKFTube::R, CbmKFTube::r, CbmKFMaterial::RadLength, CbmKFTube::RR, CbmKFTube::rr, TMath::Sqrt(), CbmKFTube::x, CbmKFTube::y, CbmKFTube::z, z, CbmKFMaterial::ZReference, and CbmKFMaterial::ZThickness.

Referenced by Init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReadTube() [2/4]

Int_t CbmKF::ReadTube ( CbmKFTube & tube,
FairGeoNode * node )
private

◆ ReadTube() [3/4]

◆ ReadTube() [4/4]

Int_t CbmKF::ReadTube ( CbmKFTube & tube,
TGeoVolume * vol )
private

◆ ReInit() [1/2]

InitStatus CbmKF::ReInit ( )

Definition at line 78 of file CbmKF.cxx.

References Init(), and StsDigi.

Here is the call graph for this function:

◆ ReInit() [2/2]

InitStatus CbmKF::ReInit ( )

◆ SetField() [1/2]

virtual void CbmKF::SetField ( const std::unique_ptr< FairField > & magneticField)
inlinevirtual

Definition at line 89 of file CbmKF.h.

References fMagneticField.

◆ SetField() [2/2]

virtual void CbmKF::SetField ( const std::unique_ptr< FairField > & magneticField)
inlinevirtual

Definition at line 89 of file CbmKF.h.

References fMagneticField.

◆ SetMethod() [1/2]

void CbmKF::SetMethod ( Int_t fm)
inline

Definition at line 80 of file CbmKF.h.

References fMethod.

Referenced by CbmKFTrackInterface::Fit().

Here is the caller graph for this function:

◆ SetMethod() [2/2]

void CbmKF::SetMethod ( Int_t fm)
inline

Definition at line 80 of file CbmKF.h.

References fMethod.

◆ SetParContainers() [1/2]

void CbmKF::SetParContainers ( )

Definition at line 62 of file CbmKF.cxx.

◆ SetParContainers() [2/2]

void CbmKF::SetParContainers ( )

Member Data Documentation

◆ fInstance

CbmKF * CbmKF::fInstance = 0
staticprivate

Definition at line 95 of file CbmKF.h.

Referenced by CbmKF(), ~CbmKF(), and Instance().

◆ fMagneticField

BmnNewFieldMap * CbmKF::fMagneticField
private

Definition at line 99 of file CbmKF.h.

Referenced by CbmKF(), GetMagneticField(), Init(), Propagate(), and SetField().

◆ fMaterialID2IndexMap

std::map< Int_t, Int_t > CbmKF::fMaterialID2IndexMap
private

Definition at line 106 of file CbmKF.h.

Referenced by CbmKF(), GetMaterialIndex(), and Init().

◆ fMethod

Int_t CbmKF::fMethod
private

Definition at line 101 of file CbmKF.h.

Referenced by CbmKF(), GetMethod(), Propagate(), and SetMethod().

◆ MvdStationIDMap

std::map< Int_t, Int_t > CbmKF::MvdStationIDMap

Definition at line 74 of file CbmKF.h.

Referenced by CbmKF(), CbmStsFitPerformanceTask::Exec(), and Init().

◆ StsDigi

CbmStsDigiScheme * CbmKF::StsDigi

Definition at line 83 of file CbmKF.h.

Referenced by CbmKF(), BmnKFStsHit::Create(), Init(), and ReInit().

◆ StsStationIDMap

std::map< Int_t, Int_t > CbmKF::StsStationIDMap

Definition at line 75 of file CbmKF.h.

Referenced by CbmKF(), CbmStsFitPerformanceTask::Exec(), and Init().

◆ SttStationIDMap

std::map< Int_t, Int_t > CbmKF::SttStationIDMap

Definition at line 76 of file CbmKF.h.

Referenced by CbmKF(), CbmL1SttTrackFinder::Exec(), and Init().

◆ vMaterial

◆ vMvdMaterial

std::vector< CbmKFTube > CbmKF::vMvdMaterial

◆ vPassiveBox

std::vector< CbmKFBox > CbmKF::vPassiveBox

Definition at line 67 of file CbmKF.h.

Referenced by CbmKF(), Init(), PassMaterialBetween(), and ReadPassive().

◆ vPassiveTube

std::vector< CbmKFTube > CbmKF::vPassiveTube

Definition at line 65 of file CbmKF.h.

Referenced by CbmKF(), Init(), PassMaterialBetween(), and ReadPassive().

◆ vPassiveWall

std::vector< CbmKFWall > CbmKF::vPassiveWall

Definition at line 66 of file CbmKF.h.

Referenced by CbmKF(), Init(), and PassMaterialBetween().

◆ vPipe

std::vector< CbmKFCone > CbmKF::vPipe

Definition at line 63 of file CbmKF.h.

Referenced by CbmKF(), Init(), and PassMaterialBetween().

◆ vStsMaterial

std::vector< CbmKFTube > CbmKF::vStsMaterial

Definition at line 60 of file CbmKF.h.

Referenced by CbmKF(), Init(), and PassMaterialBetween().

◆ vSttMaterial

std::vector< CbmKFWall > CbmKF::vSttMaterial

Definition at line 61 of file CbmKF.h.

Referenced by CbmKF(), CbmL1SttTrackFinder::Exec(), Init(), and PassMaterialBetween().

◆ vTargets


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