Belle II Software  release-08-01-10
KFitBase Class Referenceabstract

KFitBase is a base class for kinematical fitters. More...

#include <KFitBase.h>

Inheritance diagram for KFitBase:
Collaboration diagram for KFitBase:

Public Member Functions

 KFitBase (void)
 Construct an object with no argument.
 
virtual ~KFitBase (void)
 Destruct the object.
 
enum KFitError::ECode addTrack (const KFitTrack &kp)
 Add a track to the fitter object. More...
 
enum KFitError::ECode addTrack (const CLHEP::HepLorentzVector &p, const HepPoint3D &x, const CLHEP::HepSymMatrix &e, const double q)
 Add a track to the fitter object with specifying its momentum, position, error matrix, and charge. More...
 
enum KFitError::ECode addParticle (const Particle *particle)
 Add a particle to the fitter. More...
 
virtual enum KFitError::ECode setCorrelation (const CLHEP::HepMatrix &c)
 Set a correlation matrix. More...
 
virtual enum KFitError::ECode setZeroCorrelation (void)
 Indicate no correlation between tracks. More...
 
enum KFitError::ECode setMagneticField (const double mf)
 Change a magnetic field from the default value KFitConst::kDefaultMagneticField. More...
 
enum KFitError::ECode getErrorCode (void) const
 Get a code of the last error. More...
 
int getTrackCount (void) const
 Get the number of added tracks. More...
 
virtual int getNDF (void) const
 Get an NDF of the fit. More...
 
virtual double getCHIsq (void) const
 Get a chi-square of the fit. More...
 
double getMagneticField (void) const
 Get a magnetic field. More...
 
virtual double getTrackCHIsq (const int id) const
 Get a chi-square of the track. More...
 
const CLHEP::HepLorentzVector getTrackMomentum (const int id) const
 Get a Lorentz vector of the track. More...
 
const HepPoint3D getTrackPosition (const int id) const
 Get a position of the track. More...
 
const CLHEP::HepSymMatrix getTrackError (const int id) const
 Get an error matrix of the track. More...
 
const KFitTrack getTrack (const int id) const
 Get a specified track object. More...
 
virtual const CLHEP::HepMatrix getCorrelation (const int id1, const int id2, const int flag=KFitConst::kAfterFit) const
 Get a correlation matrix between two tracks. More...
 
bool isFitted (void) const
 Return false if fit is not performed yet or performed fit is failed; otherwise true. More...
 

Protected Member Functions

const CLHEP::HepSymMatrix makeError1 (const CLHEP::HepLorentzVector &p, const CLHEP::HepMatrix &e) const
 Rebuild an error matrix from a Lorentz vector and an error matrix. More...
 
const CLHEP::HepMatrix makeError1 (const CLHEP::HepLorentzVector &p1, const CLHEP::HepLorentzVector &p2, const CLHEP::HepMatrix &e) const
 Rebuild an error matrix from a pair of Lorentz vectors and an error matrix. More...
 
const CLHEP::HepMatrix makeError2 (const CLHEP::HepLorentzVector &p, const CLHEP::HepMatrix &e) const
 Rebuild an error matrix from a Lorentz vector and an error matrix. More...
 
const CLHEP::HepSymMatrix makeError3 (const CLHEP::HepLorentzVector &p, const CLHEP::HepMatrix &e, const bool is_fix_mass) const
 Rebuild an error matrix from a Lorentz vector and an error matrix. More...
 
const CLHEP::HepMatrix makeError3 (const CLHEP::HepLorentzVector &p1, const CLHEP::HepLorentzVector &p2, const CLHEP::HepMatrix &e, const bool is_fix_mass1, const bool is_fix_mass2) const
 Rebuild an error matrix from a pair of Lorentz vectors and an error matrix. More...
 
const CLHEP::HepMatrix makeError4 (const CLHEP::HepLorentzVector &p, const CLHEP::HepMatrix &e) const
 Rebuild an error matrix from a Lorentz vector and an error matrix. More...
 
virtual enum KFitError::ECode prepareInputMatrix (void)=0
 Build grand matrices for minimum search from input-track properties. More...
 
virtual enum KFitError::ECode prepareInputSubMatrix (void)=0
 Build sub-matrices for minimum search from input-track properties. More...
 
virtual enum KFitError::ECode prepareCorrelation (void)
 Build a grand correlation matrix from input-track properties. More...
 
virtual enum KFitError::ECode prepareOutputMatrix (void)=0
 Build an output error matrix. More...
 
virtual enum KFitError::ECode makeCoreMatrix (void)=0
 Build matrices using the kinematical constraint. More...
 
virtual enum KFitError::ECode calculateNDF (void)=0
 Calculate an NDF of the fit. More...
 
enum KFitError::ECode doFit1 (void)
 Perform a fit (used in MassFitKFit::doFit()). More...
 
enum KFitError::ECode doFit2 (void)
 Perform a fit (used in VertexFitKFit::doFit() and MassVertexFitKFit::doFit()). More...
 
bool isTrackIDInRange (const int id) const
 Check if the id is in the range. More...
 
bool isNonZeroEnergy (const CLHEP::HepLorentzVector &p) const
 Check if the energy is non-zero. More...
 

Protected Attributes

enum KFitError::ECode m_ErrorCode
 Error code.
 
bool m_FlagFitted
 Flag to indicate if the fit is performed and succeeded.
 
std::vector< KFitTrackm_Tracks
 Container of input tracks.
 
std::vector< CLHEP::HepMatrix > m_BeforeCorrelation
 Container of input correlation matrices.
 
CLHEP::HepSymMatrix m_V_al_0
 See J.Tanaka Ph.D (2001) p137 for definition.
 
CLHEP::HepMatrix m_al_0
 See J.Tanaka Ph.D (2001) p136 for definition.
 
CLHEP::HepMatrix m_al_1
 See J.Tanaka Ph.D (2001) p136 for definition.
 
CLHEP::HepMatrix m_al_a
 See J.Tanaka Ph.D (2001) p137 for definition.
 
CLHEP::HepMatrix m_property
 Container of charges and masses.
 
CLHEP::HepMatrix m_D
 See J.Tanaka Ph.D (2001) p137 for definition.
 
CLHEP::HepMatrix m_d
 See J.Tanaka Ph.D (2001) p137 for definition.
 
CLHEP::HepMatrix m_V_D
 See J.Tanaka Ph.D (2001) p138 for definition.
 
CLHEP::HepMatrix m_V_al_1
 See J.Tanaka Ph.D (2001) p138 for definition.
 
CLHEP::HepMatrix m_lam
 See J.Tanaka Ph.D (2001) p137 for definition.
 
CLHEP::HepMatrix m_E
 See J.Tanaka Ph.D (2001) p137 for definition.
 
CLHEP::HepMatrix m_V_E
 See J.Tanaka Ph.D (2001) p138 for definition.
 
CLHEP::HepMatrix m_lam0
 See J.Tanaka Ph.D (2001) p138 for definition.
 
CLHEP::HepMatrix m_v
 See J.Tanaka Ph.D (2001) p137 for definition.
 
CLHEP::HepMatrix m_v_a
 See J.Tanaka Ph.D (2001) p137 for definition.
 
CLHEP::HepMatrix m_V_Dt
 See J.Tanaka Ph.D (2001) p138 for definition.
 
CLHEP::HepMatrix m_Cov_v_al_1
 See J.Tanaka Ph.D (2001) p137 for definition.
 
int m_NDF
 NDF of the fit.
 
double m_CHIsq
 chi-square of the fit.
 
int m_TrackCount
 Number of tracks.
 
int m_NecessaryTrackCount
 Number needed tracks to perform fit.
 
bool m_FlagCorrelation
 Flag whether a correlation among tracks exists.
 
bool m_FlagOverIteration
 Flag whether the iteration count exceeds the limit.
 
double m_MagneticField
 Magnetic field.
 

Detailed Description

KFitBase is a base class for kinematical fitters.

Definition at line 37 of file KFitBase.h.

Member Function Documentation

◆ addParticle()

enum KFitError::ECode addParticle ( const Particle particle)

Add a particle to the fitter.

The function gets track parameters from the Particle dataobject and calls addTrack().

Parameters
[in]particleParticle.
Returns
error code (zero if success)

Definition at line 34 of file KFitBase.cc.

◆ addTrack() [1/2]

enum KFitError::ECode addTrack ( const CLHEP::HepLorentzVector &  p,
const HepPoint3D x,
const CLHEP::HepSymMatrix &  e,
const double  q 
)

Add a track to the fitter object with specifying its momentum, position, error matrix, and charge.

This function internally calls addTrack(const KFitTrack &kp).

Parameters
pLorentz vector of the track
xposition of the track
e(7x7) error matrix of the track
qcharge of the track
Returns
error code (zero if success)

◆ addTrack() [2/2]

enum KFitError::ECode addTrack ( const KFitTrack kp)

Add a track to the fitter object.

Parameters
kpobject of the track
Returns
error code (zero if success)

Definition at line 34 of file KFitBase.cc.

◆ calculateNDF()

virtual enum KFitError::ECode calculateNDF ( void  )
protectedpure virtual

Calculate an NDF of the fit.

Returns
error code (zero if success)

Implemented in VertexFitKFit, RecoilMassKFit, MassVertexFitKFit, MassPointingVertexFitKFit, MassFourCFitKFit, MassFitKFit, and FourCFitKFit.

◆ doFit1()

enum KFitError::ECode doFit1 ( void  )
protected

Perform a fit (used in MassFitKFit::doFit()).

Returns
error code (zero if success)

Definition at line 438 of file KFitBase.cc.

◆ doFit2()

enum KFitError::ECode doFit2 ( void  )
protected

Perform a fit (used in VertexFitKFit::doFit() and MassVertexFitKFit::doFit()).

Returns
error code (zero if success)

Definition at line 438 of file KFitBase.cc.

◆ getCHIsq()

double getCHIsq ( void  ) const
virtual

Get a chi-square of the fit.

Returns
chi-square of the fit

Reimplemented in VertexFitKFit, RecoilMassKFit, MassVertexFitKFit, MassPointingVertexFitKFit, MassFourCFitKFit, MassFitKFit, and FourCFitKFit.

Definition at line 121 of file KFitBase.cc.

◆ getCorrelation()

const HepMatrix getCorrelation ( const int  id1,
const int  id2,
const int  flag = KFitConst::kAfterFit 
) const
virtual

Get a correlation matrix between two tracks.

Parameters
id1first track id
id2second track id
flagKFitConst::kBeforeFit or KFitConst::kAfterFit
Returns
(7x7) correlation matrix

Reimplemented in RecoilMassKFit, MassVertexFitKFit, MassPointingVertexFitKFit, MassFourCFitKFit, MassFitKFit, and FourCFitKFit.

Definition at line 183 of file KFitBase.cc.

◆ getErrorCode()

enum KFitError::ECode getErrorCode ( void  ) const

Get a code of the last error.

Returns
the last error code

Definition at line 34 of file KFitBase.cc.

◆ getMagneticField()

double getMagneticField ( void  ) const

Get a magnetic field.

Returns
magnetic field

Definition at line 128 of file KFitBase.cc.

◆ getNDF()

int getNDF ( void  ) const
virtual

Get an NDF of the fit.

Returns
NDF of the fit

Definition at line 114 of file KFitBase.cc.

◆ getTrack()

const KFitTrack getTrack ( const int  id) const

Get a specified track object.

Parameters
idtrack id
Returns
specified track object

Definition at line 175 of file KFitBase.cc.

◆ getTrackCHIsq()

double getTrackCHIsq ( const int  id) const
virtual

Get a chi-square of the track.

Parameters
idtrack id
Returns
chi-square of the track

Reimplemented in VertexFitKFit, RecoilMassKFit, MassVertexFitKFit, MassPointingVertexFitKFit, MassFourCFitKFit, MassFitKFit, and FourCFitKFit.

Definition at line 135 of file KFitBase.cc.

◆ getTrackCount()

int getTrackCount ( void  ) const

Get the number of added tracks.

Returns
the number of added tracks

Definition at line 107 of file KFitBase.cc.

◆ getTrackError()

const HepSymMatrix getTrackError ( const int  id) const

Get an error matrix of the track.

Parameters
idtrack id
Returns
error matrix of the track

Definition at line 168 of file KFitBase.cc.

◆ getTrackMomentum()

const HepLorentzVector getTrackMomentum ( const int  id) const

Get a Lorentz vector of the track.

Parameters
idtrack id
Returns
Lorentz vector of the track

Definition at line 154 of file KFitBase.cc.

◆ getTrackPosition()

const HepPoint3D getTrackPosition ( const int  id) const

Get a position of the track.

Parameters
idtrack id
Returns
position of the track

Definition at line 161 of file KFitBase.cc.

◆ isFitted()

bool isFitted ( void  ) const

Return false if fit is not performed yet or performed fit is failed; otherwise true.

Returns
see description

Definition at line 727 of file KFitBase.cc.

◆ isNonZeroEnergy()

bool isNonZeroEnergy ( const CLHEP::HepLorentzVector &  p) const
protected

Check if the energy is non-zero.

Parameters
pLorentz vector
Returns
true for non-zero energy, false for otherwise

Definition at line 749 of file KFitBase.cc.

◆ isTrackIDInRange()

bool isTrackIDInRange ( const int  id) const
protected

Check if the id is in the range.

Parameters
idtrack id
Returns
true if the id is in the range, false otherwise

Definition at line 738 of file KFitBase.cc.

◆ makeCoreMatrix()

virtual enum KFitError::ECode makeCoreMatrix ( void  )
protectedpure virtual

Build matrices using the kinematical constraint.

Returns
error code (zero if success)

Implemented in VertexFitKFit, RecoilMassKFit, MassVertexFitKFit, MassPointingVertexFitKFit, MassFourCFitKFit, MassFitKFit, and FourCFitKFit.

◆ makeError1() [1/2]

const CLHEP::HepSymMatrix makeError1 ( const CLHEP::HepLorentzVector &  p,
const CLHEP::HepMatrix &  e 
) const
protected

Rebuild an error matrix from a Lorentz vector and an error matrix.

Parameters
pLorentz vector
e(6x6) error matrix
Returns
(7x7) error matrix

◆ makeError1() [2/2]

const CLHEP::HepMatrix makeError1 ( const CLHEP::HepLorentzVector &  p1,
const CLHEP::HepLorentzVector &  p2,
const CLHEP::HepMatrix &  e 
) const
protected

Rebuild an error matrix from a pair of Lorentz vectors and an error matrix.

Parameters
p1first Lorentz vector
p2second Lorentz vector
e(6x6) error matrix
Returns
(7x7) error matrix

◆ makeError2()

const HepMatrix makeError2 ( const CLHEP::HepLorentzVector &  p,
const CLHEP::HepMatrix &  e 
) const
protected

Rebuild an error matrix from a Lorentz vector and an error matrix.

Parameters
pLorentz vector
e(3x6) error matrix
Returns
(3x7) error matrix

Definition at line 296 of file KFitBase.cc.

◆ makeError3() [1/2]

const CLHEP::HepSymMatrix makeError3 ( const CLHEP::HepLorentzVector &  p,
const CLHEP::HepMatrix &  e,
const bool  is_fix_mass 
) const
protected

Rebuild an error matrix from a Lorentz vector and an error matrix.

Parameters
pLorentz vector
e(7x7) error matrix
is_fix_masstrue to recalculate energy term from other parameters, false to do nothing
Returns
(7x7) error matrix

◆ makeError3() [2/2]

const CLHEP::HepMatrix makeError3 ( const CLHEP::HepLorentzVector &  p1,
const CLHEP::HepLorentzVector &  p2,
const CLHEP::HepMatrix &  e,
const bool  is_fix_mass1,
const bool  is_fix_mass2 
) const
protected

Rebuild an error matrix from a pair of Lorentz vectors and an error matrix.

Parameters
p1first Lorentz vector
p2second Lorentz vector
e(7x7) error matrix
is_fix_mass1true to recalculate energy term from other parameters, false to do nothing
is_fix_mass2true to recalculate energy term from other parameters, false to do nothing
Returns
(7x7) error matrix

◆ makeError4()

const HepMatrix makeError4 ( const CLHEP::HepLorentzVector &  p,
const CLHEP::HepMatrix &  e 
) const
protected

Rebuild an error matrix from a Lorentz vector and an error matrix.

Parameters
pLorentz vector
e(3x7) error matrix
Returns
(7x7) error matrix

Definition at line 438 of file KFitBase.cc.

◆ prepareCorrelation()

enum KFitError::ECode prepareCorrelation ( void  )
protectedvirtual

Build a grand correlation matrix from input-track properties.

Returns
error code (zero if success)

Reimplemented in RecoilMassKFit, MassVertexFitKFit, MassPointingVertexFitKFit, MassFourCFitKFit, MassFitKFit, and FourCFitKFit.

Definition at line 438 of file KFitBase.cc.

◆ prepareInputMatrix()

virtual enum KFitError::ECode prepareInputMatrix ( void  )
protectedpure virtual

Build grand matrices for minimum search from input-track properties.

Returns
error code (zero if success)

Implemented in VertexFitKFit, RecoilMassKFit, MassVertexFitKFit, MassPointingVertexFitKFit, MassFourCFitKFit, MassFitKFit, and FourCFitKFit.

◆ prepareInputSubMatrix()

virtual enum KFitError::ECode prepareInputSubMatrix ( void  )
protectedpure virtual

Build sub-matrices for minimum search from input-track properties.

Returns
error code (zero if success)

Implemented in VertexFitKFit, RecoilMassKFit, MassVertexFitKFit, MassPointingVertexFitKFit, MassFourCFitKFit, MassFitKFit, and FourCFitKFit.

◆ prepareOutputMatrix()

virtual enum KFitError::ECode prepareOutputMatrix ( void  )
protectedpure virtual

Build an output error matrix.

Returns
error code (zero if success)

Implemented in VertexFitKFit, RecoilMassKFit, MassVertexFitKFit, MassPointingVertexFitKFit, MassFourCFitKFit, MassFitKFit, and FourCFitKFit.

◆ setCorrelation()

enum KFitError::ECode setCorrelation ( const CLHEP::HepMatrix &  c)
virtual

Set a correlation matrix.

Not intended for end user's use.

Parameters
c(7x7) correlation matrix
Returns
error code (zero if success)

Reimplemented in RecoilMassKFit, MassVertexFitKFit, MassPointingVertexFitKFit, MassFourCFitKFit, MassFitKFit, and FourCFitKFit.

Definition at line 34 of file KFitBase.cc.

◆ setMagneticField()

enum KFitError::ECode setMagneticField ( const double  mf)

Change a magnetic field from the default value KFitConst::kDefaultMagneticField.

Parameters
mfmagnetic field to set
Returns
error code (zero if success)

Definition at line 34 of file KFitBase.cc.

◆ setZeroCorrelation()

enum KFitError::ECode setZeroCorrelation ( void  )
virtual

Indicate no correlation between tracks.

Not intended for end user's use.

Returns
error code (zero if success)

Reimplemented in RecoilMassKFit, MassVertexFitKFit, MassPointingVertexFitKFit, MassFourCFitKFit, MassFitKFit, and FourCFitKFit.

Definition at line 34 of file KFitBase.cc.


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