 |
Belle II Software
release-05-02-19
|
16 #include "CLHEP/Matrix/Vector.h"
17 #include "CLHEP/Matrix/SymMatrix.h"
18 #ifndef CLHEP_THREEVECTOR_H
19 #include "CLHEP/Vector/ThreeVector.h"
21 #include "CLHEP/Vector/LorentzVector.h"
22 #ifndef CLHEP_POINT3D_H
23 #include "CLHEP/Geometry/Point3D.h"
25 #ifndef ENABLE_BACKWARDS_COMPATIBILITY
30 typedef CLHEP::HepVector Vector;
31 typedef CLHEP::HepSymMatrix SymMatrix;
32 typedef CLHEP::Hep3Vector Vector3;
33 typedef CLHEP::HepLorentzVector VectorL;
34 typedef CLHEP::HepLorentzVector Vector4;
35 typedef CLHEP::HepMatrix Matrix;
37 using CLHEP::HepVector;
38 using CLHEP::HepSymMatrix;
39 using CLHEP::Hep3Vector;
40 using CLHEP::HepLorentzVector;
41 using CLHEP::HepMatrix;
57 const HepSymMatrix&
Ea);
101 double*
x(
double dPhi,
double p[3])
const;
107 Hep3Vector
direction(
double dPhi = 0.)
const;
110 Hep3Vector
momentum(
double dPhi = 0.)
const;
113 Hep3Vector
momentum(
double dPhi, HepSymMatrix& Em)
const;
116 HepLorentzVector
momentum(
double dPhi,
double mass)
const;
119 HepLorentzVector
momentum(
double dPhi,
double mass, HepSymMatrix& Em)
const;
122 HepLorentzVector
momentum(
double dPhi,
double mass,
HepPoint3D&
x, HepSymMatrix& Emx)
const;
134 double dr(
void)
const;
139 double phi0(
void)
const;
144 double kappa(
void)
const;
149 double dz(
void)
const;
154 double tanl(
void)
const;
159 double curv(
void)
const;
175 const HepVector&
a(
void)
const;
180 const HepSymMatrix&
Ea(
void)
const;
184 const HepVector&
a(
const HepVector& newA);
187 const HepSymMatrix&
Ea(
const HepSymMatrix& newdA);
195 const HepSymMatrix&
Ea);
223 static void set_limits(
const HepVector& a_min,
const HepVector& a_max);
252 HepMatrix
delApDelA(
const HepVector& ap)
const;
254 HepMatrix
delXDelA(
double phi)
const;
256 HepMatrix
delMDelA(
double phi)
const;
258 HepMatrix
del4MDelA(
double phi,
double mass)
const;
260 HepMatrix
del4MXDelA(
double phi,
double mass)
const;
325 #if defined(BELLE_DEBUG)
326 #define DEBUG_HELIX debugHelix()
327 #define DEBUG_PRINT debugPrint()
335 #ifdef Helix_NO_INLINE
339 #define Helix_INLINE_DEFINE_HERE
342 #ifdef Helix_INLINE_DEFINE_HERE
348 #if defined(BELLE_DEBUG)
449 if (i.num_row() == 5) {
453 #if defined(BELLE_DEBUG)
457 std::cout <<
"Helix::input vector's num_row is not 5" << std::endl;
double kappa(void) const
Return helix parameter kappa.
HepMatrix del4MXDelA(double phi, double mass) const
DMX4/DA.
double m_cp
Cache of the cos phi0.
double m_ac[5]
Cache of the helix parameter.
Helix & operator=(const Helix &)
Copy operator.
double m_pt
Cache of the pt.
double tanl(void) const
Return helix parameter tangent lambda.
double phi0(void) const
Return helix parameter phi0.
static HepVector ms_amax
maxiimum limit of Helix parameter a
void checkValid(void)
Check whether helix parameters is valid or not.
double m_alpha
10000.0/(speed of light)/B.
HepMatrix del4MDelA(double phi, double mass) const
DM4/DA.
double curv(void) const
Return curvature of helix.
Hep3Vector momentum(double dPhi=0.) const
returns momentum vector after rotating angle dPhi in phi direction.
double m_r
Cache of the r.
const HepPoint3D & pivot(void) const
returns pivot position.
HepPoint3D x(double dPhi=0.) const
returns position after rotating angle dPhi in phi direction.
virtual ~Helix()
Destructor.
static bool ms_throw_exception
Throw exception flag.
void debugHelix(void) const
Debug Helix.
static void set_limits(const HepVector &a_min, const HepVector &a_max)
set limit for parameter "a"
HepPoint3D m_center
Cache of the center position of Helix.
static bool ms_check_range
Check the helix parameter's range.
static bool ms_print_debug
Debug option flag.
Abstract base class for different kinds of events.
double m_bField
Magnetic field, assuming uniform Bz in the unit of kG.
HepMatrix delMDelA(double phi) const
DM/DA.
HepMatrix delApDelA(const HepVector &ap) const
DAp/DA.
double radius(void) const
returns radious of helix.
double m_sp
Cache of the sin phi0.
void debugPrint(void) const
Print the helix parameters to stdout.
static const std::string invalidhelix
String "Invalid Helix".
double dz(void) const
Return helix parameter dz.
bool m_helixValid
True: helix valid, False: helix not valid.
Hep3Vector direction(double dPhi=0.) const
returns direction vector after rotating angle dPhi in phi direction.
static const double ConstantAlpha
Constant alpha for uniform field.
static bool set_print(bool)
Set print option for debugging.
const HepVector & a(void) const
Returns helix parameters.
HepMatrix delXDelA(double phi) const
DX/DA.
void updateCache(void)
updateCache
double bFieldZ(void) const
Returns z componet of the magnetic field.
HepSymMatrix m_Ea
Error of the helix parameter.
const HepPoint3D & center(void) const
returns position of helix center(z = 0.);
static HepVector ms_amin
minimum limit of Helix parameter a
bool m_matrixValid
True: matrix valid, False: matrix not valid.
double sinPhi0(void) const
Return sin phi0.
HepGeom::Point3D< double > Point3D
3D point
static bool set_exception(bool)
set exception
HepVector m_a
Helix parameter.
const HepSymMatrix & Ea(void) const
Returns error matrix.
void set(const HepPoint3D &pivot, const HepVector &a, const HepSymMatrix &Ea)
Sets helix pivot position, parameters, and error matrix.
Helix(const HepPoint3D &pivot, const HepVector &a, const HepSymMatrix &Ea)
Constructor with pivot, helix parameter a, and its error matrix.
void ignoreErrorMatrix(void)
Unsets error matrix.
double cosPhi0(void) const
Return cos phi0.
double dr(void) const
Return helix parameter dr.