14#ifndef VertexFit_VFHelix_FLAG_
15#define VertexFit_VFHelix_FLAG_
17#include "CLHEP/Matrix/Matrix.h"
18#include "CLHEP/Matrix/Vector.h"
19#include "CLHEP/Matrix/SymMatrix.h"
20using CLHEP::HepMatrix;
21using CLHEP::HepVector;
22using CLHEP::HepSymMatrix;
23#ifndef CLHEP_THREEVECTOR_H
24#include "CLHEP/Vector/ThreeVector.h"
25using CLHEP::Hep3Vector;
27#include "CLHEP/Vector/LorentzVector.h"
28using CLHEP::HepLorentzVector;
29#ifndef CLHEP_POINT3D_H
30#include "CLHEP/Geometry/Point3D.h"
31#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;
144 void updateCache(
void);
169#ifdef VFHelix_NO_INLINE
173#define VFHelix_INLINE_DEFINE_HERE
176#ifdef VFHelix_INLINE_DEFINE_HERE
268 m_alpha = 10000. / 2.99792458 / m_bField;
HepGeom::Point3D< double > HepPoint3D
**********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
double sinPhi0(void) const
static const double ConstantAlpha
Constant alpha for uniform field.
virtual ~VFHelix()
Destructor.
HepMatrix del4MDelA(double phi, double mass) const
const HepPoint3D & pivot(void) const
returns pivot position.
double radius(void) const
returns radious of helix.
HepPoint3D x(double dPhi=0.) const
returns position after rotating angle dPhi in phi direction.
HepMatrix delApDelA(const HepVector &ap) const
double dr(void) const
returns an element of parameters.
double bFieldZ(void) const
HepMatrix delMDelA(double phi) const
HepMatrix del4MXDelA(double phi, double mass) const
HepMatrix delXDelA(double phi) const
Hep3Vector direction(double dPhi=0.) const
returns direction vector after rotating angle dPhi in phi direction.
void ignoreErrorMatrix(void)
unsets error matrix. Error calculations will be ignored after this function call until an error matri...
void set(const HepPoint3D &pivot, const HepVector &a, const HepSymMatrix &Ea)
sets helix pivot position, parameters, and error matrix.
VFHelix & operator=(const VFHelix &)
Copy operator.
VFHelix(const HepPoint3D &pivot, const HepVector &a, const HepSymMatrix &Ea)
Constructor with pivot, helix parameter a, and its error matrix.
const HepSymMatrix & Ea(void) const
returns error matrix.
double cosPhi0(void) const
const HepVector & a(void) const
returns helix parameters.
const HepPoint3D & center(void) const
returns position of helix center(z = 0.);