15#include "KalFitAlg/KalFitHitMdc.h"
16#include "GaudiKernel/IInterface.h"
17#include "GaudiKernel/Kernel.h"
18#include "GaudiKernel/Service.h"
19#include "MagneticField/IMagneticFieldSvc.h"
20#include "MagneticField/MagneticFieldSvc.h"
22#include "CLHEP/Matrix/Vector.h"
23#include "CLHEP/Matrix/SymMatrix.h"
25#include "CLHEP/Vector/ThreeVector.h"
27#include "CLHEP/Vector/LorentzVector.h"
29#include "CLHEP/Geometry/Point3D.h"
32#ifndef ENABLE_BACKWARDS_COMPATIBILITY
47 const HepSymMatrix &
Ea);
73 double *
x(
double dPhi,
double p[3])
const;
85 Hep3Vector
momentum(
double dPhi, HepSymMatrix & Em)
const;
91 HepLorentzVector
momentum(
double dPhi,
double mass, HepSymMatrix & Em)
const;
98 double dr(
void)
const;
101 double dz(
void)
const;
108 const HepVector &
a(
void)
const;
111 const HepSymMatrix &
Ea(
void)
const;
120 const HepVector &
a(
const HepVector & newA);
123 const HepSymMatrix &
Ea(
const HepSymMatrix & newdA);
131 const HepSymMatrix &
Ea);
158 void updateCache(
void);
183#ifdef Helix_NO_INLINE
187#define Helix_INLINE_DEFINE_HERE
190#ifdef Helix_INLINE_DEFINE_HERE
282 m_alpha = 10000. / 2.99792458 / m_bField;
**********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
Description of a Hit in Mdc.
const HepPoint3D & pivot(const HepPoint3D &newPivot)
sets pivot position.
const HepPoint3D & pivot(void) const
returns pivot position.
double cosPhi0(void) const
double sinPhi0(void) const
double bFieldZ(void) const
HepMatrix delApDelA(const HepVector &ap) const
const HepPoint3D & center(void) const
returns position of helix center(z = 0.);
HepMatrix delXDelA(double phi) const
const HepPoint3D & center(void) const
returns position of helix center(z = 0.);
double cosPhi0(void) const
const HepVector & a(void) const
returns helix parameters.
Hep3Vector momentum(double dPhi=0.) const
returns momentum vector after rotating angle dPhi in phi direction.
Helix & operator=(const Helix &)
Copy operator.
Hep3Vector momentum(double dPhi, HepSymMatrix &Em) const
returns momentum vector after rotating angle dPhi in phi direction.
Hep3Vector direction(double dPhi=0.) const
returns direction vector after rotating angle dPhi in phi direction.
double sinPhi0(void) const
Helix(const HepPoint3D &pivot, const HepVector &a)
Constructor without error matrix.
HepLorentzVector momentum(double dPhi, double mass, HepPoint3D &x, HepSymMatrix &Emx) const
returns 4momentum vector after rotating angle dPhi in phi direction.
HepMatrix del4MDelA(double phi, double mass) const
HepPoint3D x(double dPhi=0.) const
returns position after rotating angle dPhi in phi direction.
double bFieldZ(double)
sets/returns z componet of the magnetic field.
virtual ~Helix()
Destructor.
void ignoreErrorMatrix(void)
unsets error matrix. Error calculations will be ignored after this function call until an error matri...
Helix(const HepPoint3D &position, const Hep3Vector &momentum, double charge)
Constructor with position, momentum, and charge.
Helix(const HepPoint3D &pivot, const HepVector &a, const HepSymMatrix &Ea)
Constructor with pivot, helix parameter a, and its error matrix.
double * x(double dPhi, double p[3]) const
const HepSymMatrix & Ea(const HepSymMatrix &newdA)
sets helix paramters and error matrix.
const HepSymMatrix & Ea(void) const
returns error matrix.
static const double ConstantAlpha
Constant alpha for uniform field.
const HepSymMatrix & Ea(void) const
returns error matrix.
void set(const HepPoint3D &pivot, const HepVector &a, const HepSymMatrix &Ea)
sets helix pivot position, parameters, and error matrix.
HepPoint3D x(double dPhi, HepSymMatrix &Ex) const
returns position and convariance matrix(Ex) after rotation.
double bFieldZ(void) const
HepLorentzVector momentum(double dPhi, double mass, HepSymMatrix &Em) const
returns 4momentum vector after rotating angle dPhi in phi direction.
const HepVector & a(const HepVector &newA)
sets helix parameters.
HepLorentzVector momentum(double dPhi, double mass) const
returns 4momentum vector after rotating angle dPhi in phi direction.
HepMatrix del4MXDelA(double phi, double mass) const
double radius(void) const
returns radious of helix.
double dr(void) const
returns an element of parameters.
const HepVector & a(void) const
returns helix parameters.
const HepPoint3D & pivot(void) const
returns pivot position.
double approach(HepPoint3D pfwd, HepPoint3D pbwd, bool doSagCorrection) const
Hep3Vector direction(double dPhi=0.) const
returns direction vector after rotating angle dPhi in phi direction.
double dr(void) const
returns an element of parameters.
HepMatrix delMDelA(double phi) const
double approach(KalFitHitMdc &hit, bool doSagCorrection) const
double radius(void) const
returns radious of helix.