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 "MagneticFieldSvc/IBesMagFieldSvc.h"
21#include "CLHEP/Matrix/SymMatrix.h"
22#include "CLHEP/Matrix/Vector.h"
24#include "CLHEP/Vector/ThreeVector.h"
26#include "CLHEP/Vector/LorentzVector.h"
28#include "CLHEP/Geometry/Point3D.h"
31#ifndef ENABLE_BACKWARDS_COMPATIBILITY
60 double radius(
void )
const;
64 double*
x(
double dPhi,
double p[3] )
const;
67 HepPoint3D x(
double dPhi, HepSymMatrix& Ex )
const;
70 Hep3Vector
direction(
double dPhi = 0. )
const;
73 Hep3Vector
momentum(
double dPhi = 0. )
const;
76 Hep3Vector
momentum(
double dPhi, HepSymMatrix& Em )
const;
79 HepLorentzVector
momentum(
double dPhi,
double mass )
const;
82 HepLorentzVector
momentum(
double dPhi,
double mass, HepSymMatrix& Em )
const;
86 HepSymMatrix& Emx )
const;
91 double dr(
void )
const;
92 double phi0(
void )
const;
93 double kappa(
void )
const;
94 double dz(
void )
const;
95 double tanl(
void )
const;
96 double curv(
void )
const;
101 const HepVector&
a(
void )
const;
104 const HepSymMatrix&
Ea(
void )
const;
108 const HepVector&
a(
const HepVector& newA );
111 const HepSymMatrix&
Ea(
const HepSymMatrix& newdA );
133 HepMatrix
delApDelA(
const HepVector& ap )
const;
134 HepMatrix
delXDelA(
double phi )
const;
135 HepMatrix
delMDelA(
double phi )
const;
143 void updateCache(
void );
168#ifdef Ext_Helix_NO_INLINE
172# define Ext_Helix_INLINE_DEFINE_HERE
175#ifdef Ext_Helix_INLINE_DEFINE_HERE
207inline const HepSymMatrix&
Ext_Helix::Ea(
const HepSymMatrix& i ) {
return m_Ea = i; }
211 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
HepGeom::Point3D< double > HepPoint3D
void ignoreErrorMatrix(void)
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
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.
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.