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;
82 Hep3Vector
momentum(
double dPhi, HepSymMatrix & Em)
const;
88 HepLorentzVector
momentum(
double dPhi,
double mass, HepSymMatrix & Em)
const;
95 double dr(
void)
const;
98 double dz(
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);
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
double bFieldZ(double)
sets/returns z componet of the magnetic field.
void ignoreErrorMatrix(void)
unsets error matrix. Error calculations will be ignored after this function call until an error matri...
Ext_Helix(const HepPoint3D &pivot, const HepVector &a)
Constructor without error matrix.
double * x(double dPhi, double p[3]) const
double cosPhi0(void) const
const HepPoint3D & center(void) const
returns position of helix center(z = 0.);
HepLorentzVector momentum(double dPhi, double mass) const
returns 4momentum vector after rotating angle dPhi in phi direction.
HepMatrix del4MDelA(double phi, double mass) const
Hep3Vector momentum(double dPhi, HepSymMatrix &Em) const
returns momentum vector after rotating angle dPhi in phi direction.
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.
const HepSymMatrix & Ea(void) const
returns error matrix.
HepPoint3D x(double dPhi=0.) const
returns position 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.
static const double ConstantAlpha
Constant alpha for uniform field.
double sinPhi0(void) const
HepPoint3D x(double dPhi, HepSymMatrix &Ex) const
returns position and convariance matrix(Ex) after rotation.
virtual ~Ext_Helix()
Destructor.
const HepSymMatrix & Ea(const HepSymMatrix &newdA)
sets helix paramters and error matrix.
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.
HepLorentzVector momentum(double dPhi, double mass, HepSymMatrix &Em) const
returns 4momentum vector after rotating angle dPhi in phi direction.
const HepPoint3D & pivot(void) const
returns pivot position.
HepMatrix delXDelA(double phi) const
const HepVector & a(const HepVector &newA)
sets helix parameters.
double bFieldZ(void) const
Hep3Vector momentum(double dPhi=0.) const
returns momentum vector after rotating angle dPhi in phi direction.
Ext_Helix & operator=(const Ext_Helix &)
Copy operator.
const HepVector & a(void) const
returns helix parameters.
Ext_Helix(const HepPoint3D &position, const Hep3Vector &momentum, double charge)
Constructor with position, momentum, and charge.
const HepPoint3D & pivot(const HepPoint3D &newPivot)
sets pivot position.
HepMatrix delApDelA(const HepVector &ap) const
Ext_Helix(const HepPoint3D &pivot, const HepVector &a, const HepSymMatrix &Ea)
Constructor with pivot, helix parameter a, and its error matrix.