14#ifndef Ext_Helix_FLAG_
15#define Ext_Helix_FLAG_
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
44 const HepSymMatrix &
Ea);
70 double *
x(
double dPhi,
double p[3])
const;
76 Hep3Vector
direction(
double dPhi = 0.)
const;
79 Hep3Vector
momentum(
double dPhi = 0.)
const;
82 Hep3Vector
momentum(
double dPhi, HepSymMatrix & Em)
const;
85 HepLorentzVector
momentum(
double dPhi,
double mass)
const;
88 HepLorentzVector
momentum(
double dPhi,
double mass, HepSymMatrix & Em)
const;
95 double dr(
void)
const;
96 double phi0(
void)
const;
97 double kappa(
void)
const;
98 double dz(
void)
const;
99 double tanl(
void)
const;
100 double curv(
void)
const;
105 const HepVector &
a(
void)
const;
108 const HepSymMatrix &
Ea(
void)
const;
112 const HepVector &
a(
const HepVector & newA);
115 const HepSymMatrix &
Ea(
const HepSymMatrix & newdA);
123 const HepSymMatrix &
Ea);
137 HepMatrix
delApDelA(
const HepVector & ap)
const;
138 HepMatrix
delXDelA(
double phi)
const;
139 HepMatrix
delMDelA(
double phi)
const;
147 void updateCache(
void);
172#ifdef Ext_Helix_NO_INLINE
176#define Ext_Helix_INLINE_DEFINE_HERE
179#ifdef Ext_Helix_INLINE_DEFINE_HERE
271 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
void ignoreErrorMatrix(void)
unsets error matrix. Error calculations will be ignored after this function call until an error matri...
double cosPhi0(void) const
const HepPoint3D & center(void) const
returns position of helix center(z = 0.);
HepMatrix del4MDelA(double phi, double mass) const
HepMatrix delMDelA(double phi) const
void set(const HepPoint3D &pivot, const HepVector &a, const HepSymMatrix &Ea)
sets helix pivot position, parameters, and error matrix.
HepMatrix del4MXDelA(double phi, double mass) const
double radius(void) const
returns radious of helix.
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.
virtual ~Ext_Helix()
Destructor.
double sinPhi0(void) 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.
const HepPoint3D & pivot(void) const
returns pivot position.
HepMatrix delXDelA(double phi) const
double bFieldZ(void) const
Ext_Helix & operator=(const Ext_Helix &)
Copy operator.
const HepVector & a(void) const
returns helix parameters.
HepMatrix delApDelA(const HepVector &ap) const