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

#include <EicRoot/blob/master/eic/ayk/KfMatrix.h>

Public Types

enum  MtxType { Symmetric, Arbitrary }
 

Public Member Functions

 KfMatrix (unsigned dim1, unsigned dim2=1)
 
 ~KfMatrix ()
 
int GetDim1 () const
 
int GetDim2 () const
 
double & KFV (int ip)
 
double & KFM (int ip, int iq)
 
double * ARR ()
 
int Unity ()
 
void Reset ()
 
int Invert (MtxType type=Arbitrary)
 
int ForceSymmetric ()
 
int CheckPositivity ()
 
int FixPositivity (double maxFixablePositivityScrewup, double positivityCorrelationFix)
 
void Print (const char *fmt=_PRINTOUT_FORMAT_DEFAULT_)
 
int CorrelationPrint (const char *fmt=_PRINTOUT_FORMAT_DEFAULT_)
 
int CopyFrom (KfMatrix *in)
 
int Add (KfMatrix *in)
 
int Subtract (KfMatrix *in)
 
int SetToSum (KfMatrix *in1, KfMatrix *in2)
 
int SetToDifference (KfMatrix *in1, KfMatrix *in2)
 
int SetToProduct (double cff, KfMatrix *in)
 
int SetToProduct (KfMatrix *in1, KfMatrix *in2, unsigned mode=0x0000)
 
int SetToProduct (KfMatrix *in1, KfMatrix *in2, KfMatrix *in3, unsigned mode=0x0000)
 
int VectorLengthSquare (KfMatrix *metric, double *lsqr)
 

Static Public Member Functions

static void SetDimensionCheckFlag (bool what)
 
static bool GetDimensionCheckFlag ()
 

Private Member Functions

void AssignTrueDimensions (int trans, int dim[2])
 
int AddCore (KfMatrix *in1, KfMatrix *in2, int what)
 
int SetToProductCore (KfMatrix *in1, KfMatrix *in2, KfMatrix *in3, unsigned mode=0x0000)
 
int DimensionMatchCheck (KfMatrix *kfm2)
 
int DimensionChainCheck (KfMatrix *in1, KfMatrix *in2, unsigned mode)
 
KfMatrixBufferize ()
 

Static Private Member Functions

static int KfmReturn (int ret)
 

Private Attributes

int mDim1
 
int mDim2
 
int mDim
 
double * mArr
 

Static Private Attributes

static bool mDimensionCheckFlag = true
 

Detailed Description

Definition at line 21 of file KfMatrix.h.

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

Member Enumeration Documentation

Enumerator:
Symmetric 
Arbitrary 

Definition at line 60 of file KfMatrix.h.

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

Constructor & Destructor Documentation

KfMatrix::KfMatrix ( unsigned  dim1,
unsigned  dim2 = 1 
)

Definition at line 71 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 71 of file KfMatrix.cxx

References mArr, mDim, mDim1, and mDim2.

KfMatrix::~KfMatrix ( )

Definition at line 92 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 92 of file KfMatrix.cxx

References mArr.

Member Function Documentation

int KfMatrix::Add ( KfMatrix in)

Definition at line 308 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 308 of file KfMatrix.cxx

References _KF_MATRIX_ADD_, and AddCore().

+ Here is the call graph for this function:

int KfMatrix::AddCore ( KfMatrix in1,
KfMatrix in2,
int  what 
)
private

Definition at line 262 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 262 of file KfMatrix.cxx

References _KF_MATRIX_ADD_, DimensionMatchCheck(), GetDimensionCheckFlag(), KFM(), KfmReturn(), mDim1, and mDim2.

Referenced by Add(), SetToDifference(), SetToSum(), and Subtract().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double* KfMatrix::ARR ( )
inline

Definition at line 52 of file KfMatrix.h.

View newest version in sPHENIX GitHub at line 52 of file KfMatrix.h

References mArr.

Referenced by TrKalmanFilter::CalculateHMatrix(), Invert(), and TrKalmanNode::PerformRungeKuttaStep().

+ Here is the caller graph for this function:

void KfMatrix::AssignTrueDimensions ( int  trans,
int  dim[2] 
)
private

Definition at line 116 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 116 of file KfMatrix.cxx

References mDim1, and mDim2.

Referenced by DimensionChainCheck().

+ Here is the caller graph for this function:

KfMatrix * KfMatrix::Bufferize ( )
private

Definition at line 195 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 195 of file KfMatrix.cxx

References buffer, CopyFrom(), GetBufferMatrix(), GetDim1(), and GetDim2().

Referenced by SetToProduct().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int KfMatrix::CheckPositivity ( )

Definition at line 595 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 595 of file KfMatrix.cxx

References ip(), KFM(), KfmReturn(), mDim1, mDim2, and SQR.

Referenced by FixPositivity().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int KfMatrix::CopyFrom ( KfMatrix in)

Definition at line 235 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 235 of file KfMatrix.cxx

References DimensionMatchCheck(), GetDimensionCheckFlag(), KFM(), KfmReturn(), mDim1, and mDim2.

Referenced by Bufferize(), KalmanFilter::Calculate_x0_FR_Q(), and TrKalmanNode::SetMeasurementNoise().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int KfMatrix::CorrelationPrint ( const char *  fmt = _PRINTOUT_FORMAT_DEFAULT_)

Definition at line 555 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 555 of file KfMatrix.cxx

References ip(), KFM(), KfmReturn(), mDim1, mDim2, and printf().

+ Here is the call graph for this function:

int KfMatrix::DimensionChainCheck ( KfMatrix in1,
KfMatrix in2,
unsigned  mode 
)
private

Definition at line 133 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 133 of file KfMatrix.cxx

References _TRANSPOSE_IN1_, _TRANSPOSE_IN2_, AssignTrueDimensions(), mDim1, and mDim2.

Referenced by SetToProduct().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int KfMatrix::DimensionMatchCheck ( KfMatrix kfm2)
private

Definition at line 104 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 104 of file KfMatrix.cxx

References GetDim1(), and GetDim2().

Referenced by AddCore(), CopyFrom(), and SetToProduct().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int KfMatrix::FixPositivity ( double  maxFixablePositivityScrewup,
double  positivityCorrelationFix 
)

Definition at line 614 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 614 of file KfMatrix.cxx

References CheckPositivity(), GetDim1(), ip(), KFM(), and SQR.

+ Here is the call graph for this function:

int KfMatrix::ForceSymmetric ( )

Definition at line 578 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 578 of file KfMatrix.cxx

References ip(), KFM(), KfmReturn(), mDim1, and mDim2.

+ Here is the call graph for this function:

int KfMatrix::GetDim1 ( ) const
inline

Definition at line 31 of file KfMatrix.h.

View newest version in sPHENIX GitHub at line 31 of file KfMatrix.h

References mDim1.

Referenced by Bufferize(), DimensionMatchCheck(), FixPositivity(), and GetBufferMatrix().

+ Here is the caller graph for this function:

int KfMatrix::GetDim2 ( ) const
inline

Definition at line 32 of file KfMatrix.h.

View newest version in sPHENIX GitHub at line 32 of file KfMatrix.h

References mDim2.

Referenced by Bufferize(), DimensionMatchCheck(), and GetBufferMatrix().

+ Here is the caller graph for this function:

static bool KfMatrix::GetDimensionCheckFlag ( )
inlinestatic

Definition at line 28 of file KfMatrix.h.

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

References mDimensionCheckFlag.

Referenced by AddCore(), CopyFrom(), and SetToProduct().

+ Here is the caller graph for this function:

int KfMatrix::Invert ( KfMatrix::MtxType  type = Arbitrary)

Definition at line 478 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 478 of file KfMatrix.cxx

References ARR(), ip(), KFM(), KfmReturn(), mDim1, mDim2, and Symmetric.

+ Here is the call graph for this function:

int KfMatrix::KfmReturn ( int  ret)
staticprivate

Definition at line 56 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 56 of file KfMatrix.cxx

References mDimensionCheckFlag.

Referenced by AddCore(), CheckPositivity(), CopyFrom(), CorrelationPrint(), ForceSymmetric(), Invert(), SetToProduct(), SetToProductCore(), and Unity().

+ Here is the caller graph for this function:

double& KfMatrix::KFV ( int  ip)
inline

Definition at line 47 of file KfMatrix.h.

View newest version in sPHENIX GitHub at line 47 of file KfMatrix.h

References ip(), and mArr.

Referenced by TrKalmanFilter::AccountIonizationLosses(), TrKalmanFilter::CalculateProcessNoise(), EicHtcTask::ConstructLinearTrackApproximation(), KalmanNode::Getm(), KalmanNode::GetRm(), KalmanNode::GetRs(), KalmanNode::GetX0(), KalmanNode::GetXf(), KalmanNode::GetXm(), KalmanNode::GetXs(), EicKfNodeTemplate::IncrementLinearTrackFitMatrices(), TrKalmanFilter::ResetNode(), FwdTrackFinder::ResetVtxNode(), TrKalmanFilter::Transport(), and FwdTrackFinder::UpdateVtxNode().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void KfMatrix::Print ( const char *  fmt = _PRINTOUT_FORMAT_DEFAULT_)

Definition at line 543 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 543 of file KfMatrix.cxx

References ip(), KFM(), mDim1, mDim2, and printf().

+ Here is the call graph for this function:

void KfMatrix::Reset ( )

Definition at line 209 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 209 of file KfMatrix.cxx

References KFM(), mDim1, and mDim2.

Referenced by EicHtcTask::Exec(), TrKalmanFilter::ResetNode(), FwdTrackFinder::ResetVtxNode(), SetToProduct(), and FwdTrackFinder::UpdateVtxNode().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void KfMatrix::SetDimensionCheckFlag ( bool  what)
inlinestatic

Definition at line 27 of file KfMatrix.h.

View newest version in sPHENIX GitHub at line 27 of file KfMatrix.h

References mDimensionCheckFlag.

int KfMatrix::SetToDifference ( KfMatrix in1,
KfMatrix in2 
)

Definition at line 297 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 297 of file KfMatrix.cxx

References _KF_MATRIX_SUBTRACT_, and AddCore().

+ Here is the call graph for this function:

int KfMatrix::SetToProduct ( double  cff,
KfMatrix in 
)

Definition at line 323 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 323 of file KfMatrix.cxx

References DimensionMatchCheck(), GetDimensionCheckFlag(), KFM(), KfmReturn(), mDim1, and mDim2.

Referenced by KalmanFilter::Calculate_x0_FR_Q(), KalmanFilter::DoFilterAlgebra(), SetToProductCore(), and KalmanFilter::SmootherPass().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int KfMatrix::SetToProduct ( KfMatrix in1,
KfMatrix in2,
unsigned  mode = 0x0000 
)

Definition at line 343 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 343 of file KfMatrix.cxx

References _TRANSPOSE_IN1_, _TRANSPOSE_IN2_, Bufferize(), DimensionChainCheck(), GetDimensionCheckFlag(), ip(), KFM(), KfmReturn(), mDim1, mDim2, Reset(), ResetBusyFlags(), and val2.

+ Here is the call graph for this function:

int KfMatrix::SetToProduct ( KfMatrix in1,
KfMatrix in2,
KfMatrix in3,
unsigned  mode = 0x0000 
)

Definition at line 450 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 450 of file KfMatrix.cxx

References ResetBusyFlags(), and SetToProductCore().

+ Here is the call graph for this function:

int KfMatrix::SetToProductCore ( KfMatrix in1,
KfMatrix in2,
KfMatrix in3,
unsigned  mode = 0x0000 
)
private

Definition at line 397 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 397 of file KfMatrix.cxx

References _TRANSPOSE_IN1_, _TRANSPOSE_IN2_, _TRANSPOSE_IN3_, buffer, GetBufferMatrix(), KfmReturn(), mDim1, mDim2, and SetToProduct().

Referenced by SetToProduct(), and VectorLengthSquare().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int KfMatrix::SetToSum ( KfMatrix in1,
KfMatrix in2 
)

Definition at line 290 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 290 of file KfMatrix.cxx

References _KF_MATRIX_ADD_, and AddCore().

+ Here is the call graph for this function:

int KfMatrix::Subtract ( KfMatrix in)

Definition at line 315 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 315 of file KfMatrix.cxx

References _KF_MATRIX_SUBTRACT_, and AddCore().

Referenced by KalmanFilter::SmootherPass().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int KfMatrix::Unity ( )

Definition at line 222 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 222 of file KfMatrix.cxx

References KFM(), KfmReturn(), mDim1, and mDim2.

Referenced by KalmanNode::AllocateKfMatrices(), and KalmanFilter::KalmanFilter().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int KfMatrix::VectorLengthSquare ( KfMatrix metric,
double *  lsqr 
)

Definition at line 461 of file KfMatrix.cxx.

View newest version in sPHENIX GitHub at line 461 of file KfMatrix.cxx

References _TRANSPOSE_IN1_, GetBufferMatrix(), KFM(), ResetBusyFlags(), SetToProductCore(), and value.

+ Here is the call graph for this function:

Member Data Documentation

double* KfMatrix::mArr
private

Definition at line 99 of file KfMatrix.h.

View newest version in sPHENIX GitHub at line 99 of file KfMatrix.h

Referenced by ARR(), KFM(), KfMatrix(), KFV(), and ~KfMatrix().

int KfMatrix::mDim
private

Definition at line 93 of file KfMatrix.h.

View newest version in sPHENIX GitHub at line 93 of file KfMatrix.h

Referenced by KfMatrix().

int KfMatrix::mDim1
private
int KfMatrix::mDim2
private
bool KfMatrix::mDimensionCheckFlag = true
staticprivate

Definition at line 102 of file KfMatrix.h.

View newest version in sPHENIX GitHub at line 102 of file KfMatrix.h

Referenced by GetDimensionCheckFlag(), KfmReturn(), and SetDimensionCheckFlag().


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