16#include "GaudiKernel/IInterface.h"
17#include "GaudiKernel/Kernel.h"
18#include "GaudiKernel/Service.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
46using CLHEP::HepVector;
47using CLHEP::HepSymMatrix;
48using CLHEP::Hep3Vector;
49using CLHEP::HepLorentzVector;
60 const HepSymMatrix &
Ea);
88 double *
x(
double dPhi,
double p[3])
const;
94 Hep3Vector
direction(
double dPhi = 0.)
const;
97 Hep3Vector
momentum(
double dPhi = 0.)
const;
100 Hep3Vector
momentum(
double dPhi, HepSymMatrix & Em)
const;
103 HepLorentzVector
momentum(
double dPhi,
double mass)
const;
106 HepLorentzVector
momentum(
double dPhi,
double mass, HepSymMatrix & Em)
const;
113 double dr(
void)
const;
114 double phi0(
void)
const;
115 double kappa(
void)
const;
116 double dz(
void)
const;
117 double tanl(
void)
const;
118 double curv(
void)
const;
121 double alpha(
void)
const;
124 const HepVector & a(
void)
const;
127 const HepSymMatrix & Ea(
void)
const;
130 double cosTheta(
void)
const{
return m_a[4]/sqrt(1.+ m_a[4]*m_a[4]); }
133 const HepVector & a(
const HepVector & newA);
136 const HepSymMatrix & Ea(
const HepSymMatrix & newdA);
144 const HepSymMatrix & Ea);
147 void ignoreErrorMatrix(
void);
150 double bFieldZ(
double);
151 double bFieldZ(
void)
const;
158 HepMatrix delApDelA(
const HepVector & ap)
const;
159 HepMatrix delXDelA(
double phi)
const;
160 HepMatrix delMDelA(
double phi)
const;
161 HepMatrix del4MDelA(
double phi,
double mass)
const;
162 HepMatrix del4MXDelA(
double phi,
double mass)
const;
163 double IntersectCylinder(
double r)
const;
165 double flightArc(
double r)
const;
176 void updateCache(
void);
201#ifdef Helix_NO_INLINE
205#define Helix_INLINE_DEFINE_HERE
208#ifdef Helix_INLINE_DEFINE_HERE
**********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
NTuple::Item< double > m_pt
HepGeom::Point3D< double > HepPoint3D
CLHEP::Hep3Vector Vector3
CLHEP::HepSymMatrix SymMatrix
CLHEP::HepLorentzVector VectorL
CLHEP::HepLorentzVector Vector4
double cosPhi0(void) const
IMagneticFieldSvc * m_pmgnIMF
double dPhi(HepPoint3D &hit) const
double sinPhi0(void) const
const HepPoint3D & center(void) const
returns position of helix center(z = 0.);
double cosTheta(void) const
static const double ConstantAlpha
Constant alpha for uniform field.
const HepSymMatrix & Ea(void) const
returns error matrix.
HepPoint3D x(double dPhi=0.) const
returns position after rotating angle dPhi in phi direction.
double bFieldZ(void) 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.
Hep3Vector direction(double dPhi=0.) const
returns direction vector after rotating angle dPhi in phi direction.