EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TrKalmanFilter Class Referenceabstract

#include <EicRoot/blob/master/eic/htc/TrKalmanFilter.h>

+ Inheritance diagram for TrKalmanFilter:
+ Collaboration diagram for TrKalmanFilter:

Public Member Functions

 TrKalmanFilter (MfieldMode fieldMode=WithField)
 
t_particle_groupSetParticleGroup (const char *group)
 
MfieldMode GetFieldMode () const
 
int Configure (MediaBank *media_bank, StringList *config)
 
virtual MgridSliceInitializeMgridSlice (double z0)=0
 
int InitializeRungeKuttaFrames ()
 
int InitializeMediaSlices (MediaBank *media_bank)
 
void SetLocationSeparationDistance (double value)
 
int CalculateHMatrix (KalmanNode *node)
 
int Transport (KalmanNode *from, KalmanFilter::Direction fb, unsigned mode)
 
int TransportExtra (KalmanNode *from, KalmanFilter::Direction fb, unsigned mode)
 
void ResetNode (TrKalmanNode *node, double S[], int assignmentMode)
 
void SelectActiveNodes ()
 
void SetUpLocations ()
 
TrKalmanNodeLocationGetLocationHead () const
 
void BuildNodeList ()
 
void AccountEnergyLosses (bool flag)
 
- Public Member Functions inherited from KalmanFilter
 KalmanFilter (int sdim)
 
 ~KalmanFilter ()
 
void SetVerbosity (Verbosity verb)
 
void SetXmCalculationFlag (bool flag)
 
void SetNodeGapMax (double value)
 
void SetMinFilterChiSquareCCDF (double value)
 
double GetMinFilterChiSquareCCDF () const
 
void SetMinSmootherChiSquareCCDF (double value)
 
void SetPositivityFixParameters (double maxFixablePositivityScrewup, double positivityCorrelationFix)
 
void SetRFCutoffValue (double value)
 
KalmanNodeAddNode (const char *name, double z, int mdim, const bool nonLinearTransportFlags[2])
 
KalmanNodeAddNodeWrapper (const char *name, const char *format, double z, int mdim)
 
int Configure (const StringList *config)
 
unsigned FilterPass (KalmanNode *start, KalmanNode *end, KalmanFilter::Direction fb)
 
unsigned FullChain (KalmanNode *start, KalmanNode *end, KalmanFilter::Direction fb, int mode)
 
void ResetFiredFlags ()
 
void HackGroupHitCountLimit (unsigned min)
 
void LatchGroupNdfControlFlags ()
 
KalmanNodeGetHead () const
 
KalmanNodeGetTail () const
 
int GetFilterNdf () const
 
double GetFilterChiSquare () const
 
double GetFilterChiSquareCCDF () const
 
int SmootherPass ()
 
void SetExtraNdfCount (int count)
 

Protected Attributes

double mLocationSeparationDistance
 
TrKalmanNodeLocationmLocationHead
 
TrKalmanNodeLocationmLocationTail
 
- Protected Attributes inherited from KalmanFilter
std::multimap< double,
KalmanNode * > 
mKalmanNodePool
 

Private Member Functions

KalmanNodeAllocateNode ()
 
bool NeedNonLinearTransport (double z) const
 
int AccountIonizationLosses (TrKalmanNode *from, KalmanFilter::Direction fb)
 
int CalculateProcessNoise (TrKalmanNode *from, KalmanFilter::Direction fb)
 
int CalculateMagnetOffTransportMatrices ()
 

Private Attributes

MfieldMode mFieldMode
 
t_particle_groupmParticleGroup
 
bool mAccountEnergyLosses
 

Additional Inherited Members

- Public Types inherited from KalmanFilter
enum  Direction { Undefined = -1, Forward, Backward }
 
enum  Verbosity { Never, Error, Warning, Info }
 

Detailed Description

Definition at line 21 of file TrKalmanFilter.h.

View newest version in sPHENIX GitHub at line 21 of file TrKalmanFilter.h

Constructor & Destructor Documentation

TrKalmanFilter::TrKalmanFilter ( MfieldMode  fieldMode = WithField)
inline

Definition at line 24 of file TrKalmanFilter.h.

View newest version in sPHENIX GitHub at line 24 of file TrKalmanFilter.h

Member Function Documentation

void TrKalmanFilter::AccountEnergyLosses ( bool  flag)
inline

Definition at line 66 of file TrKalmanFilter.h.

View newest version in sPHENIX GitHub at line 66 of file TrKalmanFilter.h

Referenced by FwdTrackFinder::AccountEnergyLosses().

+ Here is the caller graph for this function:

int TrKalmanFilter::AccountIonizationLosses ( TrKalmanNode from,
KalmanFilter::Direction  fb 
)
private

Definition at line 318 of file TrKalmanFilter.cxx.

View newest version in sPHENIX GitHub at line 318 of file TrKalmanFilter.cxx

References KalmanFilter::Backward, KalmanFilter::Forward, MediaSliceArray::GetDE(), TrKalmanNode::GetNext(), TrKalmanNode::GetZ(), KfMatrix::KFV(), mAccountEnergyLosses, mass, t_particle_group::mass, TrKalmanNode::mInversedMomentum, TrKalmanNode::mLocation, TrKalmanNodeLocation::mMediaSliceArray, mParticleGroup, SQR, and KalmanNode::x0.

Referenced by TransportExtra().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

KalmanNode* TrKalmanFilter::AllocateNode ( )
inlineprivatevirtual

Reimplemented from KalmanFilter.

Definition at line 85 of file TrKalmanFilter.h.

View newest version in sPHENIX GitHub at line 85 of file TrKalmanFilter.h

void TrKalmanFilter::BuildNodeList ( )
inlinevirtual

Reimplemented from KalmanFilter.

Definition at line 60 of file TrKalmanFilter.h.

View newest version in sPHENIX GitHub at line 60 of file TrKalmanFilter.h

References KalmanFilter::BuildNodeList(), and CalculateMagnetOffTransportMatrices().

Referenced by FwdHoughTree::SetupKalmanFilter().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int TrKalmanFilter::CalculateHMatrix ( KalmanNode node)
virtual

Implements KalmanFilter.

Definition at line 428 of file TrKalmanFilter.cxx.

View newest version in sPHENIX GitHub at line 428 of file TrKalmanFilter.cxx

References _drv_steps, _SY_, _X_, KfMatrix::ARR(), TrKalmanNode::GetZ(), KalmanNode::H, ip(), KfMatrix::KFM(), KalmanNode::m, KalmanNode::mDim, TrKalmanNode::mHit, TrKalmanNode::mSensitiveVolume, Acts::UnitConstants::pm, SensitiveVolume::TrackToHitDistance(), and KalmanNode::x0.

+ Here is the call graph for this function:

int TrKalmanFilter::CalculateMagnetOffTransportMatrices ( )
private

Definition at line 68 of file TrKalmanFilter.cxx.

View newest version in sPHENIX GitHub at line 68 of file TrKalmanFilter.cxx

References KalmanFilter::Backward, KalmanNode::FF, KalmanFilter::Forward, KalmanFilter::GetHead(), TrKalmanNode::GetNext(), TrKalmanNode::GetZ(), and KfMatrix::KFM().

Referenced by BuildNodeList(), and Configure().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int TrKalmanFilter::CalculateProcessNoise ( TrKalmanNode from,
KalmanFilter::Direction  fb 
)
private

Definition at line 369 of file TrKalmanFilter.cxx.

View newest version in sPHENIX GitHub at line 369 of file TrKalmanFilter.cxx

References _SX_, _SY_, _X_, Acts::UnitConstants::e, TrKalmanNode::GetNext(), KalmanNode::GetX0(), TrKalmanNode::GetZ(), KalmanNode::GetZ(), ip(), KfMatrix::KFM(), KfMatrix::KFV(), t_particle_group::mass, ProcessNoise::mCxx, ProcessNoise::mCxy, ProcessNoise::mCyy, TrKalmanNode::mInversedMomentum, TrKalmanNode::mLocation, mParticleGroup, TrKalmanNodeLocation::mProcessNoise, p, KalmanNode::Q, SQR, and KalmanNode::x0.

Referenced by TransportExtra().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int TrKalmanFilter::Configure ( MediaBank media_bank,
StringList config 
)

Definition at line 169 of file TrKalmanFilter.cxx.

View newest version in sPHENIX GitHub at line 169 of file TrKalmanFilter.cxx

References _RETURN_, CalculateMagnetOffTransportMatrices(), KalmanFilter::Configure(), InitializeMediaSlices(), InitializeRungeKuttaFrames(), mFieldMode, and WithField.

Referenced by EicHtcTask::ConfigureKalmanFilter().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

MfieldMode TrKalmanFilter::GetFieldMode ( ) const
inline

Definition at line 34 of file TrKalmanFilter.h.

View newest version in sPHENIX GitHub at line 34 of file TrKalmanFilter.h

References mFieldMode.

Referenced by FwdHoughTree::FinalFit(), EicHtcTask::GetFairTrackParP(), FwdTrackFinder::ResetVtxNode(), FwdTrackFinder::UpdateVtxNode(), and FwdTrackFinder::WithMagneticField().

+ Here is the caller graph for this function:

TrKalmanNodeLocation* TrKalmanFilter::GetLocationHead ( ) const
inline

Definition at line 56 of file TrKalmanFilter.h.

View newest version in sPHENIX GitHub at line 56 of file TrKalmanFilter.h

References mLocationHead.

Referenced by FwdTrackFinder::Init().

+ Here is the caller graph for this function:

int TrKalmanFilter::InitializeMediaSlices ( MediaBank media_bank)

Definition at line 190 of file TrKalmanFilter.cxx.

View newest version in sPHENIX GitHub at line 190 of file TrKalmanFilter.cxx

References KalmanFilter::Backward, KalmanFilter::Forward, TrKalmanNodeLocation::GetNext(), and mLocationHead.

Referenced by Configure().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

virtual MgridSlice* TrKalmanFilter::InitializeMgridSlice ( double  z0)
pure virtual

Implemented in HtcKalmanFilter.

Referenced by InitializeRungeKuttaFrames().

+ Here is the caller graph for this function:

int TrKalmanFilter::InitializeRungeKuttaFrames ( )

Definition at line 220 of file TrKalmanFilter.cxx.

View newest version in sPHENIX GitHub at line 220 of file TrKalmanFilter.cxx

References RungeKutta::_order, _RK_ORDER_2_, _RK_ORDER_4_, _RK_ORDER_5_, a2, a3, a4, a5, a6, KalmanFilter::Backward, KalmanFilter::Forward, TrKalmanNodeLocation::GetNext(), TrKalmanNodeLocation::GetZ(), Acts::UnitConstants::h, InitializeMgridSlice(), RungeKutta::m1, RungeKutta::m2, RungeKutta::m3, RungeKutta::m4, RungeKutta::m5, RungeKutta::m6, mLocationHead, RK_small_step_limit, and RK_small_step_order.

Referenced by Configure().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool TrKalmanFilter::NeedNonLinearTransport ( double  z) const
inlineprivatevirtual

Reimplemented from KalmanFilter.

Definition at line 89 of file TrKalmanFilter.h.

View newest version in sPHENIX GitHub at line 89 of file TrKalmanFilter.h

References mFieldMode, and WithField.

void TrKalmanFilter::ResetNode ( TrKalmanNode node,
double  S[],
int  assignmentMode 
)

Definition at line 484 of file TrKalmanFilter.cxx.

View newest version in sPHENIX GitHub at line 484 of file TrKalmanFilter.cxx

References _FLYSUB_COVARIANCE_BLOWUP_CFF_, _FLYSUB_TYPICAL_MOMENTUM_ERROR_, _FLYSUB_TYPICAL_SLOPE_ERROR_, _FLYSUB_TYPICAL_XY_COORD_ERROR_, _QP_, _SX_, _SY_, _USE_00_, _USE_XF_, _X_, _Y_, add(), KalmanNode::CP, ip(), KfMatrix::KFM(), KfMatrix::KFV(), mFieldMode, TrKalmanNode::mInversedMomentum, NoField, KfMatrix::Reset(), SQR, KalmanNode::x0, KalmanNode::xf, KalmanNode::xp, and KalmanNode::xs.

Referenced by EicHtcTask::ConstructLinearTrackApproximation(), and EicHtcTask::Exec().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void TrKalmanFilter::SelectActiveNodes ( )

Definition at line 17 of file TrKalmanFilter.cxx.

View newest version in sPHENIX GitHub at line 17 of file TrKalmanFilter.cxx

References KalmanFilter::Forward, TrKalmanNodeLocation::GetNext(), KalmanNode::IsFired(), it, KalmanFilter::mKalmanNodePool, mLocationHead, and TrKalmanNode::SetActiveFlag().

Referenced by FwdHoughTree::SetupKalmanFilter().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void TrKalmanFilter::SetLocationSeparationDistance ( double  value)
inline

Definition at line 41 of file TrKalmanFilter.h.

View newest version in sPHENIX GitHub at line 41 of file TrKalmanFilter.h

References mLocationSeparationDistance, and value.

Referenced by FwdTrackFinder::SetLocationSeparationDistance().

+ Here is the caller graph for this function:

t_particle_group* TrKalmanFilter::SetParticleGroup ( const char *  group)
inline

Definition at line 28 of file TrKalmanFilter.h.

View newest version in sPHENIX GitHub at line 28 of file TrKalmanFilter.h

References get_particle_group_by_name(), and mParticleGroup.

Referenced by EicHtcTask::Exec(), and FwdHoughTree::SetupKalmanFilter().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void TrKalmanFilter::SetUpLocations ( )

Definition at line 98 of file TrKalmanFilter.cxx.

View newest version in sPHENIX GitHub at line 98 of file TrKalmanFilter.cxx

References TrKalmanNodeLocation::AddNode(), TrKalmanNodeLocation::AddSensitiveVolume(), KalmanFilter::Forward, TrKalmanNodeLocation::GetNext(), TrKalmanNode::GetSensitiveVolume(), TrKalmanNode::GetZ(), TrKalmanNodeLocation::GetZ(), it, KalmanFilter::mKalmanNodePool, TrKalmanNode::mLocation, mLocationHead, mLocationSeparationDistance, mLocationTail, TrKalmanNodeLocation::SetNext(), and TrKalmanNodeLocation::SetPrev().

Referenced by EicHtcTask::ConfigureKalmanFilter().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int TrKalmanFilter::Transport ( KalmanNode from,
KalmanFilter::Direction  fb,
unsigned  mode 
)
virtual

Implements KalmanFilter.

Definition at line 282 of file TrKalmanFilter.cxx.

View newest version in sPHENIX GitHub at line 282 of file TrKalmanFilter.cxx

References _CALCULATE_DERIVATIVES_, _QP_, _SY_, _X_, KalmanNode::FM, KalmanFilter::Forward, TrKalmanNode::GetNext(), TrKalmanNode::GetPrev(), ip(), KfMatrix::KFM(), KfMatrix::KFV(), and KalmanNode::x0.

+ Here is the call graph for this function:

int TrKalmanFilter::TransportExtra ( KalmanNode from,
KalmanFilter::Direction  fb,
unsigned  mode 
)
virtual

Reimplemented from KalmanFilter.

Definition at line 50 of file TrKalmanFilter.cxx.

View newest version in sPHENIX GitHub at line 50 of file TrKalmanFilter.cxx

References _CALCULATE_PROCESS_NOISE_, _NFUN_FAILURE_, _RETURN_, _XFUN_FAILURE_, AccountIonizationLosses(), and CalculateProcessNoise().

+ Here is the call graph for this function:

Member Data Documentation

bool TrKalmanFilter::mAccountEnergyLosses
private

Definition at line 80 of file TrKalmanFilter.h.

View newest version in sPHENIX GitHub at line 80 of file TrKalmanFilter.h

Referenced by AccountIonizationLosses().

MfieldMode TrKalmanFilter::mFieldMode
private

Definition at line 73 of file TrKalmanFilter.h.

View newest version in sPHENIX GitHub at line 73 of file TrKalmanFilter.h

Referenced by Configure(), GetFieldMode(), NeedNonLinearTransport(), and ResetNode().

TrKalmanNodeLocation* TrKalmanFilter::mLocationHead
protected

Definition at line 70 of file TrKalmanFilter.h.

View newest version in sPHENIX GitHub at line 70 of file TrKalmanFilter.h

Referenced by GetLocationHead(), InitializeMediaSlices(), InitializeRungeKuttaFrames(), SelectActiveNodes(), and SetUpLocations().

double TrKalmanFilter::mLocationSeparationDistance
protected

Definition at line 66 of file TrKalmanFilter.h.

View newest version in sPHENIX GitHub at line 66 of file TrKalmanFilter.h

Referenced by SetLocationSeparationDistance(), and SetUpLocations().

TrKalmanNodeLocation * TrKalmanFilter::mLocationTail
protected

Definition at line 70 of file TrKalmanFilter.h.

View newest version in sPHENIX GitHub at line 70 of file TrKalmanFilter.h

Referenced by SetUpLocations().

t_particle_group* TrKalmanFilter::mParticleGroup
private

Definition at line 78 of file TrKalmanFilter.h.

View newest version in sPHENIX GitHub at line 78 of file TrKalmanFilter.h

Referenced by AccountIonizationLosses(), CalculateProcessNoise(), and SetParticleGroup().


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