BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
KalFitTrack Class Reference

Description of a track class (<- Helix.cc). More...

#include <KalFitTrack.h>

Inheritance diagram for KalFitTrack:

Public Member Functions

 KalFitTrack (const HepPoint3D &pivot, const CLHEP::HepVector &a, const CLHEP::HepSymMatrix &Ea, unsigned int m, double chiSq, unsigned int nhits)
 constructor
 ~KalFitTrack (void)
 destructor
double intersect_cylinder (double r) const
 Intersection with different geometry.
double intersect_yz_plane (const HepTransform3D &plane, double x) const
double intersect_zx_plane (const HepTransform3D &plane, double y) const
double intersect_xy_plane (double z) const
void msgasmdc (double path, int index)
 Calculate multiple scattering angle.
void ms (double path, const KalFitMaterial &m, int index)
void eloss (double path, const KalFitMaterial &m, int index)
 Calculate total energy lost in material.
double smoother_Mdc (KalFitHelixSeg &seg, CLHEP::Hep3Vector &meas, int &flg, int csmflag)
 Kalman smoother for Mdc.
double smoother_Mdc_csmalign (KalFitHelixSeg &seg, CLHEP::Hep3Vector &meas, int &flg, int csmflag)
double smoother_Mdc (KalFitHitMdc &HitMdc, CLHEP::Hep3Vector &meas, KalFitHelixSeg &seg, double &dchi2, int csmflag)
double update_hits (KalFitHitMdc &HitMdc, int inext, CLHEP::Hep3Vector &meas, int way, double &dchi2, double &dtrack, double &dtracknew, double &dtdc, int csmflag)
 Include the Mdc wire hits.
double update_hits (KalFitHelixSeg &HelixSeg, int inext, CLHEP::Hep3Vector &meas, int way, double &dchi2, int csmflag)
double update_hits_csmalign (KalFitHelixSeg &HelixSeg, int inext, CLHEP::Hep3Vector &meas, int way, double &dchi2, int csmflag)
double chi2_next (Helix &H, KalFitHitMdc &HitMdc, int csmflag)
double chi2_next (Helix &H, KalFitHitMdc &HitMdc)
void update_last (void)
 Record the current parameters as ..._last information :
void update_forMdc (void)
void point_last (const HepPoint3D &point)
 set and give out the last point of the track
const HepPoint3Dpoint_last (void)
const HepPoint3Dpivot_last (void) const
 returns helix parameters
const CLHEP::HepVector & a_last (void) const
const CLHEP::HepSymMatrix & Ea_last (void) const
const HepPoint3Dpivot_forMdc (void) const
const CLHEP::HepVector & a_forMdc (void) const
const CLHEP::HepSymMatrix & Ea_forMdc (void) const
void path_add (double path)
 Update the path length estimation.
void addPathSM (double path)
double getPathSM (void)
void addTofSM (double time)
double getTofSM (void)
void fiTerm (double fi)
double getFiTerm (void)
void tof (double path)
 Update the tof estimation.
double filter (double v_m, const CLHEP::HepVector &m_H, double v_d, double m_V)
double cor_tanldep (double *p, double er)
 Correct the error according the current tanl value :
void update_bit (int i)
int insist (void) const
 Extractor :
int type (void) const
int trasan_id (void) const
double r0 (void) const
double mass (void) const
double chiSq (void) const
double chiSq_back (void) const
int ndf_back (void) const
double pathip (void) const
double path_rd (void) const
double path_ab (void) const
double * pathl (void)
CLHEP::Hep3Vector * mom (void)
double tof (void) const
double tof_kaon (void) const
double tof_proton (void) const
double p_kaon (void) const
double p_proton (void) const
double dchi2_max (void) const
double r_max (void) const
unsigned int nchits (void) const
unsigned int nster (void) const
unsigned int ncath (void) const
int pat1 (void) const
int pat2 (void) const
int nhit_r (void) const
int nhit_z (void) const
void type (int t)
 Reinitialize (modificator).
void trasan_id (int t)
void insist (int t)
void pathip (double pl)
void p_kaon (double pl)
void p_proton (double pl)
void chiSq (double c)
void chiSq_back (double c)
void ndf_back (int n)
void nchits (int n)
void nster (int n)
void add_nhit_r (void)
void add_nhit_z (void)
double PathL (int layer)
 Function to calculate the path length in the layer.
void appendHitsMdc (KalFitHitMdc h)
 Functions for Mdc hits list.
void HitsMdc (vector< KalFitHitMdc > &lh)
vector< KalFitHitMdc > & HitsMdc (void)
KalFitHitMdcHitMdc (int i)
void appendHelixSegs (KalFitHelixSeg s)
void HelixSegs (vector< KalFitHelixSeg > &vs)
vector< KalFitHelixSeg > & HelixSegs (void)
KalFitHelixSegHelixSeg (int i)
void order_wirhit (int index)
void order_hits (void)
void number_wirhit (void)
const HepPoint3Dpivot_numf (const HepPoint3D &newPivot)
 Sets pivot position in a given mag field.
const HepPoint3Dpivot_numf (const HepPoint3D &newPivot, double &pathl)
double radius_numf (void) const
 Estimation of the radius in a given mag field.
double getSigma (int layerId, double driftDist) const
double getSigma (KalFitHitMdc &hitmdc, double tanlam, int lr, double dist) const
double getDriftDist (KalFitHitMdc &hitmdc, double drifttime, int lr) const
double getDriftTime (KalFitHitMdc &hitmdc, double toftime) const
double getT0 (void) const
HepSymMatrix getInitMatrix (void) const
double getDigi () const
void chgmass (int i)
int nLayerUsed ()
void resetLayerUsed ()
void useLayer (int iLay)
 KalFitTrack (const HepPoint3D &pivot, const CLHEP::HepVector &a, const CLHEP::HepSymMatrix &Ea, unsigned int m, double chiSq, unsigned int nhits)
 constructor
 ~KalFitTrack (void)
 destructor
double intersect_cylinder (double r) const
 Intersection with different geometry.
double intersect_yz_plane (const HepTransform3D &plane, double x) const
double intersect_zx_plane (const HepTransform3D &plane, double y) const
double intersect_xy_plane (double z) const
void msgasmdc (double path, int index)
 Calculate multiple scattering angle.
void ms (double path, const KalFitMaterial &m, int index)
void eloss (double path, const KalFitMaterial &m, int index)
 Calculate total energy lost in material.
double smoother_Mdc (KalFitHelixSeg &seg, CLHEP::Hep3Vector &meas, int &flg, int csmflag)
 Kalman smoother for Mdc.
double smoother_Mdc_csmalign (KalFitHelixSeg &seg, CLHEP::Hep3Vector &meas, int &flg, int csmflag)
double smoother_Mdc (KalFitHitMdc &HitMdc, CLHEP::Hep3Vector &meas, KalFitHelixSeg &seg, double &dchi2, int csmflag)
double update_hits (KalFitHitMdc &HitMdc, int inext, CLHEP::Hep3Vector &meas, int way, double &dchi2, double &dtrack, double &dtracknew, double &dtdc, int csmflag)
 Include the Mdc wire hits.
double update_hits (KalFitHelixSeg &HelixSeg, int inext, CLHEP::Hep3Vector &meas, int way, double &dchi2, int csmflag)
double update_hits_csmalign (KalFitHelixSeg &HelixSeg, int inext, CLHEP::Hep3Vector &meas, int way, double &dchi2, int csmflag)
double chi2_next (Helix &H, KalFitHitMdc &HitMdc, int csmflag)
double chi2_next (Helix &H, KalFitHitMdc &HitMdc)
void update_last (void)
 Record the current parameters as ..._last information :
void update_forMdc (void)
void point_last (const HepPoint3D &point)
 set and give out the last point of the track
const HepPoint3Dpoint_last (void)
const HepPoint3Dpivot_last (void) const
 returns helix parameters
const CLHEP::HepVector & a_last (void) const
const CLHEP::HepSymMatrix & Ea_last (void) const
const HepPoint3Dpivot_forMdc (void) const
const CLHEP::HepVector & a_forMdc (void) const
const CLHEP::HepSymMatrix & Ea_forMdc (void) const
void path_add (double path)
 Update the path length estimation.
void addPathSM (double path)
double getPathSM (void)
void addTofSM (double time)
double getTofSM (void)
void fiTerm (double fi)
double getFiTerm (void)
void tof (double path)
 Update the tof estimation.
double filter (double v_m, const CLHEP::HepVector &m_H, double v_d, double m_V)
double cor_tanldep (double *p, double er)
 Correct the error according the current tanl value :
void update_bit (int i)
int insist (void) const
 Extractor :
int type (void) const
int trasan_id (void) const
double r0 (void) const
double mass (void) const
double chiSq (void) const
double chiSq_back (void) const
int ndf_back (void) const
double pathip (void) const
double path_rd (void) const
double path_ab (void) const
double * pathl (void)
CLHEP::Hep3Vector * mom (void)
double tof (void) const
double tof_kaon (void) const
double tof_proton (void) const
double p_kaon (void) const
double p_proton (void) const
double dchi2_max (void) const
double r_max (void) const
unsigned int nchits (void) const
unsigned int nster (void) const
unsigned int ncath (void) const
int pat1 (void) const
int pat2 (void) const
int nhit_r (void) const
int nhit_z (void) const
void type (int t)
 Reinitialize (modificator).
void trasan_id (int t)
void insist (int t)
void pathip (double pl)
void p_kaon (double pl)
void p_proton (double pl)
void chiSq (double c)
void chiSq_back (double c)
void ndf_back (int n)
void nchits (int n)
void nster (int n)
void add_nhit_r (void)
void add_nhit_z (void)
double PathL (int layer)
 Function to calculate the path length in the layer.
void appendHitsMdc (KalFitHitMdc h)
 Functions for Mdc hits list.
void HitsMdc (vector< KalFitHitMdc > &lh)
vector< KalFitHitMdc > & HitsMdc (void)
KalFitHitMdcHitMdc (int i)
void appendHelixSegs (KalFitHelixSeg s)
void HelixSegs (vector< KalFitHelixSeg > &vs)
vector< KalFitHelixSeg > & HelixSegs (void)
KalFitHelixSegHelixSeg (int i)
void order_wirhit (int index)
void order_hits (void)
void number_wirhit (void)
const HepPoint3Dpivot_numf (const HepPoint3D &newPivot)
 Sets pivot position in a given mag field.
const HepPoint3Dpivot_numf (const HepPoint3D &newPivot, double &pathl)
double radius_numf (void) const
 Estimation of the radius in a given mag field.
double getSigma (int layerId, double driftDist) const
double getSigma (KalFitHitMdc &hitmdc, double tanlam, int lr, double dist) const
double getDriftDist (KalFitHitMdc &hitmdc, double drifttime, int lr) const
double getDriftTime (KalFitHitMdc &hitmdc, double toftime) const
double getT0 (void) const
HepSymMatrix getInitMatrix (void) const
double getDigi () const
void chgmass (int i)
int nLayerUsed ()
void resetLayerUsed ()
void useLayer (int iLay)
 KalFitTrack (const HepPoint3D &pivot, const CLHEP::HepVector &a, const CLHEP::HepSymMatrix &Ea, unsigned int m, double chiSq, unsigned int nhits)
 constructor
 ~KalFitTrack (void)
 destructor
double intersect_cylinder (double r) const
 Intersection with different geometry.
double intersect_yz_plane (const HepTransform3D &plane, double x) const
double intersect_zx_plane (const HepTransform3D &plane, double y) const
double intersect_xy_plane (double z) const
void msgasmdc (double path, int index)
 Calculate multiple scattering angle.
void ms (double path, const KalFitMaterial &m, int index)
void eloss (double path, const KalFitMaterial &m, int index)
 Calculate total energy lost in material.
double smoother_Mdc (KalFitHelixSeg &seg, CLHEP::Hep3Vector &meas, int &flg, int csmflag)
 Kalman smoother for Mdc.
double smoother_Mdc_csmalign (KalFitHelixSeg &seg, CLHEP::Hep3Vector &meas, int &flg, int csmflag)
double smoother_Mdc (KalFitHitMdc &HitMdc, CLHEP::Hep3Vector &meas, KalFitHelixSeg &seg, double &dchi2, int csmflag)
double update_hits (KalFitHitMdc &HitMdc, int inext, CLHEP::Hep3Vector &meas, int way, double &dchi2, double &dtrack, double &dtracknew, double &dtdc, int csmflag)
 Include the Mdc wire hits.
double update_hits (KalFitHelixSeg &HelixSeg, int inext, CLHEP::Hep3Vector &meas, int way, double &dchi2, int csmflag)
double update_hits_csmalign (KalFitHelixSeg &HelixSeg, int inext, CLHEP::Hep3Vector &meas, int way, double &dchi2, int csmflag)
double chi2_next (Helix &H, KalFitHitMdc &HitMdc, int csmflag)
double chi2_next (Helix &H, KalFitHitMdc &HitMdc)
void update_last (void)
 Record the current parameters as ..._last information :
void update_forMdc (void)
void point_last (const HepPoint3D &point)
 set and give out the last point of the track
const HepPoint3Dpoint_last (void)
const HepPoint3Dpivot_last (void) const
 returns helix parameters
const CLHEP::HepVector & a_last (void) const
const CLHEP::HepSymMatrix & Ea_last (void) const
const HepPoint3Dpivot_forMdc (void) const
const CLHEP::HepVector & a_forMdc (void) const
const CLHEP::HepSymMatrix & Ea_forMdc (void) const
void path_add (double path)
 Update the path length estimation.
void addPathSM (double path)
double getPathSM (void)
void addTofSM (double time)
double getTofSM (void)
void fiTerm (double fi)
double getFiTerm (void)
void tof (double path)
 Update the tof estimation.
double filter (double v_m, const CLHEP::HepVector &m_H, double v_d, double m_V)
double cor_tanldep (double *p, double er)
 Correct the error according the current tanl value :
void update_bit (int i)
int insist (void) const
 Extractor :
int type (void) const
int trasan_id (void) const
double r0 (void) const
double mass (void) const
double chiSq (void) const
double chiSq_back (void) const
int ndf_back (void) const
double pathip (void) const
double path_rd (void) const
double path_ab (void) const
double * pathl (void)
CLHEP::Hep3Vector * mom (void)
double tof (void) const
double tof_kaon (void) const
double tof_proton (void) const
double p_kaon (void) const
double p_proton (void) const
double dchi2_max (void) const
double r_max (void) const
unsigned int nchits (void) const
unsigned int nster (void) const
unsigned int ncath (void) const
int pat1 (void) const
int pat2 (void) const
int nhit_r (void) const
int nhit_z (void) const
void type (int t)
 Reinitialize (modificator).
void trasan_id (int t)
void insist (int t)
void pathip (double pl)
void p_kaon (double pl)
void p_proton (double pl)
void chiSq (double c)
void chiSq_back (double c)
void ndf_back (int n)
void nchits (int n)
void nster (int n)
void add_nhit_r (void)
void add_nhit_z (void)
double PathL (int layer)
 Function to calculate the path length in the layer.
void appendHitsMdc (KalFitHitMdc h)
 Functions for Mdc hits list.
void HitsMdc (vector< KalFitHitMdc > &lh)
vector< KalFitHitMdc > & HitsMdc (void)
KalFitHitMdcHitMdc (int i)
void appendHelixSegs (KalFitHelixSeg s)
void HelixSegs (vector< KalFitHelixSeg > &vs)
vector< KalFitHelixSeg > & HelixSegs (void)
KalFitHelixSegHelixSeg (int i)
void order_wirhit (int index)
void order_hits (void)
void number_wirhit (void)
const HepPoint3Dpivot_numf (const HepPoint3D &newPivot)
 Sets pivot position in a given mag field.
const HepPoint3Dpivot_numf (const HepPoint3D &newPivot, double &pathl)
double radius_numf (void) const
 Estimation of the radius in a given mag field.
double getSigma (int layerId, double driftDist) const
double getSigma (KalFitHitMdc &hitmdc, double tanlam, int lr, double dist) const
double getDriftDist (KalFitHitMdc &hitmdc, double drifttime, int lr) const
double getDriftTime (KalFitHitMdc &hitmdc, double toftime) const
double getT0 (void) const
HepSymMatrix getInitMatrix (void) const
double getDigi () const
void chgmass (int i)
int nLayerUsed ()
void resetLayerUsed ()
void useLayer (int iLay)
Public Member Functions inherited from KalmanFit::Helix
 Helix (const HepPoint3D &pivot, const HepVector &a, const HepSymMatrix &Ea)
 Constructor with pivot, helix parameter a, and its error matrix.
 Helix (const HepPoint3D &pivot, const HepVector &a)
 Constructor without error matrix.
 Helix (const HepPoint3D &position, const Hep3Vector &momentum, double charge)
 Constructor with position, momentum, and charge.
virtual ~Helix ()
 Destructor.
const HepPoint3Dcenter (void) const
 returns position of helix center(z = 0.);
const HepPoint3Dpivot (void) const
 returns pivot position.
double radius (void) const
 returns radious of helix.
HepPoint3D x (double dPhi=0.) const
 returns position after rotating angle dPhi in phi direction.
double * x (double dPhi, double p[3]) const
HepPoint3D x (double dPhi, HepSymMatrix &Ex) const
 returns position and convariance matrix(Ex) after rotation.
Hep3Vector direction (double dPhi=0.) const
 returns direction vector after rotating angle dPhi in phi direction.
Hep3Vector momentum (double dPhi=0.) const
 returns momentum vector after rotating angle dPhi in phi direction.
Hep3Vector momentum (double dPhi, HepSymMatrix &Em) const
 returns momentum vector after rotating angle dPhi in phi direction.
HepLorentzVector momentum (double dPhi, double mass) const
 returns 4momentum vector after rotating angle dPhi in phi direction.
HepLorentzVector momentum (double dPhi, double mass, HepSymMatrix &Em) const
 returns 4momentum vector after rotating angle dPhi in phi direction.
HepLorentzVector momentum (double dPhi, double mass, HepPoint3D &x, HepSymMatrix &Emx) const
 returns 4momentum vector after rotating angle dPhi in phi direction.
double dr (void) const
 returns an element of parameters.
double phi0 (void) const
double kappa (void) const
double dz (void) const
double tanl (void) const
double curv (void) const
double sinPhi0 (void) const
double cosPhi0 (void) const
const HepVector & a (void) const
 returns helix parameters.
const HepSymMatrix & Ea (void) const
 returns error matrix.
double approach (KalFitHitMdc &hit, bool doSagCorrection) const
double approach (HepPoint3D pfwd, HepPoint3D pbwd, bool doSagCorrection) const
const HepVector & a (const HepVector &newA)
 sets helix parameters.
const HepSymMatrix & Ea (const HepSymMatrix &newdA)
 sets helix paramters and error matrix.
const HepPoint3Dpivot (const HepPoint3D &newPivot)
 sets pivot position.
void set (const HepPoint3D &pivot, const HepVector &a, const HepSymMatrix &Ea)
 sets helix pivot position, parameters, and error matrix.
void ignoreErrorMatrix (void)
double bFieldZ (double)
 sets/returns z componet of the magnetic field.
double bFieldZ (void) const
double alpha (void) const
Helixoperator= (const Helix &)
 Copy operator.
HepMatrix delApDelA (const HepVector &ap) const
HepMatrix delXDelA (double phi) const
HepMatrix delMDelA (double phi) const
HepMatrix del4MDelA (double phi, double mass) const
HepMatrix del4MXDelA (double phi, double mass) const
 Helix (const HepPoint3D &pivot, const HepVector &a, const HepSymMatrix &Ea)
 Constructor with pivot, helix parameter a, and its error matrix.
 Helix (const HepPoint3D &pivot, const HepVector &a)
 Constructor without error matrix.
 Helix (const HepPoint3D &position, const Hep3Vector &momentum, double charge)
 Constructor with position, momentum, and charge.
virtual ~Helix ()
 Destructor.
const HepPoint3Dcenter (void) const
 returns position of helix center(z = 0.);
const HepPoint3Dpivot (void) const
 returns pivot position.
double radius (void) const
 returns radious of helix.
HepPoint3D x (double dPhi=0.) const
 returns position after rotating angle dPhi in phi direction.
double * x (double dPhi, double p[3]) const
HepPoint3D x (double dPhi, HepSymMatrix &Ex) const
 returns position and convariance matrix(Ex) after rotation.
Hep3Vector direction (double dPhi=0.) const
 returns direction vector after rotating angle dPhi in phi direction.
Hep3Vector momentum (double dPhi=0.) const
 returns momentum vector after rotating angle dPhi in phi direction.
Hep3Vector momentum (double dPhi, HepSymMatrix &Em) const
 returns momentum vector after rotating angle dPhi in phi direction.
HepLorentzVector momentum (double dPhi, double mass) const
 returns 4momentum vector after rotating angle dPhi in phi direction.
HepLorentzVector momentum (double dPhi, double mass, HepSymMatrix &Em) const
 returns 4momentum vector after rotating angle dPhi in phi direction.
HepLorentzVector momentum (double dPhi, double mass, HepPoint3D &x, HepSymMatrix &Emx) const
 returns 4momentum vector after rotating angle dPhi in phi direction.
double dr (void) const
 returns an element of parameters.
double phi0 (void) const
double kappa (void) const
double dz (void) const
double tanl (void) const
double curv (void) const
double sinPhi0 (void) const
double cosPhi0 (void) const
const HepVector & a (void) const
 returns helix parameters.
const HepSymMatrix & Ea (void) const
 returns error matrix.
double approach (KalFitHitMdc &hit, bool doSagCorrection) const
double approach (HepPoint3D pfwd, HepPoint3D pbwd, bool doSagCorrection) const
const HepVector & a (const HepVector &newA)
 sets helix parameters.
const HepSymMatrix & Ea (const HepSymMatrix &newdA)
 sets helix paramters and error matrix.
const HepPoint3Dpivot (const HepPoint3D &newPivot)
 sets pivot position.
void set (const HepPoint3D &pivot, const HepVector &a, const HepSymMatrix &Ea)
 sets helix pivot position, parameters, and error matrix.
void ignoreErrorMatrix (void)
double bFieldZ (double)
 sets/returns z componet of the magnetic field.
double bFieldZ (void) const
double alpha (void) const
Helixoperator= (const Helix &)
 Copy operator.
HepMatrix delApDelA (const HepVector &ap) const
HepMatrix delXDelA (double phi) const
HepMatrix delMDelA (double phi) const
HepMatrix del4MDelA (double phi, double mass) const
HepMatrix del4MXDelA (double phi, double mass) const
 Helix (const HepPoint3D &pivot, const HepVector &a, const HepSymMatrix &Ea)
 Constructor with pivot, helix parameter a, and its error matrix.
 Helix (const HepPoint3D &pivot, const HepVector &a)
 Constructor without error matrix.
 Helix (const HepPoint3D &position, const Hep3Vector &momentum, double charge)
 Constructor with position, momentum, and charge.
virtual ~Helix ()
 Destructor.
const HepPoint3Dcenter (void) const
 returns position of helix center(z = 0.);
const HepPoint3Dpivot (void) const
 returns pivot position.
double radius (void) const
 returns radious of helix.
HepPoint3D x (double dPhi=0.) const
 returns position after rotating angle dPhi in phi direction.
double * x (double dPhi, double p[3]) const
HepPoint3D x (double dPhi, HepSymMatrix &Ex) const
 returns position and convariance matrix(Ex) after rotation.
Hep3Vector direction (double dPhi=0.) const
 returns direction vector after rotating angle dPhi in phi direction.
Hep3Vector momentum (double dPhi=0.) const
 returns momentum vector after rotating angle dPhi in phi direction.
Hep3Vector momentum (double dPhi, HepSymMatrix &Em) const
 returns momentum vector after rotating angle dPhi in phi direction.
HepLorentzVector momentum (double dPhi, double mass) const
 returns 4momentum vector after rotating angle dPhi in phi direction.
HepLorentzVector momentum (double dPhi, double mass, HepSymMatrix &Em) const
 returns 4momentum vector after rotating angle dPhi in phi direction.
HepLorentzVector momentum (double dPhi, double mass, HepPoint3D &x, HepSymMatrix &Emx) const
 returns 4momentum vector after rotating angle dPhi in phi direction.
double dr (void) const
 returns an element of parameters.
double phi0 (void) const
double kappa (void) const
double dz (void) const
double tanl (void) const
double curv (void) const
double sinPhi0 (void) const
double cosPhi0 (void) const
const HepVector & a (void) const
 returns helix parameters.
const HepSymMatrix & Ea (void) const
 returns error matrix.
double approach (KalFitHitMdc &hit, bool doSagCorrection) const
double approach (HepPoint3D pfwd, HepPoint3D pbwd, bool doSagCorrection) const
const HepVector & a (const HepVector &newA)
 sets helix parameters.
const HepSymMatrix & Ea (const HepSymMatrix &newdA)
 sets helix paramters and error matrix.
const HepPoint3Dpivot (const HepPoint3D &newPivot)
 sets pivot position.
void set (const HepPoint3D &pivot, const HepVector &a, const HepSymMatrix &Ea)
 sets helix pivot position, parameters, and error matrix.
void ignoreErrorMatrix (void)
double bFieldZ (double)
 sets/returns z componet of the magnetic field.
double bFieldZ (void) const
double alpha (void) const
Helixoperator= (const Helix &)
 Copy operator.
HepMatrix delApDelA (const HepVector &ap) const
HepMatrix delXDelA (double phi) const
HepMatrix delMDelA (double phi) const
HepMatrix del4MDelA (double phi, double mass) const
HepMatrix del4MXDelA (double phi, double mass) const

Static Public Member Functions

static void setT0 (double t0)
static void setInitMatrix (HepSymMatrix m)
static void setMdcCalibFunSvc (const IMdcCalibFunSvc *calibsvc)
static void setMagneticFieldSvc (IBesMagFieldSvc *)
static void setIMdcGeomSvc (IMdcGeomSvc *igeomsvc)
static void setMdcDigiCol (MdcDigiCol *digicol)
static int nmass (void)
static double mass (int i)
static void LR (int x)
static int lead (void)
 Magnetic field map.
static void lead (int i)
static int back (void)
static void back (int i)
static int resol (void)
static void resol (int i)
static int numf (void)
static void numf (int i)
static void setT0 (double t0)
static void setInitMatrix (HepSymMatrix m)
static void setMdcCalibFunSvc (const IMdcCalibFunSvc *calibsvc)
static void setMagneticFieldSvc (IBesMagFieldSvc *)
static void setIMdcGeomSvc (IMdcGeomSvc *igeomsvc)
static void setMdcDigiCol (MdcDigiCol *digicol)
static int nmass (void)
static double mass (int i)
static void LR (int x)
static int lead (void)
 Magnetic field map.
static void lead (int i)
static int back (void)
static void back (int i)
static int resol (void)
static void resol (int i)
static int numf (void)
static void numf (int i)
static void setT0 (double t0)
static void setInitMatrix (HepSymMatrix m)
static void setMdcCalibFunSvc (const IMdcCalibFunSvc *calibsvc)
static void setMagneticFieldSvc (IBesMagFieldSvc *)
static void setIMdcGeomSvc (IMdcGeomSvc *igeomsvc)
static void setMdcDigiCol (MdcDigiCol *digicol)
static int nmass (void)
static double mass (int i)
static void LR (int x)
static int lead (void)
 Magnetic field map.
static void lead (int i)
static int back (void)
static void back (int i)
static int resol (void)
static void resol (int i)
static int numf (void)
static void numf (int i)

Static Public Attributes

static double mdcGasRadlen_ = 0.
static int tprop_ = 1
 for signal propagation correction
static int debug_ = 0
 for debug
static double chi2_hitf_ = 1000
 Cut chi2 for each hit.
static double chi2_hits_ = 1000
static int numf_ = 0
 Flag for treatment of non-uniform mag field.
static int inner_steps_ = 3
static int outer_steps_ = 3
static double dchi2cutf_anal [43] = { 0. }
static double dchi2cuts_anal [43] = { 0. }
static double dchi2cutf_calib [43] = { 0. }
static double dchi2cuts_calib [43] = { 0. }
static int numfcor_ = 1
 NUMF treatment improved.
static double Bznom_ = 10
static int steplev_ = 0
static int Tof_correc_ = 1
 Flag for TOF correction.
static int strag_ = 1
 Flag to take account of energy loss straggling :
static double factor_strag_ = 0.4
 factor of energy loss straggling for electron
static int nmdc_hit2_ = 500
 Cut chi2 for each hit.
static double chi2mdc_hit2_
static int tofall_ = 1
static int resolflag_ = 0
 wire resoltion flag
static int LR_ = 1
 Use L/R decision from MdcRecHit information :
static int drifttime_choice_ = 0
 the drifttime choice
Static Public Attributes inherited from KalmanFit::Helix
static const double ConstantAlpha = 333.564095
 Constant alpha for uniform field.

Detailed Description

Description of a track class (<- Helix.cc).

Definition at line 32 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

Constructor & Destructor Documentation

◆ KalFitTrack() [1/3]

KalFitTrack::KalFitTrack ( const HepPoint3D & pivot,
const CLHEP::HepVector & a,
const CLHEP::HepSymMatrix & Ea,
unsigned int m,
double chiSq,
unsigned int nhits )

constructor

◆ ~KalFitTrack() [1/3]

KalFitTrack::~KalFitTrack ( void )

destructor

Definition at line 111 of file KalFitTrack.cxx.

111 {
112 // delete all objects
113}

◆ KalFitTrack() [2/3]

KalFitTrack::KalFitTrack ( const HepPoint3D & pivot,
const CLHEP::HepVector & a,
const CLHEP::HepSymMatrix & Ea,
unsigned int m,
double chiSq,
unsigned int nhits )

constructor

◆ ~KalFitTrack() [2/3]

KalFitTrack::~KalFitTrack ( void )

destructor

◆ KalFitTrack() [3/3]

KalFitTrack::KalFitTrack ( const HepPoint3D & pivot,
const CLHEP::HepVector & a,
const CLHEP::HepSymMatrix & Ea,
unsigned int m,
double chiSq,
unsigned int nhits )

constructor

◆ ~KalFitTrack() [3/3]

KalFitTrack::~KalFitTrack ( void )

destructor

Member Function Documentation

◆ a_forMdc() [1/3]

const CLHEP::HepVector & KalFitTrack::a_forMdc ( void ) const
inline

Definition at line 142 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

142{ return a_forMdc_; }

◆ a_forMdc() [2/3]

const CLHEP::HepVector & KalFitTrack::a_forMdc ( void ) const
inline

Definition at line 142 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

142{ return a_forMdc_; }

◆ a_forMdc() [3/3]

const CLHEP::HepVector & KalFitTrack::a_forMdc ( void ) const
inline

Definition at line 142 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

142{ return a_forMdc_; }

◆ a_last() [1/3]

const CLHEP::HepVector & KalFitTrack::a_last ( void ) const
inline

Definition at line 138 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

138{ return a_last_; }

◆ a_last() [2/3]

const CLHEP::HepVector & KalFitTrack::a_last ( void ) const
inline

Definition at line 138 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

138{ return a_last_; }

◆ a_last() [3/3]

const CLHEP::HepVector & KalFitTrack::a_last ( void ) const
inline

Definition at line 138 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

138{ return a_last_; }

◆ add_nhit_r() [1/3]

void KalFitTrack::add_nhit_r ( void )
inline

Definition at line 210 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

210{ nhit_r_++; }

◆ add_nhit_r() [2/3]

void KalFitTrack::add_nhit_r ( void )
inline

Definition at line 210 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

210{ nhit_r_++; }

◆ add_nhit_r() [3/3]

void KalFitTrack::add_nhit_r ( void )
inline

Definition at line 210 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

210{ nhit_r_++; }

◆ add_nhit_z() [1/3]

void KalFitTrack::add_nhit_z ( void )
inline

Definition at line 211 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

211{ nhit_z_++; }

◆ add_nhit_z() [2/3]

void KalFitTrack::add_nhit_z ( void )
inline

Definition at line 211 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

211{ nhit_z_++; }

◆ add_nhit_z() [3/3]

void KalFitTrack::add_nhit_z ( void )
inline

Definition at line 211 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

211{ nhit_z_++; }

◆ addPathSM() [1/3]

void KalFitTrack::addPathSM ( double path)

Definition at line 1359 of file KalFitTrack.cxx.

1359{ pathSM_ += path; }

Referenced by KalFitAlg::smoother_anal().

◆ addPathSM() [2/3]

void KalFitTrack::addPathSM ( double path)

◆ addPathSM() [3/3]

void KalFitTrack::addPathSM ( double path)

◆ addTofSM() [1/3]

void KalFitTrack::addTofSM ( double time)

Definition at line 1361 of file KalFitTrack.cxx.

1361{ tof2_ += time; }
Double_t time

Referenced by KalFitAlg::smoother_anal().

◆ addTofSM() [2/3]

void KalFitTrack::addTofSM ( double time)

◆ addTofSM() [3/3]

void KalFitTrack::addTofSM ( double time)

◆ appendHelixSegs() [1/3]

void KalFitTrack::appendHelixSegs ( KalFitHelixSeg s)

◆ appendHelixSegs() [2/3]

void KalFitTrack::appendHelixSegs ( KalFitHelixSeg s)

◆ appendHelixSegs() [3/3]

void KalFitTrack::appendHelixSegs ( KalFitHelixSeg s)

◆ appendHitsMdc() [1/3]

void KalFitTrack::appendHitsMdc ( KalFitHitMdc h)

Functions for Mdc hits list.

Definition at line 1874 of file KalFitTrack.cxx.

1874{ HitsMdc_.push_back( h ); }

Referenced by KalFitAlg::kalman_fitting_anal(), KalFitAlg::kalman_fitting_calib(), KalFitAlg::kalman_fitting_csmalign(), and KalFitAlg::kalman_fitting_MdcxReco_Csmc_Sew().

◆ appendHitsMdc() [2/3]

void KalFitTrack::appendHitsMdc ( KalFitHitMdc h)

Functions for Mdc hits list.

◆ appendHitsMdc() [3/3]

void KalFitTrack::appendHitsMdc ( KalFitHitMdc h)

Functions for Mdc hits list.

◆ back() [1/6]

void KalFitTrack::back ( int i)
static

Definition at line 1866 of file KalFitTrack.cxx.

1866{ back_ = i; }

◆ back() [2/6]

void KalFitTrack::back ( int i)
static

◆ back() [3/6]

void KalFitTrack::back ( int i)
static

◆ back() [4/6]

int KalFitTrack::back ( void )
static

Definition at line 1867 of file KalFitTrack.cxx.

1867{ return back_; }

Referenced by KalFitAlg::initialize().

◆ back() [5/6]

int KalFitTrack::back ( void )
static

◆ back() [6/6]

int KalFitTrack::back ( void )
static

◆ chgmass() [1/3]

void KalFitTrack::chgmass ( int i)

Definition at line 1859 of file KalFitTrack.cxx.

1859 {
1860 mass_ = MASS[i];
1861 l_mass_ = i;
1862}

Referenced by KalFitAlg::complete_track(), and KalFitAlg::complete_track().

◆ chgmass() [2/3]

void KalFitTrack::chgmass ( int i)

◆ chgmass() [3/3]

void KalFitTrack::chgmass ( int i)

◆ chi2_next() [1/6]

double KalFitTrack::chi2_next ( Helix & H,
KalFitHitMdc & HitMdc )

Definition at line 2915 of file KalFitTrack.cxx.

2915 {
2916
2917 double lr = HitMdc.LR();
2918 const KalFitWire& Wire = HitMdc.wire();
2919 int wire_ID = Wire.geoID();
2920 int layerid = HitMdc.wire().layer().layerId();
2921 double entrangle = HitMdc.rechitptr()->getEntra();
2922
2923 HepPoint3D fwd( Wire.fwd() );
2924 HepPoint3D bck( Wire.bck() );
2925 Hep3Vector wire = (Hep3Vector)fwd - (Hep3Vector)bck;
2926 Helix work = H;
2927 work.ignoreErrorMatrix();
2928 work.pivot( ( fwd + bck ) * .5 );
2929 HepPoint3D x0kal = ( work.x( 0 ).z() - bck.z() ) / wire.z() * wire + bck;
2930 H.pivot( x0kal );
2931
2932 Hep3Vector meas = H.momentum( 0 ).cross( wire ).unit();
2933
2934 if ( wire_ID < 0 || wire_ID > 6796 )
2935 { // bes
2936 std::cout << "KalFitTrack : wire_ID problem : " << wire_ID << std::endl;
2937 return DBL_MAX;
2938 }
2939
2940 double x[3] = { pivot().x(), pivot().y(), pivot().z() };
2941 double pmom[3] = { momentum().x(), momentum().y(), momentum().z() };
2942 double tofest( 0 );
2943 double phi = fmod( phi0() + M_PI4, M_PI2 );
2944 double csf0 = cos( phi );
2945 double snf0 = ( 1. - csf0 ) * ( 1. + csf0 );
2946 snf0 = sqrt( ( snf0 > 0. ) ? snf0 : 0. );
2947 if ( phi > M_PI ) snf0 = -snf0;
2948
2949 if ( Tof_correc_ )
2950 {
2951 Hep3Vector ip( 0, 0, 0 );
2952 Helix work = *(Helix*)this;
2953 work.ignoreErrorMatrix();
2954 work.pivot( ip );
2955 double phi_ip = work.phi0();
2956 if ( fabs( phi - phi_ip ) > M_PI )
2957 {
2958 if ( phi > phi_ip ) phi -= 2 * M_PI;
2959 else phi_ip -= 2 * M_PI;
2960 }
2961 double t = tanl();
2962 double l = fabs( radius() * ( phi - phi_ip ) * sqrt( 1 + t * t ) );
2963 double pmag( sqrt( 1.0 + t * t ) / kappa() );
2964 double mass_over_p( mass_ / pmag );
2965 double beta( 1.0 / sqrt( 1.0 + mass_over_p * mass_over_p ) );
2966 tofest = l / ( 29.9792458 * beta );
2967 // if(csmflag==1 && HitMdc.wire().y()>0.) tofest= -1. * tofest;
2968 }
2969
2970 const HepSymMatrix& ea = H.Ea();
2971 const HepVector& v_a = H.a();
2972 double dchi2R( DBL_MAX ), dchi2L( DBL_MAX );
2973
2974 HepVector v_H( 5, 0 );
2975 v_H[0] = -csf0 * meas.x() - snf0 * meas.y();
2976 v_H[3] = -meas.z();
2977 HepMatrix v_HT = v_H.T();
2978
2979 double estim = ( v_HT * v_a )[0];
2980 HepVector ea_v_H = ea * v_H;
2981 HepMatrix ea_v_HT = ( ea_v_H ).T();
2982 HepVector v_H_T_ea_v_H = v_HT * ea_v_H;
2983
2984 HepSymMatrix eaNewL( 5 ), eaNewR( 5 );
2985 HepVector aNewL( 5 ), aNewR( 5 );
2986
2987 // double time = HitMdc.tdc();
2988 // if (Tof_correc_)
2989 // time = time - tofest;
2990 double drifttime = getDriftTime( HitMdc, tofest );
2991 double ddl = getDriftDist( HitMdc, drifttime, 0 );
2992 double ddr = getDriftDist( HitMdc, drifttime, 1 );
2993 double erddl = getSigma( HitMdc, H.a()[4], 0, ddl );
2994 double erddr = getSigma( HitMdc, H.a()[4], 1, ddr );
2995
2996 double dmeas2[2] = { 0.1 * ddl, 0.1 * ddr };
2997 double er_dmeas2[2] = { 0., 0. };
2998 if ( resolflag_ == 1 )
2999 {
3000 er_dmeas2[0] = 0.1 * erddl;
3001 er_dmeas2[1] = 0.1 * erddr;
3002 }
3003 else if ( resolflag_ == 0 )
3004 {
3005 // int layid = HitMdc.wire().layer().layerId();
3006 // double sigma = getSigma(layid, dd);
3007 // er_dmeas2[0] = er_dmeas2[1] = sigma;
3008 }
3009
3010 if ( ( LR_ == 0 && lr != 1.0 ) || ( LR_ == 1 && lr == -1.0 ) )
3011 {
3012
3013 double er_dmeasL, dmeasL;
3014 if ( Tof_correc_ )
3015 {
3016 dmeasL = ( -1.0 ) * fabs( dmeas2[0] );
3017 er_dmeasL = er_dmeas2[0];
3018 }
3019 else
3020 {
3021 dmeasL = ( -1.0 ) * fabs( HitMdc.dist()[0] );
3022 er_dmeasL = HitMdc.erdist()[0];
3023 }
3024
3025 double AL = 1 / ( ( v_H_T_ea_v_H )[0] + er_dmeasL * er_dmeasL );
3026 eaNewL.assign( ea - ea_v_H * AL * ea_v_HT );
3027 double RkL = 1 - ( v_H_T_ea_v_H )[0] * AL;
3028 if ( 0. == RkL ) RkL = 1.e-4;
3029
3030 HepVector diffL = ea_v_H * AL * ( dmeasL - estim );
3031 aNewL = v_a + diffL;
3032 double sigL = dmeasL - ( v_HT * aNewL )[0];
3033 dchi2L = ( sigL * sigL ) / ( RkL * er_dmeasL * er_dmeasL );
3034 }
3035
3036 if ( ( LR_ == 0 && lr != -1.0 ) || ( LR_ == 1 && lr == 1.0 ) )
3037 {
3038
3039 double er_dmeasR, dmeasR;
3040 if ( Tof_correc_ )
3041 {
3042 dmeasR = dmeas2[1];
3043 er_dmeasR = er_dmeas2[1];
3044 }
3045 else
3046 {
3047 dmeasR = fabs( HitMdc.dist()[1] );
3048 er_dmeasR = HitMdc.erdist()[1];
3049 }
3050
3051 double AR = 1 / ( ( v_H_T_ea_v_H )[0] + er_dmeasR * er_dmeasR );
3052 eaNewR.assign( ea - ea_v_H * AR * ea_v_HT );
3053 double RkR = 1 - ( v_H_T_ea_v_H )[0] * AR;
3054 if ( 0. == RkR ) RkR = 1.e-4;
3055
3056 HepVector diffR = ea_v_H * AR * ( dmeasR - estim );
3057 aNewR = v_a + diffR;
3058 double sigR = dmeasR - ( v_HT * aNewR )[0];
3059 dchi2R = ( sigR * sigR ) / ( RkR * er_dmeasR * er_dmeasR );
3060 }
3061
3062 if ( dchi2R < dchi2L )
3063 {
3064 H.a( aNewR );
3065 H.Ea( eaNewR );
3066 }
3067 else
3068 {
3069 H.a( aNewL );
3070 H.Ea( eaNewL );
3071 }
3072 return ( ( dchi2R < dchi2L ) ? dchi2R : dchi2L );
3073}
const double M_PI2
const double M_PI4
**********INTEGER nmxhep !maximum number of particles DOUBLE PRECISION vhep INTEGER jdahep COMMON hepevt $ !serial number $ !number of particles $ !status code $ !particle ident KF $ !parent particles $ !childreen particles $ !four momentum
HepGeom::Point3D< double > HepPoint3D
#define M_PI
Definition TConstant.h:4
double getDriftTime(KalFitHitMdc &hitmdc, double toftime) const
double getSigma(int layerId, double driftDist) const
double getDriftDist(KalFitHitMdc &hitmdc, double drifttime, int lr) const
static int LR_
Use L/R decision from MdcRecHit information :
HepPoint3D x(double dPhi=0.) const
returns position after rotating angle dPhi in phi direction.
Helix(const HepPoint3D &pivot, const HepVector &a, const HepSymMatrix &Ea)
Constructor with pivot, helix parameter a, and its error matrix.
const HepPoint3D & pivot(void) const
returns pivot position.
IMPLICIT REAL *A H
Definition myXsection.h:1
int t()
Definition t.c:1

◆ chi2_next() [2/6]

double KalFitTrack::chi2_next ( Helix & H,
KalFitHitMdc & HitMdc )

◆ chi2_next() [3/6]

double KalFitTrack::chi2_next ( Helix & H,
KalFitHitMdc & HitMdc )

◆ chi2_next() [4/6]

double KalFitTrack::chi2_next ( Helix & H,
KalFitHitMdc & HitMdc,
int csmflag )

Definition at line 3075 of file KalFitTrack.cxx.

3075 {
3076
3077 double lr = HitMdc.LR();
3078 const KalFitWire& Wire = HitMdc.wire();
3079 int wire_ID = Wire.geoID();
3080 int layerid = HitMdc.wire().layer().layerId();
3081 double entrangle = HitMdc.rechitptr()->getEntra();
3082
3083 HepPoint3D fwd( Wire.fwd() );
3084 HepPoint3D bck( Wire.bck() );
3085 Hep3Vector wire = (Hep3Vector)fwd - (Hep3Vector)bck;
3086 Helix work = H;
3087 work.ignoreErrorMatrix();
3088 work.pivot( ( fwd + bck ) * .5 );
3089 HepPoint3D x0kal = ( work.x( 0 ).z() - bck.z() ) / wire.z() * wire + bck;
3090 H.pivot( x0kal );
3091
3092 Hep3Vector meas = H.momentum( 0 ).cross( wire ).unit();
3093
3094 if ( wire_ID < 0 || wire_ID > 6796 )
3095 { // bes
3096 std::cout << "KalFitTrack : wire_ID problem : " << wire_ID << std::endl;
3097 return DBL_MAX;
3098 }
3099
3100 double x[3] = { pivot().x(), pivot().y(), pivot().z() };
3101 double pmom[3] = { momentum().x(), momentum().y(), momentum().z() };
3102 double tofest( 0 );
3103 double phi = fmod( phi0() + M_PI4, M_PI2 );
3104 double csf0 = cos( phi );
3105 double snf0 = ( 1. - csf0 ) * ( 1. + csf0 );
3106 snf0 = sqrt( ( snf0 > 0. ) ? snf0 : 0. );
3107 if ( phi > M_PI ) snf0 = -snf0;
3108
3109 if ( Tof_correc_ )
3110 {
3111 Hep3Vector ip( 0, 0, 0 );
3112 Helix work = *(Helix*)this;
3113 work.ignoreErrorMatrix();
3114 work.pivot( ip );
3115 double phi_ip = work.phi0();
3116 if ( fabs( phi - phi_ip ) > M_PI )
3117 {
3118 if ( phi > phi_ip ) phi -= 2 * M_PI;
3119 else phi_ip -= 2 * M_PI;
3120 }
3121 double t = tanl();
3122 double l = fabs( radius() * ( phi - phi_ip ) * sqrt( 1 + t * t ) );
3123 double pmag( sqrt( 1.0 + t * t ) / kappa() );
3124 double mass_over_p( mass_ / pmag );
3125 double beta( 1.0 / sqrt( 1.0 + mass_over_p * mass_over_p ) );
3126 tofest = l / ( 29.9792458 * beta );
3127 if ( csmflag == 1 && HitMdc.wire().y() > 0. ) tofest = -1. * tofest;
3128 }
3129
3130 const HepSymMatrix& ea = H.Ea();
3131 const HepVector& v_a = H.a();
3132 double dchi2R( DBL_MAX ), dchi2L( DBL_MAX );
3133
3134 HepVector v_H( 5, 0 );
3135 v_H[0] = -csf0 * meas.x() - snf0 * meas.y();
3136 v_H[3] = -meas.z();
3137 HepMatrix v_HT = v_H.T();
3138
3139 double estim = ( v_HT * v_a )[0];
3140 HepVector ea_v_H = ea * v_H;
3141 HepMatrix ea_v_HT = ( ea_v_H ).T();
3142 HepVector v_H_T_ea_v_H = v_HT * ea_v_H;
3143
3144 HepSymMatrix eaNewL( 5 ), eaNewR( 5 );
3145 HepVector aNewL( 5 ), aNewR( 5 );
3146
3147 // double time = HitMdc.tdc();
3148 // if (Tof_correc_)
3149 // time = time - tofest;
3150 double drifttime = getDriftTime( HitMdc, tofest );
3151 double ddl = getDriftDist( HitMdc, drifttime, 0 );
3152 double ddr = getDriftDist( HitMdc, drifttime, 1 );
3153 double erddl = getSigma( HitMdc, H.a()[4], 0, ddl );
3154 double erddr = getSigma( HitMdc, H.a()[4], 1, ddr );
3155
3156 double dmeas2[2] = { 0.1 * ddl, 0.1 * ddr };
3157 double er_dmeas2[2] = { 0., 0. };
3158 if ( resolflag_ == 1 )
3159 {
3160 er_dmeas2[0] = 0.1 * erddl;
3161 er_dmeas2[1] = 0.1 * erddr;
3162 }
3163 else if ( resolflag_ == 0 )
3164 {
3165 // int layid = HitMdc.wire().layer().layerId();
3166 // double sigma = getSigma(layid, dd);
3167 // er_dmeas2[0] = er_dmeas2[1] = sigma;
3168 }
3169
3170 if ( ( LR_ == 0 && lr != 1.0 ) || ( LR_ == 1 && lr == -1.0 ) )
3171 {
3172
3173 double er_dmeasL, dmeasL;
3174 if ( Tof_correc_ )
3175 {
3176 dmeasL = ( -1.0 ) * fabs( dmeas2[0] );
3177 er_dmeasL = er_dmeas2[0];
3178 }
3179 else
3180 {
3181 dmeasL = ( -1.0 ) * fabs( HitMdc.dist()[0] );
3182 er_dmeasL = HitMdc.erdist()[0];
3183 }
3184
3185 double AL = 1 / ( ( v_H_T_ea_v_H )[0] + er_dmeasL * er_dmeasL );
3186 eaNewL.assign( ea - ea_v_H * AL * ea_v_HT );
3187 double RkL = 1 - ( v_H_T_ea_v_H )[0] * AL;
3188 if ( 0. == RkL ) RkL = 1.e-4;
3189
3190 HepVector diffL = ea_v_H * AL * ( dmeasL - estim );
3191 aNewL = v_a + diffL;
3192 double sigL = dmeasL - ( v_HT * aNewL )[0];
3193 dchi2L = ( sigL * sigL ) / ( RkL * er_dmeasL * er_dmeasL );
3194 }
3195
3196 if ( ( LR_ == 0 && lr != -1.0 ) || ( LR_ == 1 && lr == 1.0 ) )
3197 {
3198
3199 double er_dmeasR, dmeasR;
3200 if ( Tof_correc_ )
3201 {
3202 dmeasR = dmeas2[1];
3203 er_dmeasR = er_dmeas2[1];
3204 }
3205 else
3206 {
3207 dmeasR = fabs( HitMdc.dist()[1] );
3208 er_dmeasR = HitMdc.erdist()[1];
3209 }
3210
3211 double AR = 1 / ( ( v_H_T_ea_v_H )[0] + er_dmeasR * er_dmeasR );
3212 eaNewR.assign( ea - ea_v_H * AR * ea_v_HT );
3213 double RkR = 1 - ( v_H_T_ea_v_H )[0] * AR;
3214 if ( 0. == RkR ) RkR = 1.e-4;
3215
3216 HepVector diffR = ea_v_H * AR * ( dmeasR - estim );
3217 aNewR = v_a + diffR;
3218 double sigR = dmeasR - ( v_HT * aNewR )[0];
3219 dchi2R = ( sigR * sigR ) / ( RkR * er_dmeasR * er_dmeasR );
3220 }
3221
3222 if ( dchi2R < dchi2L )
3223 {
3224 H.a( aNewR );
3225 H.Ea( eaNewR );
3226 }
3227 else
3228 {
3229 H.a( aNewL );
3230 H.Ea( eaNewL );
3231 }
3232 return ( ( dchi2R < dchi2L ) ? dchi2R : dchi2L );
3233}

◆ chi2_next() [5/6]

double KalFitTrack::chi2_next ( Helix & H,
KalFitHitMdc & HitMdc,
int csmflag )

◆ chi2_next() [6/6]

double KalFitTrack::chi2_next ( Helix & H,
KalFitHitMdc & HitMdc,
int csmflag )

◆ chiSq() [1/6]

void KalFitTrack::chiSq ( double c)
inline

Definition at line 204 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

204{ chiSq_ = c; }

◆ chiSq() [2/6]

void KalFitTrack::chiSq ( double c)
inline

Definition at line 204 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

204{ chiSq_ = c; }

◆ chiSq() [3/6]

void KalFitTrack::chiSq ( double c)
inline

Definition at line 204 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

204{ chiSq_ = c; }

◆ chiSq() [4/6]

◆ chiSq() [5/6]

double KalFitTrack::chiSq ( void ) const
inline

Definition at line 173 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

173{ return chiSq_; }

◆ chiSq() [6/6]

double KalFitTrack::chiSq ( void ) const
inline

Definition at line 173 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

173{ return chiSq_; }

◆ chiSq_back() [1/6]

void KalFitTrack::chiSq_back ( double c)
inline

Definition at line 205 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

205{ chiSq_back_ = c; }

◆ chiSq_back() [2/6]

void KalFitTrack::chiSq_back ( double c)
inline

Definition at line 205 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

205{ chiSq_back_ = c; }

◆ chiSq_back() [3/6]

void KalFitTrack::chiSq_back ( double c)
inline

Definition at line 205 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

205{ chiSq_back_ = c; }

◆ chiSq_back() [4/6]

double KalFitTrack::chiSq_back ( void ) const
inline

◆ chiSq_back() [5/6]

double KalFitTrack::chiSq_back ( void ) const
inline

Definition at line 174 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

174{ return chiSq_back_; }

◆ chiSq_back() [6/6]

double KalFitTrack::chiSq_back ( void ) const
inline

Definition at line 174 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

174{ return chiSq_back_; }

◆ cor_tanldep() [1/3]

double KalFitTrack::cor_tanldep ( double * p,
double er )

Correct the error according the current tanl value :

◆ cor_tanldep() [2/3]

double KalFitTrack::cor_tanldep ( double * p,
double er )

Correct the error according the current tanl value :

◆ cor_tanldep() [3/3]

double KalFitTrack::cor_tanldep ( double * p,
double er )

Correct the error according the current tanl value :

◆ dchi2_max() [1/3]

double KalFitTrack::dchi2_max ( void ) const
inline

Definition at line 186 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

186{ return dchi2_max_; }

◆ dchi2_max() [2/3]

double KalFitTrack::dchi2_max ( void ) const
inline

Definition at line 186 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

186{ return dchi2_max_; }

◆ dchi2_max() [3/3]

double KalFitTrack::dchi2_max ( void ) const
inline

Definition at line 186 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

186{ return dchi2_max_; }

◆ Ea_forMdc() [1/3]

const CLHEP::HepSymMatrix & KalFitTrack::Ea_forMdc ( void ) const
inline

Definition at line 143 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

143{ return Ea_forMdc_; }

◆ Ea_forMdc() [2/3]

const CLHEP::HepSymMatrix & KalFitTrack::Ea_forMdc ( void ) const
inline

Definition at line 143 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

143{ return Ea_forMdc_; }

◆ Ea_forMdc() [3/3]

const CLHEP::HepSymMatrix & KalFitTrack::Ea_forMdc ( void ) const
inline

Definition at line 143 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

143{ return Ea_forMdc_; }

◆ Ea_last() [1/3]

const CLHEP::HepSymMatrix & KalFitTrack::Ea_last ( void ) const
inline

Definition at line 139 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

139{ return Ea_last_; }

◆ Ea_last() [2/3]

const CLHEP::HepSymMatrix & KalFitTrack::Ea_last ( void ) const
inline

Definition at line 139 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

139{ return Ea_last_; }

◆ Ea_last() [3/3]

const CLHEP::HepSymMatrix & KalFitTrack::Ea_last ( void ) const
inline

Definition at line 139 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

139{ return Ea_last_; }

◆ eloss() [1/3]

void KalFitTrack::eloss ( double path,
const KalFitMaterial & m,
int index )

Calculate total energy lost in material.

Definition at line 272 of file KalFitTrack.cxx.

272 {
273#ifdef YDEBUG
274 cout << "eloss():ea before: " << Ea() << endl;
275#endif
276 HepVector v_a = a();
277 double v_a_2_2 = v_a[2] * v_a[2];
278 double v_a_4_2 = v_a[4] * v_a[4];
279 double pmag = 1 / fabs( v_a[2] ) * sqrt( 1 + v_a_4_2 );
280 double psq = pmag * pmag;
281 double E = sqrt( mass_ * mass_ + psq );
282 double dE = material.dE( mass_, path, pmag );
283 // std::cout<<" eloss(): dE: "<<dE<<std::endl;//wangll
284
285 if ( index > 0 ) psq += dE * ( dE + 2 * sqrt( mass_ * mass_ + psq ) );
286 else
287 {
288 double dE_max = E - mass_;
289 if ( dE < dE_max ) psq += dE * ( dE - 2 * sqrt( mass_ * mass_ + psq ) );
290 else psq = -1.0;
291 }
292
293 if ( tofall_ && index < 0 )
294 {
295 // Kaon case :
296 if ( p_kaon_ > 0 )
297 {
298 double psq_kaon = p_kaon_ * p_kaon_;
299 double dE_kaon = material.dE( MASS[3], path, p_kaon_ );
300 psq_kaon += dE_kaon * ( dE_kaon - 2 * sqrt( MASS[3] * MASS[3] + psq_kaon ) );
301 if ( psq_kaon < 0 ) psq_kaon = 0;
302 p_kaon_ = sqrt( psq_kaon );
303 }
304 // Proton case :
305 if ( p_proton_ > 0 )
306 {
307 double psq_proton = p_proton_ * p_proton_;
308 double dE_proton = material.dE( MASS[4], path, p_proton_ );
309 psq_proton += dE_proton * ( dE_proton - 2 * sqrt( MASS[4] * MASS[4] + psq_proton ) );
310 if ( psq_proton < 0 ) psq_proton = 0;
311 p_proton_ = sqrt( psq_proton );
312 }
313 }
314
315 double dpt;
316 // cout<<"eloss(): psq = "<<psq<<endl;//wangll
317 if ( psq < 0 ) dpt = 9999;
318 else dpt = v_a[2] * pmag / sqrt( psq );
319 // cout<<"eloss():k: "<<v_a[2]<<" k' "<<dpt<<endl;//wangll
320#ifdef YDEBUG
321 cout << "eloss():k: " << v_a[2] << " k' " << dpt << endl;
322#endif
323 // attempt to take account of energy loss for error matrix
324
325 HepSymMatrix ea = Ea();
326 double r_E_prim = ( E + dE ) / E;
327
328 // 1/ Straggling in the energy loss :
329 if ( strag_ )
330 {
331 double del_E( 0 );
332 if ( l_mass_ == 0 ) { del_E = dE * factor_strag_; }
333 else { del_E = material.del_E( mass_, path, pmag ); }
334
335 ea[2][2] += ( v_a[2] * v_a[2] ) * E * E * del_E * del_E / ( psq * psq );
336 }
337
338 // Effect of the change of curvature (just variables change):
339 double dpt2 = dpt * dpt;
340 double A = dpt * dpt2 / ( v_a_2_2 * v_a[2] ) * r_E_prim;
341 double B = v_a[4] / ( 1 + v_a_4_2 ) * dpt * ( 1 - dpt2 / v_a_2_2 * r_E_prim );
342
343 double ea_2_0 = A * ea[2][0] + B * ea[4][0];
344 double ea_2_1 = A * ea[2][1] + B * ea[4][1];
345 double ea_2_2 = A * A * ea[2][2] + 2 * A * B * ea[2][4] + B * B * ea[4][4];
346 double ea_2_3 = A * ea[2][3] + B * ea[4][3];
347 double ea_2_4 = A * ea[2][4] + B * ea[4][4];
348
349 v_a[2] = dpt;
350 a( v_a );
351
352 ea[2][0] = ea_2_0;
353 // std::cout<<"ea[2][0] is "<<ea[2][0]<<" ea(3,1) is "<<ea(3,1)<<std::endl;
354 ea[2][1] = ea_2_1;
355 // std::cout<<"ea[2][2] is "<<ea[2][2]<<" ea(3,3) is "<<ea(3,3)<<std::endl;
356 ea[2][2] = ea_2_2;
357 ea[2][3] = ea_2_3;
358 ea[2][4] = ea_2_4;
359
360 Ea( ea );
361 // cout<<"eloss():dE: "<<dE<<endl;
362 // cout<<"eloss():A: "<<A<<" B: "<<B<<endl;
363 // cout<<"eloss():ea after: "<<Ea()<<endl;
364 r0_ = fabs( center().perp() - fabs( radius() ) );
365}
static double factor_strag_
factor of energy loss straggling for electron
static int strag_
Flag to take account of energy loss straggling :
const HepPoint3D & center(void) const
returns position of helix center(z = 0.);
const HepSymMatrix & Ea(void) const
returns error matrix.
const HepVector & a(void) const
returns helix parameters.

Referenced by KalFitAlg::filter_fwd_anal(), KalFitAlg::filter_fwd_calib(), KalFitAlg::smoother_anal(), KalFitAlg::smoother_calib(), KalFitElement::updateTrack(), KalFitElement::updateTrack_alreadyfound(), and KalFitElement::updateTrack_rphi().

◆ eloss() [2/3]

void KalFitTrack::eloss ( double path,
const KalFitMaterial & m,
int index )

Calculate total energy lost in material.

◆ eloss() [3/3]

void KalFitTrack::eloss ( double path,
const KalFitMaterial & m,
int index )

Calculate total energy lost in material.

◆ filter() [1/3]

double KalFitTrack::filter ( double v_m,
const CLHEP::HepVector & m_H,
double v_d,
double m_V )

◆ filter() [2/3]

double KalFitTrack::filter ( double v_m,
const CLHEP::HepVector & m_H,
double v_d,
double m_V )

◆ filter() [3/3]

double KalFitTrack::filter ( double v_m,
const CLHEP::HepVector & m_H,
double v_d,
double m_V )

◆ fiTerm() [1/3]

void KalFitTrack::fiTerm ( double fi)

Definition at line 1363 of file KalFitTrack.cxx.

1363{ fiTerm_ = fi; }

Referenced by KalFitAlg::smoother_anal().

◆ fiTerm() [2/3]

void KalFitTrack::fiTerm ( double fi)

◆ fiTerm() [3/3]

void KalFitTrack::fiTerm ( double fi)

◆ getDigi() [1/3]

double KalFitTrack::getDigi ( ) const

◆ getDigi() [2/3]

double KalFitTrack::getDigi ( ) const

◆ getDigi() [3/3]

double KalFitTrack::getDigi ( ) const

◆ getDriftDist() [1/3]

double KalFitTrack::getDriftDist ( KalFitHitMdc & hitmdc,
double drifttime,
int lr ) const

Definition at line 186 of file KalFitTrack2.cxx.

186 {
187 int layerid = hitmdc.wire().layer().layerId();
188 int cellid = MdcID::wire( hitmdc.rechitptr()->getMdcId() );
189 if ( debug_ == 4 ) { std::cout << "the cellid is .." << cellid << std::endl; }
190 double entrangle = hitmdc.rechitptr()->getEntra();
191
192 // std::cout<<" entrangle: "<<entrangle<<std::endl;
193
194 return CalibFunSvc_->driftTimeToDist( drifttime, layerid, cellid, lr, entrangle );
195}
static int wire(const Identifier &id)
Definition MdcID.cxx:52

Referenced by chi2_next(), and chi2_next().

◆ getDriftDist() [2/3]

double KalFitTrack::getDriftDist ( KalFitHitMdc & hitmdc,
double drifttime,
int lr ) const

◆ getDriftDist() [3/3]

double KalFitTrack::getDriftDist ( KalFitHitMdc & hitmdc,
double drifttime,
int lr ) const

◆ getDriftTime() [1/3]

double KalFitTrack::getDriftTime ( KalFitHitMdc & hitmdc,
double toftime ) const

Definition at line 62 of file KalFitTrack2.cxx.

62 {
63 const double vinner = 220.0e8; // cm/s
64 const double vouter = 240.0e8; // cm/s
65
66 int layerid = hitmdc.wire().layer().layerId();
67 double zhit = ( hitmdc.rechitptr() )->getZhit();
68 const KalFitWire* wire = &( hitmdc.wire() );
69 HepPoint3D fPoint = wire->fwd();
70 HepPoint3D bPoint = wire->bck();
71
72 // unit is centimeter
73 double wireLen = ( fPoint - bPoint ).x() * ( fPoint - bPoint ).x() +
74 ( fPoint - bPoint ).y() * ( fPoint - bPoint ).y() +
75 ( fPoint - bPoint ).z() * ( fPoint - bPoint ).z();
76 wireLen = sqrt( wireLen );
77 double wireZLen = fabs( fPoint.z() - bPoint.z() );
78 double tp = 0.;
79 double vp = 0.;
80 // west readout
81 if ( 0 == layerid % 2 )
82 {
83 // inner chamber
84 if ( layerid < 8 ) { vp = vinner; }
85 else { vp = vouter; }
86 tp = wireLen * fabs( zhit - bPoint.z() ) / wireZLen / vp;
87 }
88
89 // east readout
90 if ( 1 == layerid % 2 )
91 {
92 // inner chamber
93 if ( layerid < 8 ) { vp = vinner; }
94 else { vp = vouter; }
95 tp = wireLen * fabs( zhit - fPoint.z() ) / wireZLen / vp;
96 }
97
98 // s to ns
99 tp = 1.0e9 * tp;
100
101 if ( 0 == tprop_ ) tp = 0.;
102
103 // std::cout<<"propogation time: "<<tp<<std::endl;
104
105 int wireid = hitmdc.wire().geoID();
106 double drifttime1( 0. );
107 double drifttime2( 0. );
108 double drifttime3( 0. );
109
110 MdcDigiCol::iterator iter = mdcDigiCol_->begin();
111 for ( ; iter != mdcDigiCol_->end(); iter++ )
112 {
113 if ( ( *iter )->identify() == ( hitmdc.rechitptr() )->getMdcId() ) break;
114 }
115 // double t0 = get_T0();
116 // see the code of wulh in /Mdc/MdcCalibFunSvc/MdcCalibFunSvc/MdcCalibFunSvc.h,
117 // double getT0(int wireid) const { return m_t0[wireid]; }
118
119 // double getTimeWalk(int layid, double Q) const ;
120 double Q = RawDataUtil::MdcCharge( ( *iter )->getChargeChannel() );
121 double timewalk = CalibFunSvc_->getTimeWalk( layerid, Q );
122
123 if ( debug_ == 4 )
124 { std::cout << "CalibFunSvc_->getTimeWalk, timewalk =" << timewalk << std::endl; }
125
126 double timeoffset = CalibFunSvc_->getT0( wireid );
127 if ( debug_ == 4 )
128 { std::cout << "CalibFunSvc_->getT0, timeoffset =" << timeoffset << std::endl; }
129
130 double eventt0 = getT0();
131
132 if ( debug_ == 4 )
133 {
134 std::cout << "the Event T0 we get in the function getDriftTime(...) is " << eventt0
135 << std::endl;
136 }
137
138 // this tdc value come from MdcRecHit assigned by zhangyao
139 double tdctime1 = hitmdc.tdc();
140 double tdctime2( 0. );
141 double tdctime3( 0. );
142
143 if ( debug_ == 4 ) { std::cout << "tdctime1 be here is .." << tdctime1 << std::endl; }
144
145 // this tdc value come from MdcDigiCol time channel
146 // attention, if we use the iter like this: for(MdcDigiCol::iterator iter =
147 // mdcDigiCol_->begin(); iter != mdcDigiCol_->end(); iter++) it cannot pass the gmake , throw
148 // an error !
149 if ( debug_ == 4 )
150 {
151 // std::cout<<"the size of the mdcDigiCol_ is "<<mdcDigiCol_.size()<<std::endl;
152 }
153 // MdcDigiCol::iterator iter = mdcDigiCol_->begin();
154 // for(; iter != mdcDigiCol_->end(); iter++ ) {
155 // if((*iter)->identify() == (hitmdc.rechitptr())->getMdcId()) break;
156 // }
157 if ( debug_ == 4 )
158 {
159 std::cout << "the time channel be here is .." << ( *iter )->getTimeChannel() << std::endl;
160 }
161 tdctime2 = RawDataUtil::MdcTime( ( *iter )->getTimeChannel() );
162 tdctime3 = hitmdc.rechitptr()->getTdc();
163 drifttime1 = tdctime1 - eventt0 - toftime - timewalk - timeoffset - tp;
164 drifttime2 = tdctime2 - eventt0 - toftime - timewalk - timeoffset - tp;
165 drifttime3 = tdctime3 - eventt0 - toftime - timewalk - timeoffset - tp;
166 if ( debug_ == 4 )
167 {
168 std::cout << "we now compare the three kind of tdc , the tdc get from timeChannel() is "
169 << tdctime2 << " the tdc get from KalFitHitMdc is " << tdctime1
170 << " the tdc from MdcRecHit is " << tdctime3 << " the drifttime1 is ..."
171 << drifttime1 << " the drifttime 2 is ..." << drifttime2
172 << " the drifttime3 is ..." << drifttime3 << std::endl;
173 }
174 // return drifttime3;
175 // return drifttime1;
176 if ( drifttime_choice_ == 0 ) return drifttime2;
177 if ( drifttime_choice_ == 1 )
178 // use the driftT caluculated by track-finding
179 return hitmdc.rechitptr()->getDriftT();
180
181 std::cerr << __FILE__ << ":" << __LINE__ << ": should not reach here" << std::endl;
182 exit( 1 );
183}
Double_t x[10]
EvtStreamInputIterator< typename Generator::result_type > iter(Generator gen, int N=0)
double getT0(void) const
static int tprop_
for signal propagation correction
static double MdcTime(int timeChannel)
static double MdcCharge(int chargeChannel)

Referenced by chi2_next(), and chi2_next().

◆ getDriftTime() [2/3]

double KalFitTrack::getDriftTime ( KalFitHitMdc & hitmdc,
double toftime ) const

◆ getDriftTime() [3/3]

double KalFitTrack::getDriftTime ( KalFitHitMdc & hitmdc,
double toftime ) const

◆ getFiTerm() [1/3]

double KalFitTrack::getFiTerm ( void )
inline

◆ getFiTerm() [2/3]

double KalFitTrack::getFiTerm ( void )
inline

Definition at line 155 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

155{ return fiTerm_; }

◆ getFiTerm() [3/3]

double KalFitTrack::getFiTerm ( void )
inline

Definition at line 155 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

155{ return fiTerm_; }

◆ getInitMatrix() [1/3]

HepSymMatrix KalFitTrack::getInitMatrix ( void ) const

Definition at line 37 of file KalFitTrack2.cxx.

37{ return initMatrix_; }

Referenced by KalFitAlg::smoother_calib().

◆ getInitMatrix() [2/3]

HepSymMatrix KalFitTrack::getInitMatrix ( void ) const

◆ getInitMatrix() [3/3]

HepSymMatrix KalFitTrack::getInitMatrix ( void ) const

◆ getPathSM() [1/3]

double KalFitTrack::getPathSM ( void )
inline

◆ getPathSM() [2/3]

double KalFitTrack::getPathSM ( void )
inline

Definition at line 149 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

149{ return pathSM_; }

◆ getPathSM() [3/3]

double KalFitTrack::getPathSM ( void )
inline

Definition at line 149 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

149{ return pathSM_; }

◆ getSigma() [1/6]

double KalFitTrack::getSigma ( int layerId,
double driftDist ) const

Definition at line 3235 of file KalFitTrack.cxx.

3235 {
3236 double sigma1, sigma2, f;
3237 driftDist *= 10; // mm
3238 if ( layerId < 8 )
3239 {
3240 if ( driftDist < 0.5 )
3241 {
3242 sigma1 = 0.112784;
3243 sigma2 = 0.229274;
3244 f = 0.666;
3245 }
3246 else if ( driftDist < 1. )
3247 {
3248 sigma1 = 0.103123;
3249 sigma2 = 0.269797;
3250 f = 0.934;
3251 }
3252 else if ( driftDist < 1.5 )
3253 {
3254 sigma1 = 0.08276;
3255 sigma2 = 0.17493;
3256 f = 0.89;
3257 }
3258 else if ( driftDist < 2. )
3259 {
3260 sigma1 = 0.070109;
3261 sigma2 = 0.149859;
3262 f = 0.89;
3263 }
3264 else if ( driftDist < 2.5 )
3265 {
3266 sigma1 = 0.064453;
3267 sigma2 = 0.130149;
3268 f = 0.886;
3269 }
3270 else if ( driftDist < 3. )
3271 {
3272 sigma1 = 0.062383;
3273 sigma2 = 0.138806;
3274 f = 0.942;
3275 }
3276 else if ( driftDist < 3.5 )
3277 {
3278 sigma1 = 0.061873;
3279 sigma2 = 0.145696;
3280 f = 0.946;
3281 }
3282 else if ( driftDist < 4. )
3283 {
3284 sigma1 = 0.061236;
3285 sigma2 = 0.119584;
3286 f = 0.891;
3287 }
3288 else if ( driftDist < 4.5 )
3289 {
3290 sigma1 = 0.066292;
3291 sigma2 = 0.148426;
3292 f = 0.917;
3293 }
3294 else if ( driftDist < 5. )
3295 {
3296 sigma1 = 0.078074;
3297 sigma2 = 0.188148;
3298 f = 0.911;
3299 }
3300 else if ( driftDist < 5.5 )
3301 {
3302 sigma1 = 0.088657;
3303 sigma2 = 0.27548;
3304 f = 0.838;
3305 }
3306 else
3307 {
3308 sigma1 = 0.093089;
3309 sigma2 = 0.115556;
3310 f = 0.367;
3311 }
3312 }
3313 else
3314 {
3315 if ( driftDist < 0.5 )
3316 {
3317 sigma1 = 0.112433;
3318 sigma2 = 0.327548;
3319 f = 0.645;
3320 }
3321 else if ( driftDist < 1. )
3322 {
3323 sigma1 = 0.096703;
3324 sigma2 = 0.305206;
3325 f = 0.897;
3326 }
3327 else if ( driftDist < 1.5 )
3328 {
3329 sigma1 = 0.082518;
3330 sigma2 = 0.248913;
3331 f = 0.934;
3332 }
3333 else if ( driftDist < 2. )
3334 {
3335 sigma1 = 0.072501;
3336 sigma2 = 0.153868;
3337 f = 0.899;
3338 }
3339 else if ( driftDist < 2.5 )
3340 {
3341 sigma1 = 0.065535;
3342 sigma2 = 0.14246;
3343 f = 0.914;
3344 }
3345 else if ( driftDist < 3. )
3346 {
3347 sigma1 = 0.060497;
3348 sigma2 = 0.126489;
3349 f = 0.918;
3350 }
3351 else if ( driftDist < 3.5 )
3352 {
3353 sigma1 = 0.057643;
3354 sigma2 = 0.112927;
3355 f = 0.892;
3356 }
3357 else if ( driftDist < 4. )
3358 {
3359 sigma1 = 0.055266;
3360 sigma2 = 0.094833;
3361 f = 0.887;
3362 }
3363 else if ( driftDist < 4.5 )
3364 {
3365 sigma1 = 0.056263;
3366 sigma2 = 0.124419;
3367 f = 0.932;
3368 }
3369 else if ( driftDist < 5. )
3370 {
3371 sigma1 = 0.056599;
3372 sigma2 = 0.124248;
3373 f = 0.923;
3374 }
3375 else if ( driftDist < 5.5 )
3376 {
3377 sigma1 = 0.061377;
3378 sigma2 = 0.146147;
3379 f = 0.964;
3380 }
3381 else if ( driftDist < 6. )
3382 {
3383 sigma1 = 0.063978;
3384 sigma2 = 0.150591;
3385 f = 0.942;
3386 }
3387 else if ( driftDist < 6.5 )
3388 {
3389 sigma1 = 0.072951;
3390 sigma2 = 0.15685;
3391 f = 0.913;
3392 }
3393 else if ( driftDist < 7. )
3394 {
3395 sigma1 = 0.085438;
3396 sigma2 = 0.255109;
3397 f = 0.931;
3398 }
3399 else if ( driftDist < 7.5 )
3400 {
3401 sigma1 = 0.101635;
3402 sigma2 = 0.315529;
3403 f = 0.878;
3404 }
3405 else
3406 {
3407 sigma1 = 0.149529;
3408 sigma2 = 0.374697;
3409 f = 0.89;
3410 }
3411 }
3412 double sigmax = sqrt( f * sigma1 * sigma1 + ( 1 - f ) * sigma2 * sigma2 ) * 0.1;
3413 return sigmax; // cm
3414}
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")

Referenced by chi2_next(), and chi2_next().

◆ getSigma() [2/6]

double KalFitTrack::getSigma ( int layerId,
double driftDist ) const

◆ getSigma() [3/6]

double KalFitTrack::getSigma ( int layerId,
double driftDist ) const

◆ getSigma() [4/6]

double KalFitTrack::getSigma ( KalFitHitMdc & hitmdc,
double tanlam,
int lr,
double dist ) const

Definition at line 198 of file KalFitTrack2.cxx.

199 {
200 int layerid = hitmdc.wire().layer().layerId();
201 double entrangle = hitmdc.rechitptr()->getEntra();
202 // double tanlam = hitmdc.rechitptr()->getTanl();
203 double z = hitmdc.rechitptr()->getZhit();
204 double Q = hitmdc.rechitptr()->getAdc();
205 // std::cout<<" the driftdist before getsigma is "<<dist<<" the layer
206 // is"<<layerid<<std::endl; cout<<"layerid, lr, dist, entrangle, tanlam, z , Q =
207 // "<<layerid<<", "<<lr<<", "<<dist<<", "<<entrangle<<",
208 // "<<tanlam<<", "<<z<<", "<<Q<<endl;//wangll
209 double temp = CalibFunSvc_->getSigma( layerid, lr, dist, entrangle, tanlam, z, Q );
210 // std::cout<<" the sigma is "<<temp<<std::endl;
211 return temp;
212}

◆ getSigma() [5/6]

double KalFitTrack::getSigma ( KalFitHitMdc & hitmdc,
double tanlam,
int lr,
double dist ) const

◆ getSigma() [6/6]

double KalFitTrack::getSigma ( KalFitHitMdc & hitmdc,
double tanlam,
int lr,
double dist ) const

◆ getT0() [1/3]

double KalFitTrack::getT0 ( void ) const

Definition at line 47 of file KalFitTrack2.cxx.

47 {
48 //------------------get event start time-----------
49
50 if ( debug_ == 4 )
51 { std::cout << "in function KalFitTrack::getT0 ( ), EventT0_ = " << EventT0_ << std::endl; }
52 return EventT0_;
53}

Referenced by getDriftTime().

◆ getT0() [2/3]

double KalFitTrack::getT0 ( void ) const

◆ getT0() [3/3]

double KalFitTrack::getT0 ( void ) const

◆ getTofSM() [1/3]

double KalFitTrack::getTofSM ( void )
inline

◆ getTofSM() [2/3]

double KalFitTrack::getTofSM ( void )
inline

Definition at line 152 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

152{ return tof2_; }

◆ getTofSM() [3/3]

double KalFitTrack::getTofSM ( void )
inline

Definition at line 152 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

152{ return tof2_; }

◆ HelixSeg() [1/3]

KalFitHelixSeg & KalFitTrack::HelixSeg ( int i)
inline

◆ HelixSeg() [2/3]

KalFitHelixSeg & KalFitTrack::HelixSeg ( int i)
inline

Definition at line 225 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

225{ return HelixSegs_[i]; }

◆ HelixSeg() [3/3]

KalFitHelixSeg & KalFitTrack::HelixSeg ( int i)
inline

Definition at line 225 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

225{ return HelixSegs_[i]; }

◆ HelixSegs() [1/6]

◆ HelixSegs() [2/6]

void KalFitTrack::HelixSegs ( vector< KalFitHelixSeg > & vs)

◆ HelixSegs() [3/6]

void KalFitTrack::HelixSegs ( vector< KalFitHelixSeg > & vs)

◆ HelixSegs() [4/6]

vector< KalFitHelixSeg > & KalFitTrack::HelixSegs ( void )
inline

Definition at line 224 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

224{ return HelixSegs_; }

◆ HelixSegs() [5/6]

vector< KalFitHelixSeg > & KalFitTrack::HelixSegs ( void )
inline

Definition at line 224 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

224{ return HelixSegs_; }

◆ HelixSegs() [6/6]

vector< KalFitHelixSeg > & KalFitTrack::HelixSegs ( void )
inline

Definition at line 224 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

224{ return HelixSegs_; }

◆ HitMdc() [1/3]

◆ HitMdc() [2/3]

KalFitHitMdc & KalFitTrack::HitMdc ( int i)
inline

Definition at line 220 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

220{ return HitsMdc_[i]; }

◆ HitMdc() [3/3]

KalFitHitMdc & KalFitTrack::HitMdc ( int i)
inline

Definition at line 220 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

220{ return HitsMdc_[i]; }

◆ HitsMdc() [1/6]

◆ HitsMdc() [2/6]

void KalFitTrack::HitsMdc ( vector< KalFitHitMdc > & lh)

◆ HitsMdc() [3/6]

void KalFitTrack::HitsMdc ( vector< KalFitHitMdc > & lh)

◆ HitsMdc() [4/6]

vector< KalFitHitMdc > & KalFitTrack::HitsMdc ( void )
inline

Definition at line 219 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

219{ return HitsMdc_; }

Referenced by order_hits().

◆ HitsMdc() [5/6]

vector< KalFitHitMdc > & KalFitTrack::HitsMdc ( void )
inline

Definition at line 219 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

219{ return HitsMdc_; }

◆ HitsMdc() [6/6]

vector< KalFitHitMdc > & KalFitTrack::HitsMdc ( void )
inline

Definition at line 219 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

219{ return HitsMdc_; }

◆ insist() [1/6]

void KalFitTrack::insist ( int t)
inline

Definition at line 199 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

199{ insist_ = t; }

◆ insist() [2/6]

void KalFitTrack::insist ( int t)
inline

Definition at line 199 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

199{ insist_ = t; }

◆ insist() [3/6]

void KalFitTrack::insist ( int t)
inline

Definition at line 199 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

199{ insist_ = t; }

◆ insist() [4/6]

int KalFitTrack::insist ( void ) const
inline

Extractor :

Definition at line 168 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

168{ return insist_; }

◆ insist() [5/6]

int KalFitTrack::insist ( void ) const
inline

Extractor :

Definition at line 168 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

168{ return insist_; }

◆ insist() [6/6]

int KalFitTrack::insist ( void ) const
inline

Extractor :

Definition at line 168 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

168{ return insist_; }

◆ intersect_cylinder() [1/3]

double KalFitTrack::intersect_cylinder ( double r) const

Intersection with different geometry.

Definition at line 127 of file KalFitTrack.cxx.

127 {
128 double m_rad = radius();
129 double l = center().perp();
130
131 double cosPhi = ( m_rad * m_rad + l * l - r * r ) / ( 2 * m_rad * l );
132
133 if ( cosPhi < -1 || cosPhi > 1 ) return 0;
134
135 double dPhi = center().phi() - acos( cosPhi ) - phi0();
136
137 if ( dPhi < -M_PI ) dPhi += 2 * M_PI;
138
139 return dPhi;
140}

Referenced by KalFitCylinder::intersect(), KalFitCylinder::intersect(), intersect_yz_plane(), intersect_zx_plane(), and VertexExtrapolate::KalFitExt().

◆ intersect_cylinder() [2/3]

double KalFitTrack::intersect_cylinder ( double r) const

Intersection with different geometry.

◆ intersect_cylinder() [3/3]

double KalFitTrack::intersect_cylinder ( double r) const

Intersection with different geometry.

◆ intersect_xy_plane() [1/3]

double KalFitTrack::intersect_xy_plane ( double z) const

Definition at line 172 of file KalFitTrack.cxx.

172 {
173 if ( tanl() != 0 && radius() != 0 )
174 return ( pivot().z() + dz() - z ) / ( radius() * tanl() );
175 else return 0;
176}

Referenced by KalFitCylinder::intersect(), and KalFitCylinder::intersect().

◆ intersect_xy_plane() [2/3]

double KalFitTrack::intersect_xy_plane ( double z) const

◆ intersect_xy_plane() [3/3]

double KalFitTrack::intersect_xy_plane ( double z) const

◆ intersect_yz_plane() [1/3]

double KalFitTrack::intersect_yz_plane ( const HepTransform3D & plane,
double x ) const

Definition at line 157 of file KalFitTrack.cxx.

157 {
158 HepPoint3D xc = plane * center();
159 double r = radius();
160 double d = r * r - ( x - xc.x() ) * ( x - xc.x() );
161 if ( d < 0 ) return 0;
162
163 double yy = xc.y();
164 if ( yy > 0 ) yy -= sqrt( d );
165 else yy += sqrt( d );
166
167 double l = ( plane.inverse() * HepPoint3D( x, yy, 0 ) ).perp();
168
169 return intersect_cylinder( l );
170}
double intersect_cylinder(double r) const
Intersection with different geometry.

◆ intersect_yz_plane() [2/3]

double KalFitTrack::intersect_yz_plane ( const HepTransform3D & plane,
double x ) const

◆ intersect_yz_plane() [3/3]

double KalFitTrack::intersect_yz_plane ( const HepTransform3D & plane,
double x ) const

◆ intersect_zx_plane() [1/3]

double KalFitTrack::intersect_zx_plane ( const HepTransform3D & plane,
double y ) const

Definition at line 142 of file KalFitTrack.cxx.

142 {
143 HepPoint3D xc = plane * center();
144 double r = radius();
145 double d = r * r - ( y - xc.y() ) * ( y - xc.y() );
146 if ( d < 0 ) return 0;
147
148 double xx = xc.x();
149 if ( xx > 0 ) xx -= sqrt( d );
150 else xx += sqrt( d );
151
152 double l = ( plane.inverse() * HepPoint3D( xx, y, 0 ) ).perp();
153
154 return intersect_cylinder( l );
155}

◆ intersect_zx_plane() [2/3]

double KalFitTrack::intersect_zx_plane ( const HepTransform3D & plane,
double y ) const

◆ intersect_zx_plane() [3/3]

double KalFitTrack::intersect_zx_plane ( const HepTransform3D & plane,
double y ) const

◆ lead() [1/6]

void KalFitTrack::lead ( int i)
static

Definition at line 1864 of file KalFitTrack.cxx.

1864{ lead_ = i; }

◆ lead() [2/6]

void KalFitTrack::lead ( int i)
static

◆ lead() [3/6]

void KalFitTrack::lead ( int i)
static

◆ lead() [4/6]

int KalFitTrack::lead ( void )
static

Magnetic field map.

Definition at line 1865 of file KalFitTrack.cxx.

1865{ return lead_; }

Referenced by KalFitAlg::initialize().

◆ lead() [5/6]

int KalFitTrack::lead ( void )
static

Magnetic field map.

◆ lead() [6/6]

int KalFitTrack::lead ( void )
static

Magnetic field map.

◆ LR() [1/3]

void KalFitTrack::LR ( int x)
static

Definition at line 1872 of file KalFitTrack.cxx.

1872{ LR_ = x; }

Referenced by KalFitAlg::initialize().

◆ LR() [2/3]

void KalFitTrack::LR ( int x)
static

◆ LR() [3/3]

void KalFitTrack::LR ( int x)
static

◆ mass() [1/6]

double KalFitTrack::mass ( int i)
static

Definition at line 1858 of file KalFitTrack.cxx.

1858{ return MASS[i]; }

◆ mass() [2/6]

double KalFitTrack::mass ( int i)
static

◆ mass() [3/6]

double KalFitTrack::mass ( int i)
static

◆ mass() [4/6]

◆ mass() [5/6]

double KalFitTrack::mass ( void ) const
inline

Definition at line 172 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

172{ return mass_; }

◆ mass() [6/6]

double KalFitTrack::mass ( void ) const
inline

Definition at line 172 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

172{ return mass_; }

◆ mom() [1/3]

CLHEP::Hep3Vector * KalFitTrack::mom ( void )
inline

Definition at line 180 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

180{ return mom_; }

◆ mom() [2/3]

CLHEP::Hep3Vector * KalFitTrack::mom ( void )
inline

Definition at line 180 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

180{ return mom_; }

◆ mom() [3/3]

CLHEP::Hep3Vector * KalFitTrack::mom ( void )
inline

Definition at line 180 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

180{ return mom_; }

◆ ms() [1/3]

void KalFitTrack::ms ( double path,
const KalFitMaterial & m,
int index )

Definition at line 178 of file KalFitTrack.cxx.

178 {
179 HepSymMatrix ea = Ea();
180 // cout<<"ms():path "<<path<<endl;
181 // cout<<"ms():ea before: "<<ea<<endl;
182 double k = kappa();
183 double t = tanl();
184 double t2 = t * t;
185 double pt2 = 1 + t2;
186 double k2 = k * k;
187
188 double pmag = 1 / fabs( k ) * sqrt( pt2 );
189 double dth = material.mcs_angle( mass_, path, pmag );
190 double dth2 = dth * dth;
191 double pt2dth2 = pt2 * dth2;
192
193 ea[1][1] += pt2dth2;
194 ea[2][2] += k2 * t2 * dth2;
195 ea[2][4] += k * t * pt2dth2;
196 ea[4][4] += pt2 * pt2dth2;
197
198 ea[3][3] += dth2 * path * path / 3 / ( 1 + t2 );
199 ea[3][4] += dth2 * path / 2 * sqrt( 1 + t2 );
200 ea[3][2] += dth2 * t / sqrt( 1 + t2 ) * k * path / 2;
201 ea[0][0] += dth2 * path * path / 3;
202 ea[0][1] += dth2 * sqrt( 1 + t2 ) * path / 2;
203
204 Ea( ea );
205 // cout<<"ms():ms angle in this: "<<dth<<endl;
206 // cout<<"ms():ea after: "<<Ea()<<endl;
207 if ( index < 0 )
208 {
209 double x0 = material.X0();
210 if ( x0 ) path_rd_ += path / x0;
211 }
212}

Referenced by KalFitElement::updateTrack(), KalFitElement::updateTrack_alreadyfound(), and KalFitElement::updateTrack_rphi().

◆ ms() [2/3]

void KalFitTrack::ms ( double path,
const KalFitMaterial & m,
int index )

◆ ms() [3/3]

void KalFitTrack::ms ( double path,
const KalFitMaterial & m,
int index )

◆ msgasmdc() [1/3]

void KalFitTrack::msgasmdc ( double path,
int index )

Calculate multiple scattering angle.

Definition at line 214 of file KalFitTrack.cxx.

214 {
215 double k = kappa();
216 double t = tanl();
217 double t2 = t * t;
218 double k2 = k * k;
219
220 double pmag = ( 1 / fabs( k ) ) * sqrt( 1 + t2 );
221 double psq = pmag * pmag;
222 /*
223 double Zprims = 3/2*0.076 + 0.580/9.79*4.99*(4.99+1) +
224 0.041/183.85*74*(74+1) + 0.302/26.98 * 13 * (13+1);
225 double chicc = 0.00039612 * sqrt(Zprims * 0.001168);
226 double dth = 2.557 * chicc * sqrt(path * (mass_*mass_ + psq)) / psq;
227 */
228
229 // std::cout<<" mdcGasRadlen: "<<mdcGasRadlen_<<std::endl;
230 double pathx = path / mdcGasRadlen_;
231 double dth =
232 0.0136 * sqrt( pathx * ( mass_ * mass_ + psq ) ) / psq * ( 1 + 0.038 * log( pathx ) );
233 ;
234 HepSymMatrix ea = Ea();
235#ifdef YDEBUG
236 cout << "msgasmdc():path " << path << " pathx " << pathx << endl;
237 cout << "msgasmdc():dth " << dth << endl;
238 cout << "msgasmdc():ea before: " << ea << endl;
239#endif
240 double dth2 = dth * dth;
241
242 ea[1][1] += ( 1 + t2 ) * dth2;
243 ea[2][2] += k2 * t2 * dth2;
244 ea[2][4] += k * t * ( 1 + t2 ) * dth2;
245 ea[4][4] += ( 1 + t2 ) * ( 1 + t2 ) * dth2;
246
247 // additionnal terms (terms proportional to l and l^2)
248
249 ea[3][3] += dth2 * path * path / 3 / ( 1 + t2 );
250 ea[3][4] += dth2 * path / 2 * sqrt( 1 + t2 );
251 ea[3][2] += dth2 * t / sqrt( 1 + t2 ) * k * path / 2;
252 ea[0][0] += dth2 * path * path / 3;
253 ea[0][1] += dth2 * sqrt( 1 + t2 ) * path / 2;
254
255 Ea( ea );
256#ifdef YDEBUG
257 cout << "msgasmdc():ea after: " << Ea() << endl;
258#endif
259 if ( index < 0 )
260 {
261 pathip_ += path;
262 // RMK : put by hand, take care !!
263 double x0 = mdcGasRadlen_; // for the Mdc gas
264 path_rd_ += path / x0;
265 tof( path );
266#ifdef YDEBUG
267 cout << "ms...pathip..." << pathip_ << endl;
268#endif
269 }
270}

Referenced by KalFitAlg::filter_fwd_anal(), KalFitAlg::filter_fwd_calib(), KalFitAlg::smoother_anal(), and KalFitAlg::smoother_calib().

◆ msgasmdc() [2/3]

void KalFitTrack::msgasmdc ( double path,
int index )

Calculate multiple scattering angle.

◆ msgasmdc() [3/3]

void KalFitTrack::msgasmdc ( double path,
int index )

Calculate multiple scattering angle.

◆ ncath() [1/3]

unsigned int KalFitTrack::ncath ( void ) const
inline

Definition at line 190 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

190{ return ncath_; }

◆ ncath() [2/3]

unsigned int KalFitTrack::ncath ( void ) const
inline

Definition at line 190 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

190{ return ncath_; }

◆ ncath() [3/3]

unsigned int KalFitTrack::ncath ( void ) const
inline

Definition at line 190 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

190{ return ncath_; }

◆ nchits() [1/6]

void KalFitTrack::nchits ( int n)
inline

Definition at line 207 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

207{ nchits_ = n; }
const Int_t n

◆ nchits() [2/6]

void KalFitTrack::nchits ( int n)
inline

Definition at line 207 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

207{ nchits_ = n; }

◆ nchits() [3/6]

void KalFitTrack::nchits ( int n)
inline

Definition at line 207 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

207{ nchits_ = n; }

◆ nchits() [4/6]

unsigned int KalFitTrack::nchits ( void ) const
inline

◆ nchits() [5/6]

unsigned int KalFitTrack::nchits ( void ) const
inline

Definition at line 188 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

188{ return nchits_; }

◆ nchits() [6/6]

unsigned int KalFitTrack::nchits ( void ) const
inline

Definition at line 188 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

188{ return nchits_; }

◆ ndf_back() [1/6]

void KalFitTrack::ndf_back ( int n)
inline

Definition at line 206 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

206{ ndf_back_ = n; }

◆ ndf_back() [2/6]

void KalFitTrack::ndf_back ( int n)
inline

Definition at line 206 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

206{ ndf_back_ = n; }

◆ ndf_back() [3/6]

void KalFitTrack::ndf_back ( int n)
inline

Definition at line 206 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

206{ ndf_back_ = n; }

◆ ndf_back() [4/6]

int KalFitTrack::ndf_back ( void ) const
inline

◆ ndf_back() [5/6]

int KalFitTrack::ndf_back ( void ) const
inline

Definition at line 175 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

175{ return ndf_back_; }

◆ ndf_back() [6/6]

int KalFitTrack::ndf_back ( void ) const
inline

Definition at line 175 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

175{ return ndf_back_; }

◆ nhit_r() [1/3]

int KalFitTrack::nhit_r ( void ) const
inline

Definition at line 193 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

193{ return nhit_r_; }

◆ nhit_r() [2/3]

int KalFitTrack::nhit_r ( void ) const
inline

Definition at line 193 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

193{ return nhit_r_; }

◆ nhit_r() [3/3]

int KalFitTrack::nhit_r ( void ) const
inline

Definition at line 193 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

193{ return nhit_r_; }

◆ nhit_z() [1/3]

int KalFitTrack::nhit_z ( void ) const
inline

Definition at line 194 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

194{ return nhit_z_; }

◆ nhit_z() [2/3]

int KalFitTrack::nhit_z ( void ) const
inline

Definition at line 194 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

194{ return nhit_z_; }

◆ nhit_z() [3/3]

int KalFitTrack::nhit_z ( void ) const
inline

Definition at line 194 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

194{ return nhit_z_; }

◆ nLayerUsed() [1/3]

int KalFitTrack::nLayerUsed ( )
inline

Definition at line 326 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

326 {
327 int n = 0;
328 for ( int i = 0; i < 43; i++ ) n += myLayerUsed[i];
329 return n;
330 }

Referenced by KalFitAlg::fillTds_ip().

◆ nLayerUsed() [2/3]

int KalFitTrack::nLayerUsed ( )
inline

Definition at line 326 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

326 {
327 int n = 0;
328 for ( int i = 0; i < 43; i++ ) n += myLayerUsed[i];
329 return n;
330 }

◆ nLayerUsed() [3/3]

int KalFitTrack::nLayerUsed ( )
inline

Definition at line 326 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

326 {
327 int n = 0;
328 for ( int i = 0; i < 43; i++ ) n += myLayerUsed[i];
329 return n;
330 }

◆ nmass() [1/3]

int KalFitTrack::nmass ( void )
static

Definition at line 1857 of file KalFitTrack.cxx.

1857{ return NMASS; }

Referenced by KalFitAlg::complete_track(), and KalFitAlg::complete_track().

◆ nmass() [2/3]

int KalFitTrack::nmass ( void )
static

◆ nmass() [3/3]

int KalFitTrack::nmass ( void )
static

◆ nster() [1/6]

void KalFitTrack::nster ( int n)
inline

Definition at line 208 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

208{ nster_ = n; }

◆ nster() [2/6]

void KalFitTrack::nster ( int n)
inline

Definition at line 208 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

208{ nster_ = n; }

◆ nster() [3/6]

void KalFitTrack::nster ( int n)
inline

Definition at line 208 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

208{ nster_ = n; }

◆ nster() [4/6]

unsigned int KalFitTrack::nster ( void ) const
inline

◆ nster() [5/6]

unsigned int KalFitTrack::nster ( void ) const
inline

Definition at line 189 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

189{ return nster_; }

◆ nster() [6/6]

unsigned int KalFitTrack::nster ( void ) const
inline

Definition at line 189 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

189{ return nster_; }

◆ number_wirhit() [1/3]

void KalFitTrack::number_wirhit ( void )

Definition at line 449 of file KalFitTrack.cxx.

449 {
450 unsigned int nhit = HitsMdc_.size();
451 int Num[50] = { 0 };
452 for ( unsigned i = 0; i < nhit; i++ ) Num[HitsMdc_[i].wire().layer().layerId()]++;
453 for ( unsigned i = 0; i < nhit; i++ )
454 if ( Num[HitsMdc_[i].wire().layer().layerId()] > 2 ) HitsMdc_[i].chi2( -2 );
455}

◆ number_wirhit() [2/3]

void KalFitTrack::number_wirhit ( void )

◆ number_wirhit() [3/3]

void KalFitTrack::number_wirhit ( void )

◆ numf() [1/6]

void KalFitTrack::numf ( int i)
static

Definition at line 1870 of file KalFitTrack.cxx.

1870{ numf_ = i; }
static int numf_
Flag for treatment of non-uniform mag field.

◆ numf() [2/6]

void KalFitTrack::numf ( int i)
static

◆ numf() [3/6]

void KalFitTrack::numf ( int i)
static

◆ numf() [4/6]

int KalFitTrack::numf ( void )
static

Definition at line 1871 of file KalFitTrack.cxx.

1871{ return numf_; }

Referenced by KalFitAlg::initialize().

◆ numf() [5/6]

int KalFitTrack::numf ( void )
static

◆ numf() [6/6]

int KalFitTrack::numf ( void )
static

◆ order_hits() [1/3]

void KalFitTrack::order_hits ( void )

Definition at line 434 of file KalFitTrack.cxx.

434 {
435 for ( int it = 0; it < HitsMdc().size() - 1; it++ )
436 {
437 if ( HitsMdc_[it].wire().layer().layerId() == HitsMdc_[it + 1].wire().layer().layerId() )
438 {
439 if ( ( kappa() < 0 ) &&
440 ( HitsMdc_[it].wire().localId() > HitsMdc_[it + 1].wire().localId() ) )
441 { std::swap( HitsMdc_[it], HitsMdc_[it + 1] ); }
442 if ( ( kappa() > 0 ) &&
443 ( HitsMdc_[it].wire().localId() < HitsMdc_[it + 1].wire().localId() ) )
444 { std::swap( HitsMdc_[it], HitsMdc_[it + 1] ); }
445 }
446 }
447}

◆ order_hits() [2/3]

void KalFitTrack::order_hits ( void )

◆ order_hits() [3/3]

void KalFitTrack::order_hits ( void )

◆ order_wirhit() [1/3]

void KalFitTrack::order_wirhit ( int index)

Modifier Order the wire hits for mdc track

Definition at line 367 of file KalFitTrack.cxx.

367 {
368 unsigned int nhit = HitsMdc_.size();
369 Helix tracktest = *(Helix*)this;
370 int ind = 0;
371 double* Rad = new double[nhit];
372 double* Ypos = new double[nhit];
373 for ( unsigned i = 0; i < nhit; i++ )
374 {
375
376 HepPoint3D fwd( HitsMdc_[i].wire().fwd() );
377 HepPoint3D bck( HitsMdc_[i].wire().bck() );
378 Hep3Vector wire = (CLHEP::Hep3Vector)fwd - (CLHEP::Hep3Vector)bck;
379
380 // Modification for stereo wires :
381 Helix work = tracktest;
382 work.ignoreErrorMatrix();
383 work.pivot( ( fwd + bck ) * .5 );
384 HepPoint3D x0 = ( work.x( 0 ).z() - bck.z() ) / wire.z() * wire + bck;
385
386 tracktest.pivot( x0 );
387 Rad[ind] = tracktest.x( 0 ).perp();
388 Ypos[ind] = x0.y();
389 ind++;
390 // cout<<"Ypos: "<<Ypos[ind-1]<<endl;
391 }
392
393 // Reorder...
394 if ( index < 0 )
395 for ( int j, k = nhit - 1; k >= 0; k = j )
396 {
397 j = -1;
398 for ( int i = 1; i <= k; i++ )
399 if ( Rad[i - 1] > Rad[i] )
400 {
401 j = i - 1;
402 std::swap( Rad[i], Rad[j] );
403 std::swap( HitsMdc_[i], HitsMdc_[j] );
404 }
405 }
406 if ( index > 0 )
407 for ( int j, k = nhit - 1; k >= 0; k = j )
408 {
409 j = -1;
410 for ( int i = 1; i <= k; i++ )
411 if ( Rad[i - 1] < Rad[i] )
412 {
413 j = i - 1;
414 std::swap( Rad[i], Rad[j] );
415 std::swap( HitsMdc_[i], HitsMdc_[j] );
416 }
417 }
418 if ( index == 0 )
419 for ( int j, k = nhit - 1; k >= 0; k = j )
420 {
421 j = -1;
422 for ( int i = 1; i <= k; i++ )
423 if ( Ypos[i - 1] > Ypos[i] )
424 {
425 j = i - 1;
426 std::swap( Ypos[i], Ypos[j] );
427 std::swap( HitsMdc_[i], HitsMdc_[j] );
428 }
429 }
430 delete[] Rad;
431 delete[] Ypos;
432}

Referenced by KalFitAlg::kalman_fitting_anal(), KalFitAlg::kalman_fitting_calib(), KalFitAlg::kalman_fitting_csmalign(), and KalFitAlg::kalman_fitting_MdcxReco_Csmc_Sew().

◆ order_wirhit() [2/3]

void KalFitTrack::order_wirhit ( int index)

Modifier Order the wire hits for mdc track

◆ order_wirhit() [3/3]

void KalFitTrack::order_wirhit ( int index)

Modifier Order the wire hits for mdc track

◆ p_kaon() [1/6]

void KalFitTrack::p_kaon ( double pl)
inline

Definition at line 202 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

202{ p_kaon_ = pl; }

◆ p_kaon() [2/6]

void KalFitTrack::p_kaon ( double pl)
inline

Definition at line 202 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

202{ p_kaon_ = pl; }

◆ p_kaon() [3/6]

void KalFitTrack::p_kaon ( double pl)
inline

Definition at line 202 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

202{ p_kaon_ = pl; }

◆ p_kaon() [4/6]

double KalFitTrack::p_kaon ( void ) const
inline

◆ p_kaon() [5/6]

double KalFitTrack::p_kaon ( void ) const
inline

Definition at line 184 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

184{ return p_kaon_; }

◆ p_kaon() [6/6]

double KalFitTrack::p_kaon ( void ) const
inline

Definition at line 184 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

184{ return p_kaon_; }

◆ p_proton() [1/6]

void KalFitTrack::p_proton ( double pl)
inline

Definition at line 203 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

203{ p_proton_ = pl; }

◆ p_proton() [2/6]

void KalFitTrack::p_proton ( double pl)
inline

Definition at line 203 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

203{ p_proton_ = pl; }

◆ p_proton() [3/6]

void KalFitTrack::p_proton ( double pl)
inline

Definition at line 203 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

203{ p_proton_ = pl; }

◆ p_proton() [4/6]

double KalFitTrack::p_proton ( void ) const
inline

◆ p_proton() [5/6]

double KalFitTrack::p_proton ( void ) const
inline

Definition at line 185 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

185{ return p_proton_; }

◆ p_proton() [6/6]

double KalFitTrack::p_proton ( void ) const
inline

Definition at line 185 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

185{ return p_proton_; }

◆ pat1() [1/3]

int KalFitTrack::pat1 ( void ) const
inline

Definition at line 191 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

191{ return pat1_; }

◆ pat1() [2/3]

int KalFitTrack::pat1 ( void ) const
inline

Definition at line 191 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

191{ return pat1_; }

◆ pat1() [3/3]

int KalFitTrack::pat1 ( void ) const
inline

Definition at line 191 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

191{ return pat1_; }

◆ pat2() [1/3]

int KalFitTrack::pat2 ( void ) const
inline

Definition at line 192 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

192{ return pat2_; }

◆ pat2() [2/3]

int KalFitTrack::pat2 ( void ) const
inline

Definition at line 192 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

192{ return pat2_; }

◆ pat2() [3/3]

int KalFitTrack::pat2 ( void ) const
inline

Definition at line 192 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

192{ return pat2_; }

◆ path_ab() [1/3]

double KalFitTrack::path_ab ( void ) const
inline

Definition at line 178 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

178{ return path_ab_; }

◆ path_ab() [2/3]

double KalFitTrack::path_ab ( void ) const
inline

Definition at line 178 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

178{ return path_ab_; }

◆ path_ab() [3/3]

double KalFitTrack::path_ab ( void ) const
inline

Definition at line 178 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

178{ return path_ab_; }

◆ path_add() [1/3]

void KalFitTrack::path_add ( double path)

Update the path length estimation.

Definition at line 1354 of file KalFitTrack.cxx.

1354 {
1355 pathip_ += path;
1356 tof( path );
1357}

◆ path_add() [2/3]

void KalFitTrack::path_add ( double path)

Update the path length estimation.

◆ path_add() [3/3]

void KalFitTrack::path_add ( double path)

Update the path length estimation.

◆ path_rd() [1/3]

double KalFitTrack::path_rd ( void ) const
inline

Definition at line 177 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

177{ return path_rd_; }

◆ path_rd() [2/3]

double KalFitTrack::path_rd ( void ) const
inline

Definition at line 177 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

177{ return path_rd_; }

◆ path_rd() [3/3]

double KalFitTrack::path_rd ( void ) const
inline

Definition at line 177 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

177{ return path_rd_; }

◆ pathip() [1/6]

void KalFitTrack::pathip ( double pl)
inline

Definition at line 201 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

201{ pathip_ = pl; }

◆ pathip() [2/6]

void KalFitTrack::pathip ( double pl)
inline

Definition at line 201 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

201{ pathip_ = pl; }

◆ pathip() [3/6]

void KalFitTrack::pathip ( double pl)
inline

Definition at line 201 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

201{ pathip_ = pl; }

◆ pathip() [4/6]

double KalFitTrack::pathip ( void ) const
inline

◆ pathip() [5/6]

double KalFitTrack::pathip ( void ) const
inline

Definition at line 176 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

176{ return pathip_; }

◆ pathip() [6/6]

double KalFitTrack::pathip ( void ) const
inline

Definition at line 176 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

176{ return pathip_; }

◆ PathL() [1/3]

double KalFitTrack::PathL ( int layer)

Function to calculate the path length in the layer.

◆ PathL() [2/3]

double KalFitTrack::PathL ( int layer)

Function to calculate the path length in the layer.

◆ PathL() [3/3]

double KalFitTrack::PathL ( int layer)

Function to calculate the path length in the layer.

◆ pathl() [1/3]

double * KalFitTrack::pathl ( void )
inline

◆ pathl() [2/3]

double * KalFitTrack::pathl ( void )
inline

Definition at line 179 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

179{ return PathL_; }

◆ pathl() [3/3]

double * KalFitTrack::pathl ( void )
inline

Definition at line 179 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

179{ return PathL_; }

◆ pivot_forMdc() [1/3]

const HepPoint3D & KalFitTrack::pivot_forMdc ( void ) const
inline

Definition at line 141 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

141{ return pivot_forMdc_; }

◆ pivot_forMdc() [2/3]

const HepPoint3D & KalFitTrack::pivot_forMdc ( void ) const
inline

Definition at line 141 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

141{ return pivot_forMdc_; }

◆ pivot_forMdc() [3/3]

const HepPoint3D & KalFitTrack::pivot_forMdc ( void ) const
inline

Definition at line 141 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

141{ return pivot_forMdc_; }

◆ pivot_last() [1/3]

const HepPoint3D & KalFitTrack::pivot_last ( void ) const
inline

returns helix parameters

Definition at line 137 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

137{ return pivot_last_; }

◆ pivot_last() [2/3]

const HepPoint3D & KalFitTrack::pivot_last ( void ) const
inline

returns helix parameters

Definition at line 137 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

137{ return pivot_last_; }

◆ pivot_last() [3/3]

const HepPoint3D & KalFitTrack::pivot_last ( void ) const
inline

returns helix parameters

Definition at line 137 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

137{ return pivot_last_; }

◆ pivot_numf() [1/6]

const HepPoint3D & KalFitTrack::pivot_numf ( const HepPoint3D & newPivot)

Sets pivot position in a given mag field.

Definition at line 1428 of file KalFitTrack.cxx.

1428 {
1429
1430 int nstep( 1 );
1431 HepPoint3D delta_x( ( newPivot - pivot() ).x() / double( inner_steps_ ),
1432 ( newPivot - pivot() ).y() / double( inner_steps_ ),
1433 ( newPivot - pivot() ).z() / double( inner_steps_ ) );
1434 int i = 1;
1435
1436 while ( i <= inner_steps_ )
1437 {
1438 HepPoint3D nextPivot( pivot() + delta_x );
1439 double xnp( nextPivot.x() ), ynp( nextPivot.y() ), znp( nextPivot.z() );
1440 HepSymMatrix Ea_now = Ea();
1441 HepPoint3D piv( pivot() );
1442 double xp( piv.x() ), yp( piv.y() ), zp( piv.z() );
1443 double dr = a()[0];
1444 double phi0 = a()[1];
1445 double kappa = a()[2];
1446 double dz = a()[3];
1447 double tanl = a()[4];
1448 double m_rad( 0 );
1449 if ( numfcor_ == 1 ) m_rad = radius_numf();
1450 else m_rad = radius();
1451 double rdr = dr + m_rad;
1452 double phi = fmod( phi0 + M_PI4, M_PI2 );
1453 double csf0 = cos( phi );
1454 double snf0 = ( 1. - csf0 ) * ( 1. + csf0 );
1455 snf0 = sqrt( ( snf0 > 0. ) ? snf0 : 0. );
1456 if ( phi > M_PI ) snf0 = -snf0;
1457
1458 double xc = xp + rdr * csf0;
1459 double yc = yp + rdr * snf0;
1460 double csf = ( xc - xnp ) / m_rad;
1461 double snf = ( yc - ynp ) / m_rad;
1462 double anrm = sqrt( csf * csf + snf * snf );
1463 csf /= anrm;
1464 snf /= anrm;
1465 phi = atan2( snf, csf );
1466 double phid = fmod( phi - phi0 + M_PI8, M_PI2 );
1467 if ( phid > M_PI ) phid = phid - M_PI2;
1468 double drp = ( xp + dr * csf0 + m_rad * ( csf0 - csf ) - xnp ) * csf +
1469 ( yp + dr * snf0 + m_rad * ( snf0 - snf ) - ynp ) * snf;
1470 double dzp = zp + dz - m_rad * tanl * phid - znp;
1471
1472 HepVector ap( 5 );
1473 ap[0] = drp;
1474 ap[1] = fmod( phi + M_PI4, M_PI2 );
1475 ap[2] = kappa;
1476 ap[3] = dzp;
1477 ap[4] = tanl;
1478
1479 // Modification due to non uniform magnetic field :
1480 if ( numf_ > 10 )
1481 {
1482
1483 Hep3Vector x1( xp + dr * csf0, yp + dr * snf0, zp + dz );
1484 double csf0p = cos( ap[1] );
1485 double snf0p = ( 1. - csf0p ) * ( 1. + csf0p );
1486 snf0p = sqrt( ( snf0p > 0. ) ? snf0p : 0. );
1487 if ( ap[1] > M_PI ) snf0p = -snf0p;
1488
1489 Hep3Vector x2( xnp + drp * csf0p, ynp + drp * snf0p, znp + dzp );
1490 Hep3Vector dist( ( x1 - x2 ).x() / 100.0, ( x1 - x2 ).y() / 100.0,
1491 ( x1 - x2 ).z() / 100.0 );
1492 HepPoint3D middlebis( ( x1.x() + x2.x() ) / 2, ( x1.y() + x2.y() ) / 2,
1493 ( x1.z() + x2.z() ) / 2 );
1494 HepVector3D field;
1495 MFSvc_->fieldVector( 10. * middlebis, field );
1496 field = 1000. * field;
1497 Hep3Vector dB( field.x(), field.y(), ( field.z() - 0.1 * Bznom_ ) );
1498 if ( field.z() )
1499 {
1500 double akappa( fabs( kappa ) );
1501 double sign = kappa / akappa;
1502 HepVector dp( 3 );
1503 dp = 0.299792458 * sign * dB.cross( dist );
1504 HepVector dhp( 3 );
1505 dhp[0] = -akappa * ( dp[0] * csf0p + dp[1] * snf0p );
1506 dhp[1] = kappa * akappa * ( dp[0] * snf0p - dp[1] * csf0p );
1507 dhp[2] = dp[2] * akappa + dhp[1] * tanl / kappa;
1508 if ( numfcor_ == 0 ) { ap[1] += dhp[0]; }
1509 ap[2] += dhp[1];
1510 ap[4] += dhp[2];
1511 }
1512 }
1513 HepMatrix m_del = delApDelA( ap );
1514 Ea_now.assign( m_del * Ea_now * m_del.T() );
1515 pivot( nextPivot );
1516 a( ap );
1517 Ea( Ea_now );
1518 i++;
1519 }
1520 return newPivot;
1521}
HepGeom::Vector3D< double > HepVector3D
const double M_PI8
double radius_numf(void) const
Estimation of the radius in a given mag field.
HepMatrix delApDelA(const HepVector &ap) const
double dr(void) const
returns an element of parameters.

Referenced by KalFitAlg::filter_fwd_anal(), KalFitAlg::filter_fwd_calib(), KalFitAlg::smoother_anal(), KalFitAlg::smoother_calib(), KalFitElement::updateTrack(), KalFitElement::updateTrack_alreadyfound(), and KalFitElement::updateTrack_rphi().

◆ pivot_numf() [2/6]

const HepPoint3D & KalFitTrack::pivot_numf ( const HepPoint3D & newPivot)

Sets pivot position in a given mag field.

◆ pivot_numf() [3/6]

const HepPoint3D & KalFitTrack::pivot_numf ( const HepPoint3D & newPivot)

Sets pivot position in a given mag field.

◆ pivot_numf() [4/6]

const HepPoint3D & KalFitTrack::pivot_numf ( const HepPoint3D & newPivot,
double & pathl )

Definition at line 1523 of file KalFitTrack.cxx.

1523 {
1524
1525 Helix tracktest = *(Helix*)this;
1526 tracktest.ignoreErrorMatrix();
1527 double tl = a()[4];
1528 double th = 90.0 - 180.0 * M_1_PI * atan( tl );
1529 /*
1530 int nstep(1);
1531 if (steplev_ == 1)
1532 nstep = 3;
1533 else if (steplev_ == 2 && (th > 140 || th <45))
1534 if ((pivot()-newPivot).mag()<3.)
1535 nstep = 3;
1536 else
1537 nstep = 6;
1538 */
1539 Hep3Vector delta_x( ( newPivot - pivot() ).x() / double( outer_steps_ ),
1540 ( newPivot - pivot() ).y() / double( outer_steps_ ),
1541 ( newPivot - pivot() ).z() / double( outer_steps_ ) );
1542 int i = 1;
1543
1544 while ( i <= outer_steps_ )
1545 {
1546 HepPoint3D nextPivot( pivot() + delta_x );
1547 double xnp( nextPivot.x() ), ynp( nextPivot.y() ), znp( nextPivot.z() );
1548
1549 HepSymMatrix Ea_now = Ea();
1550 HepPoint3D piv( pivot() );
1551 double xp( piv.x() ), yp( piv.y() ), zp( piv.z() );
1552
1553 double dr = a()[0];
1554 double phi0 = a()[1];
1555 double kappa = a()[2];
1556 double dz = a()[3];
1557 double tanl = a()[4];
1558
1559 double m_rad( 0 );
1560 m_rad = radius();
1561
1562 double rdr = dr + m_rad;
1563 double phi = fmod( phi0 + M_PI4, M_PI2 );
1564 double csf0 = cos( phi );
1565 double snf0 = ( 1. - csf0 ) * ( 1. + csf0 );
1566 snf0 = sqrt( ( snf0 > 0. ) ? snf0 : 0. );
1567 if ( phi > M_PI ) snf0 = -snf0;
1568
1569 double xc = xp + rdr * csf0;
1570 double yc = yp + rdr * snf0;
1571 double csf = ( xc - xnp ) / m_rad;
1572 double snf = ( yc - ynp ) / m_rad;
1573 double anrm = sqrt( csf * csf + snf * snf );
1574 csf /= anrm;
1575 snf /= anrm;
1576 phi = atan2( snf, csf );
1577 double phid = fmod( phi - phi0 + M_PI8, M_PI2 );
1578 if ( phid > M_PI ) phid = phid - M_PI2;
1579 double drp = ( xp + dr * csf0 + m_rad * ( csf0 - csf ) - xnp ) * csf +
1580 ( yp + dr * snf0 + m_rad * ( snf0 - snf ) - ynp ) * snf;
1581 double dzp = zp + dz - m_rad * tanl * phid - znp;
1582
1583 HepVector ap( 5 );
1584 ap[0] = drp;
1585 ap[1] = fmod( phi + M_PI4, M_PI2 );
1586 ap[2] = kappa;
1587 ap[3] = dzp;
1588 ap[4] = tanl;
1589
1590 // std::cout<<" numf_: "<<numf_<<std::endl;
1591
1592 // Modification due to non uniform magnetic field :
1593 if ( numf_ > 10 )
1594 {
1595
1596 Hep3Vector x1( xp + dr * csf0, yp + dr * snf0, zp + dz );
1597
1598 double csf0p = cos( ap[1] );
1599 double snf0p = ( 1. - csf0p ) * ( 1. + csf0p );
1600 snf0p = sqrt( ( snf0p > 0. ) ? snf0p : 0. );
1601 if ( ap[1] > M_PI ) snf0p = -snf0p;
1602
1603 Hep3Vector x2( xnp + drp * csf0p, ynp + drp * snf0p, znp + dzp );
1604
1605 Hep3Vector dist( ( x1 - x2 ).x() / 100.0, ( x1 - x2 ).y() / 100.0,
1606 ( x1 - x2 ).z() / 100.0 );
1607
1608 HepPoint3D middlebis( ( x1.x() + x2.x() ) / 2, ( x1.y() + x2.y() ) / 2,
1609 ( x1.z() + x2.z() ) / 2 );
1610
1611 HepVector3D field;
1612 MFSvc_->fieldVector( 10. * middlebis, field );
1613 field = 1000. * field;
1614
1615 // std::cout<<"B field: "<<field<<std::endl;
1616 Hep3Vector dB( field.x(), field.y(), ( field.z() - 0.1 * Bznom_ ) );
1617
1618 // std::cout<<" dB: "<<dB<<std::endl;
1619
1620 if ( field.z() )
1621 {
1622 double akappa( fabs( kappa ) );
1623 double sign = kappa / akappa;
1624 HepVector dp( 3 );
1625 dp = 0.299792458 * sign * dB.cross( dist );
1626
1627 // std::cout<<"dp: "<<dp<<std::endl;
1628
1629 HepVector dhp( 3 );
1630 dhp[0] = -akappa * ( dp[0] * csf0p + dp[1] * snf0p );
1631 dhp[1] = kappa * akappa * ( dp[0] * snf0p - dp[1] * csf0p );
1632 dhp[2] = dp[2] * akappa + dhp[1] * tanl / kappa;
1633
1634 // std::cout<<"dhp: "<<dhp<<std::endl;
1635
1636 ap[1] += dhp[0];
1637 ap[2] += dhp[1];
1638 ap[4] += dhp[2];
1639 }
1640 }
1641 HepMatrix m_del = delApDelA( ap );
1642 Ea_now.assign( m_del * Ea_now * m_del.T() );
1643 pivot( nextPivot );
1644 a( ap );
1645 Ea( Ea_now );
1646 i++;
1647
1648 // std::cout<<" a: "<<a()<<std::endl;
1649 }
1650
1651 // Estimation of the path length :
1652 double tanl_0( tracktest.a()[4] );
1653 double phi0_0( tracktest.a()[1] );
1654 double radius_0( tracktest.radius() );
1655 tracktest.pivot( newPivot );
1656
1657 double phi0_1 = tracktest.a()[1];
1658 if ( fabs( phi0_1 - phi0_0 ) > M_PI )
1659 {
1660 if ( phi0_1 > phi0_0 ) phi0_1 -= 2 * M_PI;
1661 else phi0_0 -= 2 * M_PI;
1662 }
1663 if ( phi0_1 == phi0_0 ) phi0_1 = phi0_0 + 1.e-10;
1664 pathl = fabs( radius_0 * ( phi0_1 - phi0_0 ) * sqrt( 1 + tanl_0 * tanl_0 ) );
1665 return newPivot;
1666}

◆ pivot_numf() [5/6]

const HepPoint3D & KalFitTrack::pivot_numf ( const HepPoint3D & newPivot,
double & pathl )

◆ pivot_numf() [6/6]

const HepPoint3D & KalFitTrack::pivot_numf ( const HepPoint3D & newPivot,
double & pathl )

◆ point_last() [1/6]

void KalFitTrack::point_last ( const HepPoint3D & point)
inline

set and give out the last point of the track

Definition at line 133 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

133{ point_last_ = point; }

Referenced by KalFitAlg::fillTds_back(), KalFitAlg::fillTds_back(), KalFitAlg::fillTds_back(), and KalFitAlg::smoother_anal().

◆ point_last() [2/6]

void KalFitTrack::point_last ( const HepPoint3D & point)
inline

set and give out the last point of the track

Definition at line 133 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

133{ point_last_ = point; }

◆ point_last() [3/6]

void KalFitTrack::point_last ( const HepPoint3D & point)
inline

set and give out the last point of the track

Definition at line 133 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

133{ point_last_ = point; }

◆ point_last() [4/6]

const HepPoint3D & KalFitTrack::point_last ( void )
inline

Definition at line 134 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

134{ return point_last_; }

◆ point_last() [5/6]

const HepPoint3D & KalFitTrack::point_last ( void )
inline

Definition at line 134 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

134{ return point_last_; }

◆ point_last() [6/6]

const HepPoint3D & KalFitTrack::point_last ( void )
inline

Definition at line 134 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

134{ return point_last_; }

◆ r0() [1/3]

double KalFitTrack::r0 ( void ) const
inline

Definition at line 171 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

171{ return r0_; }

◆ r0() [2/3]

double KalFitTrack::r0 ( void ) const
inline

Definition at line 171 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

171{ return r0_; }

◆ r0() [3/3]

double KalFitTrack::r0 ( void ) const
inline

Definition at line 171 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

171{ return r0_; }

◆ r_max() [1/3]

double KalFitTrack::r_max ( void ) const
inline

Definition at line 187 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

187{ return r_max_; }

◆ r_max() [2/3]

double KalFitTrack::r_max ( void ) const
inline

Definition at line 187 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

187{ return r_max_; }

◆ r_max() [3/3]

double KalFitTrack::r_max ( void ) const
inline

Definition at line 187 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

187{ return r_max_; }

◆ radius_numf() [1/3]

double KalFitTrack::radius_numf ( void ) const

Estimation of the radius in a given mag field.

Definition at line 1393 of file KalFitTrack.cxx.

1393 {
1394
1395 double Bz( Bznom_ );
1396 // std::cout<<"Bz: "<<Bz<<std::endl;
1397 if ( numf_ > 10 )
1398 {
1399 double dr = a()[0];
1400 double phi0 = a()[1];
1401 double dz = a()[3];
1402 double phi = fmod( phi0 + M_PI4, M_PI2 );
1403 double csf0 = cos( phi );
1404 double snf0 = ( 1. - csf0 ) * ( 1. + csf0 );
1405 snf0 = sqrt( ( snf0 > 0. ) ? snf0 : 0. );
1406 if ( phi > M_PI ) snf0 = -snf0;
1407 // XYZPoint
1408 HepPoint3D x0( ( pivot().x() + dr * csf0 ), ( pivot().y() + dr * snf0 ),
1409 ( pivot().z() + dz ) );
1410
1411 // XYZVector b;
1412 HepVector3D b;
1413
1414 // std::cout<<"b: "<<b<<std::endl;
1415
1416 MFSvc_->fieldVector( 10. * x0, b );
1417
1418 // std::cout<<"b: "<<b<<std::endl;
1419
1420 b = 10000. * b;
1421 Bz = b.z();
1422 }
1423 if ( Bz == 0 ) Bz = Bznom_;
1424 double ALPHA_loc = 10000. / 2.99792458 / Bz;
1425 return ALPHA_loc / a()[2];
1426}

Referenced by KalFitAlg::fillTds_back(), KalFitAlg::fillTds_back(), KalFitAlg::fillTds_back(), and pivot_numf().

◆ radius_numf() [2/3]

double KalFitTrack::radius_numf ( void ) const

Estimation of the radius in a given mag field.

◆ radius_numf() [3/3]

double KalFitTrack::radius_numf ( void ) const

Estimation of the radius in a given mag field.

◆ resetLayerUsed() [1/3]

void KalFitTrack::resetLayerUsed ( )
inline

Definition at line 332 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

332 {
333 for ( int i = 0; i < 43; i++ ) myLayerUsed[i] = 0;
334 }

◆ resetLayerUsed() [2/3]

void KalFitTrack::resetLayerUsed ( )
inline

Definition at line 332 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

332 {
333 for ( int i = 0; i < 43; i++ ) myLayerUsed[i] = 0;
334 }

◆ resetLayerUsed() [3/3]

void KalFitTrack::resetLayerUsed ( )
inline

Definition at line 332 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

332 {
333 for ( int i = 0; i < 43; i++ ) myLayerUsed[i] = 0;
334 }

◆ resol() [1/6]

void KalFitTrack::resol ( int i)
static

Definition at line 1868 of file KalFitTrack.cxx.

1868{ resolflag_ = i; }

◆ resol() [2/6]

void KalFitTrack::resol ( int i)
static

◆ resol() [3/6]

void KalFitTrack::resol ( int i)
static

◆ resol() [4/6]

int KalFitTrack::resol ( void )
static

Definition at line 1869 of file KalFitTrack.cxx.

1869{ return resolflag_; }

Referenced by KalFitAlg::initialize().

◆ resol() [5/6]

int KalFitTrack::resol ( void )
static

◆ resol() [6/6]

int KalFitTrack::resol ( void )
static

◆ setIMdcGeomSvc() [1/3]

void KalFitTrack::setIMdcGeomSvc ( IMdcGeomSvc * igeomsvc)
static

Definition at line 228 of file KalFitTrack2.cxx.

228{ iGeomSvc_ = igeomsvc; }

Referenced by KalFitAlg::setGeomSvc_init().

◆ setIMdcGeomSvc() [2/3]

void KalFitTrack::setIMdcGeomSvc ( IMdcGeomSvc * igeomsvc)
static

◆ setIMdcGeomSvc() [3/3]

void KalFitTrack::setIMdcGeomSvc ( IMdcGeomSvc * igeomsvc)
static

◆ setInitMatrix() [1/3]

void KalFitTrack::setInitMatrix ( HepSymMatrix m)
static

◆ setInitMatrix() [2/3]

void KalFitTrack::setInitMatrix ( HepSymMatrix m)
static

◆ setInitMatrix() [3/3]

void KalFitTrack::setInitMatrix ( HepSymMatrix m)
static

◆ setMagneticFieldSvc() [1/3]

void KalFitTrack::setMagneticFieldSvc ( IBesMagFieldSvc * mf)
static

Definition at line 218 of file KalFitTrack2.cxx.

218 {
219 /*ISvcLocator* svcLocator = Gaudi::svcLocator();
220 StatusCode sc = svcLocator->service("MagneticFieldSvc",MFSvc_);
221 if (sc.isFailure()){
222 std::cout << "Could not load MagneticFieldSvc!" << std::endl;
223 }*/
224 MFSvc_ = mf;
225 if ( MFSvc_ == 0 ) cout << "KalFitTrack2:: Could not load MagneticFieldSvc!" << endl;
226}

Referenced by KalFitAlg::initialize().

◆ setMagneticFieldSvc() [2/3]

void KalFitTrack::setMagneticFieldSvc ( IBesMagFieldSvc * )
static

◆ setMagneticFieldSvc() [3/3]

void KalFitTrack::setMagneticFieldSvc ( IBesMagFieldSvc * )
static

◆ setMdcCalibFunSvc() [1/3]

void KalFitTrack::setMdcCalibFunSvc ( const IMdcCalibFunSvc * calibsvc)
static

Definition at line 214 of file KalFitTrack2.cxx.

214 {
215 CalibFunSvc_ = calibsvc;
216}

Referenced by KalFitAlg::setCalibSvc_init().

◆ setMdcCalibFunSvc() [2/3]

void KalFitTrack::setMdcCalibFunSvc ( const IMdcCalibFunSvc * calibsvc)
static

◆ setMdcCalibFunSvc() [3/3]

void KalFitTrack::setMdcCalibFunSvc ( const IMdcCalibFunSvc * calibsvc)
static

◆ setMdcDigiCol() [1/3]

void KalFitTrack::setMdcDigiCol ( MdcDigiCol * digicol)
static

Definition at line 230 of file KalFitTrack2.cxx.

230{ mdcDigiCol_ = digicol; }

Referenced by KalFitAlg::execute().

◆ setMdcDigiCol() [2/3]

void KalFitTrack::setMdcDigiCol ( MdcDigiCol * digicol)
static

◆ setMdcDigiCol() [3/3]

void KalFitTrack::setMdcDigiCol ( MdcDigiCol * digicol)
static

◆ setT0() [1/3]

void KalFitTrack::setT0 ( double t0)
static

Definition at line 39 of file KalFitTrack2.cxx.

39 {
40 //------------------set event start time-----------
41
42 EventT0_ = eventstart;
43 if ( debug_ == 4 )
44 { std::cout << "in function KalFitTrack::setT0(...), EventT0_ = " << EventT0_ << std::endl; }
45}

Referenced by KalFitAlg::execute().

◆ setT0() [2/3]

void KalFitTrack::setT0 ( double t0)
static

◆ setT0() [3/3]

void KalFitTrack::setT0 ( double t0)
static

◆ smoother_Mdc() [1/6]

double KalFitTrack::smoother_Mdc ( KalFitHelixSeg & seg,
CLHEP::Hep3Vector & meas,
int & flg,
int csmflag )

Kalman smoother for Mdc.

Referenced by KalFitAlg::smoother_anal(), and KalFitAlg::smoother_calib().

◆ smoother_Mdc() [2/6]

double KalFitTrack::smoother_Mdc ( KalFitHelixSeg & seg,
CLHEP::Hep3Vector & meas,
int & flg,
int csmflag )

Kalman smoother for Mdc.

◆ smoother_Mdc() [3/6]

double KalFitTrack::smoother_Mdc ( KalFitHelixSeg & seg,
CLHEP::Hep3Vector & meas,
int & flg,
int csmflag )

Kalman smoother for Mdc.

◆ smoother_Mdc() [4/6]

double KalFitTrack::smoother_Mdc ( KalFitHitMdc & HitMdc,
CLHEP::Hep3Vector & meas,
KalFitHelixSeg & seg,
double & dchi2,
int csmflag )

◆ smoother_Mdc() [5/6]

double KalFitTrack::smoother_Mdc ( KalFitHitMdc & HitMdc,
CLHEP::Hep3Vector & meas,
KalFitHelixSeg & seg,
double & dchi2,
int csmflag )

◆ smoother_Mdc() [6/6]

double KalFitTrack::smoother_Mdc ( KalFitHitMdc & HitMdc,
CLHEP::Hep3Vector & meas,
KalFitHelixSeg & seg,
double & dchi2,
int csmflag )

◆ smoother_Mdc_csmalign() [1/3]

double KalFitTrack::smoother_Mdc_csmalign ( KalFitHelixSeg & seg,
CLHEP::Hep3Vector & meas,
int & flg,
int csmflag )

◆ smoother_Mdc_csmalign() [2/3]

double KalFitTrack::smoother_Mdc_csmalign ( KalFitHelixSeg & seg,
CLHEP::Hep3Vector & meas,
int & flg,
int csmflag )

◆ smoother_Mdc_csmalign() [3/3]

double KalFitTrack::smoother_Mdc_csmalign ( KalFitHelixSeg & seg,
CLHEP::Hep3Vector & meas,
int & flg,
int csmflag )

◆ tof() [1/6]

void KalFitTrack::tof ( double path)

Update the tof estimation.

Definition at line 1365 of file KalFitTrack.cxx.

1365 {
1366 double light_speed( 29.9792458 ); // light speed in cm/nsec
1367 double t = tanl();
1368 double pmag( sqrt( 1.0 + t * t ) / kappa() );
1369 if ( pmag != 0 )
1370 {
1371 double mass_over_p( mass_ / pmag );
1372 double beta( 1.0 / sqrt( 1.0 + mass_over_p * mass_over_p ) );
1373 tof_ += path / ( light_speed * beta );
1374 }
1375
1376 if ( tofall_ )
1377 {
1378 if ( p_kaon_ > 0 )
1379 {
1380 double massk_over_p( MASS[3] / p_kaon_ );
1381 double beta_kaon( 1.0 / sqrt( 1.0 + massk_over_p * massk_over_p ) );
1382 tof_kaon_ += path / ( light_speed * beta_kaon );
1383 }
1384 if ( p_proton_ > 0 )
1385 {
1386 double massp_over_p( MASS[4] / p_proton_ );
1387 double beta_proton( 1.0 / sqrt( 1.0 + massp_over_p * massp_over_p ) );
1388 tof_proton_ += path / ( light_speed * beta_proton );
1389 }
1390 }
1391}

Referenced by KalFitAlg::fillTds_back(), KalFitAlg::fillTds_back(), and KalFitAlg::fillTds_back().

◆ tof() [2/6]

void KalFitTrack::tof ( double path)

Update the tof estimation.

◆ tof() [3/6]

void KalFitTrack::tof ( double path)

Update the tof estimation.

◆ tof() [4/6]

double KalFitTrack::tof ( void ) const
inline

Definition at line 181 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

181{ return tof_; }

Referenced by msgasmdc(), and path_add().

◆ tof() [5/6]

double KalFitTrack::tof ( void ) const
inline

Definition at line 181 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

181{ return tof_; }

◆ tof() [6/6]

double KalFitTrack::tof ( void ) const
inline

Definition at line 181 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

181{ return tof_; }

◆ tof_kaon() [1/3]

double KalFitTrack::tof_kaon ( void ) const
inline

◆ tof_kaon() [2/3]

double KalFitTrack::tof_kaon ( void ) const
inline

Definition at line 182 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

182{ return tof_kaon_; }

◆ tof_kaon() [3/3]

double KalFitTrack::tof_kaon ( void ) const
inline

Definition at line 182 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

182{ return tof_kaon_; }

◆ tof_proton() [1/3]

double KalFitTrack::tof_proton ( void ) const
inline

◆ tof_proton() [2/3]

double KalFitTrack::tof_proton ( void ) const
inline

Definition at line 183 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

183{ return tof_proton_; }

◆ tof_proton() [3/3]

double KalFitTrack::tof_proton ( void ) const
inline

Definition at line 183 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

183{ return tof_proton_; }

◆ trasan_id() [1/6]

void KalFitTrack::trasan_id ( int t)
inline

Definition at line 198 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

198{ trasan_id_ = t; }

◆ trasan_id() [2/6]

void KalFitTrack::trasan_id ( int t)
inline

Definition at line 198 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

198{ trasan_id_ = t; }

◆ trasan_id() [3/6]

void KalFitTrack::trasan_id ( int t)
inline

Definition at line 198 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

198{ trasan_id_ = t; }

◆ trasan_id() [4/6]

int KalFitTrack::trasan_id ( void ) const
inline

Definition at line 170 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

170{ return trasan_id_; }

◆ trasan_id() [5/6]

int KalFitTrack::trasan_id ( void ) const
inline

Definition at line 170 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

170{ return trasan_id_; }

◆ trasan_id() [6/6]

int KalFitTrack::trasan_id ( void ) const
inline

Definition at line 170 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

170{ return trasan_id_; }

◆ type() [1/6]

void KalFitTrack::type ( int t)
inline

Reinitialize (modificator).

Definition at line 197 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

197{ type_ = t; }

◆ type() [2/6]

void KalFitTrack::type ( int t)
inline

Reinitialize (modificator).

Definition at line 197 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

197{ type_ = t; }

◆ type() [3/6]

void KalFitTrack::type ( int t)
inline

Reinitialize (modificator).

Definition at line 197 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

197{ type_ = t; }

◆ type() [4/6]

◆ type() [5/6]

int KalFitTrack::type ( void ) const
inline

Definition at line 169 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

169{ return type_; }

◆ type() [6/6]

int KalFitTrack::type ( void ) const
inline

Definition at line 169 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

169{ return type_; }

◆ update_bit() [1/3]

void KalFitTrack::update_bit ( int i)

Definition at line 1843 of file KalFitTrack.cxx.

1843 {
1844 int j( 0 );
1845 if ( i < 31 )
1846 {
1847 j = (int)pow( 2., i );
1848 if ( !( pat1_ & j ) ) pat1_ = pat1_ | j;
1849 }
1850 else if ( i < 50 )
1851 {
1852 j = (int)pow( 2., ( i - 31 ) );
1853 if ( !( pat2_ & j ) ) pat2_ = pat2_ | j;
1854 }
1855}

◆ update_bit() [2/3]

void KalFitTrack::update_bit ( int i)

◆ update_bit() [3/3]

void KalFitTrack::update_bit ( int i)

◆ update_forMdc() [1/3]

void KalFitTrack::update_forMdc ( void )

Definition at line 121 of file KalFitTrack.cxx.

121 {
122 pivot_forMdc_ = pivot();
123 a_forMdc_ = a();
124 Ea_forMdc_ = Ea();
125}

Referenced by KalFitAlg::kalman_fitting_anal(), KalFitAlg::kalman_fitting_calib(), KalFitAlg::kalman_fitting_csmalign(), and KalFitAlg::kalman_fitting_MdcxReco_Csmc_Sew().

◆ update_forMdc() [2/3]

void KalFitTrack::update_forMdc ( void )

◆ update_forMdc() [3/3]

void KalFitTrack::update_forMdc ( void )

◆ update_hits() [1/6]

double KalFitTrack::update_hits ( KalFitHelixSeg & HelixSeg,
int inext,
CLHEP::Hep3Vector & meas,
int way,
double & dchi2,
int csmflag )

◆ update_hits() [2/6]

double KalFitTrack::update_hits ( KalFitHelixSeg & HelixSeg,
int inext,
CLHEP::Hep3Vector & meas,
int way,
double & dchi2,
int csmflag )

◆ update_hits() [3/6]

double KalFitTrack::update_hits ( KalFitHelixSeg & HelixSeg,
int inext,
CLHEP::Hep3Vector & meas,
int way,
double & dchi2,
int csmflag )

◆ update_hits() [4/6]

double KalFitTrack::update_hits ( KalFitHitMdc & HitMdc,
int inext,
CLHEP::Hep3Vector & meas,
int way,
double & dchi2,
double & dtrack,
double & dtracknew,
double & dtdc,
int csmflag )

Include the Mdc wire hits.

Referenced by KalFitAlg::filter_fwd_anal(), and KalFitAlg::filter_fwd_calib().

◆ update_hits() [5/6]

double KalFitTrack::update_hits ( KalFitHitMdc & HitMdc,
int inext,
CLHEP::Hep3Vector & meas,
int way,
double & dchi2,
double & dtrack,
double & dtracknew,
double & dtdc,
int csmflag )

Include the Mdc wire hits.

◆ update_hits() [6/6]

double KalFitTrack::update_hits ( KalFitHitMdc & HitMdc,
int inext,
CLHEP::Hep3Vector & meas,
int way,
double & dchi2,
double & dtrack,
double & dtracknew,
double & dtdc,
int csmflag )

Include the Mdc wire hits.

◆ update_hits_csmalign() [1/3]

double KalFitTrack::update_hits_csmalign ( KalFitHelixSeg & HelixSeg,
int inext,
CLHEP::Hep3Vector & meas,
int way,
double & dchi2,
int csmflag )

◆ update_hits_csmalign() [2/3]

double KalFitTrack::update_hits_csmalign ( KalFitHelixSeg & HelixSeg,
int inext,
CLHEP::Hep3Vector & meas,
int way,
double & dchi2,
int csmflag )

◆ update_hits_csmalign() [3/3]

double KalFitTrack::update_hits_csmalign ( KalFitHelixSeg & HelixSeg,
int inext,
CLHEP::Hep3Vector & meas,
int way,
double & dchi2,
int csmflag )

◆ update_last() [1/3]

void KalFitTrack::update_last ( void )

Record the current parameters as ..._last information :

Definition at line 115 of file KalFitTrack.cxx.

115 {
116 pivot_last_ = pivot();
117 a_last_ = a();
118 Ea_last_ = Ea();
119}

◆ update_last() [2/3]

void KalFitTrack::update_last ( void )

Record the current parameters as ..._last information :

◆ update_last() [3/3]

void KalFitTrack::update_last ( void )

Record the current parameters as ..._last information :

◆ useLayer() [1/3]

void KalFitTrack::useLayer ( int iLay)
inline

Definition at line 336 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

336 {
337 if ( iLay >= 0 && iLay <= 43 ) myLayerUsed[iLay] = 1;
338 }

◆ useLayer() [2/3]

void KalFitTrack::useLayer ( int iLay)
inline

Definition at line 336 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitTrack.h.

336 {
337 if ( iLay >= 0 && iLay <= 43 ) myLayerUsed[iLay] = 1;
338 }

◆ useLayer() [3/3]

void KalFitTrack::useLayer ( int iLay)
inline

Definition at line 336 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitTrack.h.

336 {
337 if ( iLay >= 0 && iLay <= 43 ) myLayerUsed[iLay] = 1;
338 }

Member Data Documentation

◆ Bznom_

◆ chi2_hitf_

double KalFitTrack::chi2_hitf_ = 1000
static

Cut chi2 for each hit.

Definition at line 272 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

Referenced by KalFitAlg::initialize(), and setMdcDigiCol().

◆ chi2_hits_

double KalFitTrack::chi2_hits_ = 1000
static

◆ chi2mdc_hit2_

double KalFitTrack::chi2mdc_hit2_
static

◆ dchi2cutf_anal

double KalFitTrack::dchi2cutf_anal = { 0. }
static

◆ dchi2cutf_calib

double KalFitTrack::dchi2cutf_calib = { 0. }
static

◆ dchi2cuts_anal

double KalFitTrack::dchi2cuts_anal = { 0. }
static

◆ dchi2cuts_calib

double KalFitTrack::dchi2cuts_calib = { 0. }
static

◆ debug_

int KalFitTrack::debug_ = 0
static

◆ drifttime_choice_

int KalFitTrack::drifttime_choice_ = 0
static

◆ factor_strag_

double KalFitTrack::factor_strag_ = 0.4
static

factor of energy loss straggling for electron

Definition at line 300 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

Referenced by eloss(), KalFitAlg::initialize(), and setMdcDigiCol().

◆ inner_steps_

int KalFitTrack::inner_steps_ = 3
static

◆ LR_

◆ mdcGasRadlen_

double KalFitTrack::mdcGasRadlen_ = 0.
static

◆ nmdc_hit2_

int KalFitTrack::nmdc_hit2_ = 500
static

Cut chi2 for each hit.

Definition at line 302 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

Referenced by KalFitAlg::initialize(), and setMdcDigiCol().

◆ numf_

int KalFitTrack::numf_ = 0
static

Flag for treatment of non-uniform mag field.

Definition at line 274 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

Referenced by KalFitAlg::initialize(), numf(), numf(), pivot_numf(), pivot_numf(), radius_numf(), and setMdcDigiCol().

◆ numfcor_

int KalFitTrack::numfcor_ = 1
static

◆ outer_steps_

int KalFitTrack::outer_steps_ = 3
static

◆ resolflag_

int KalFitTrack::resolflag_ = 0
static

wire resoltion flag

Definition at line 306 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

Referenced by chi2_next(), chi2_next(), resol(), resol(), and setMdcDigiCol().

◆ steplev_

int KalFitTrack::steplev_ = 0
static

Level of precision (= 1 : 5steps for all tracks; = 2: 5 steps for very non uniform part)

Definition at line 292 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

Referenced by KalFitAlg::initialize(), and setMdcDigiCol().

◆ strag_

int KalFitTrack::strag_ = 1
static

Flag to take account of energy loss straggling :

Definition at line 298 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

Referenced by eloss(), KalFitAlg::initialize(), and setMdcDigiCol().

◆ Tof_correc_

int KalFitTrack::Tof_correc_ = 1
static

◆ tofall_

◆ tprop_

int KalFitTrack::tprop_ = 1
static

for signal propagation correction

Definition at line 267 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitTrack.h.

Referenced by getDriftTime(), KalFitAlg::initialize(), and setMdcDigiCol().


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