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;
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);
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;
**********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 sinPhi0(void) const
HepMatrix del4MDelA(double phi, double mass) const
const HepPoint3D & pivot(void) const
returns pivot position.
double radius(void) const
returns radious of helix.
const HepSymMatrix & Ea(const HepSymMatrix &newdA)
sets helix paramters and error matrix.
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
HepPoint3D x(double dPhi, HepSymMatrix &Ex) const
returns position and convariance matrix(Ex) after rotation.
double bFieldZ(double)
sets/returns z componet of the magnetic field.
virtual ~VFHelix()
Destructor.
const HepPoint3D & pivot(const HepPoint3D &newPivot)
sets pivot position.
HepMatrix delMDelA(double phi) const
HepMatrix del4MXDelA(double phi, double mass) const
Hep3Vector momentum(double dPhi=0.) const
returns momentum vector 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.
HepMatrix delXDelA(double phi) const
HepLorentzVector momentum(double dPhi, double mass) const
returns 4momentum vector after rotating angle dPhi in phi direction.
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...
HepLorentzVector momentum(double dPhi, double mass, HepSymMatrix &Em) const
returns 4momentum vector after rotating angle dPhi in phi direction.
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.
static const double ConstantAlpha
Constant alpha for uniform field.
const HepSymMatrix & Ea(void) const
returns error matrix.
Hep3Vector momentum(double dPhi, HepSymMatrix &Em) const
returns momentum vector after rotating angle dPhi in phi direction.
VFHelix(const HepPoint3D &pivot, const HepVector &a)
Constructor without error matrix.
double cosPhi0(void) const
const HepVector & a(void) const
returns helix parameters.
VFHelix(const HepPoint3D &position, const Hep3Vector &momentum, double charge)
Constructor with position, momentum, and charge.
const HepVector & a(const HepVector &newA)
sets helix parameters.
const HepPoint3D & center(void) const
returns position of helix center(z = 0.);
double * x(double dPhi, double p[3]) const