13#ifndef TRGCDCHelix_FLAG_
14#define TRGCDCHelix_FLAG_
17#include "CLHEP/Matrix/Vector.h"
18#include "CLHEP/Matrix/SymMatrix.h"
19#include "CLHEP/Vector/ThreeVector.h"
20#include "CLHEP/Vector/LorentzVector.h"
21#include "CLHEP/Geometry/Point3D.h"
23#ifdef TRGCDC_SHORT_NAMES
24#define TCHelix TRGCDCHelix
39 const CLHEP::HepVector&
a,
40 const CLHEP::HepSymMatrix&
Ea);
44 const CLHEP::HepVector&
a);
72 double*
x(
double dPhi,
double p[3])
const;
78 CLHEP::Hep3Vector
direction(
double dPhi = 0.)
const;
81 CLHEP::Hep3Vector
momentum(
double dPhi = 0.)
const;
84 CLHEP::Hep3Vector
momentum(
double dPhi, CLHEP::HepSymMatrix& Em)
const;
87 CLHEP::HepLorentzVector
momentum(
double dPhi,
double mass)
const;
90 CLHEP::HepLorentzVector
momentum(
double dPhi,
double mass, CLHEP::HepSymMatrix& Em)
const;
98 double dr(
void)
const;
101 double phi0(
void)
const;
104 double kappa(
void)
const;
107 double dz(
void)
const;
110 double tanl(
void)
const;
113 double curv(
void)
const;
122 const CLHEP::HepVector&
a(
void)
const;
125 const CLHEP::HepSymMatrix&
Ea(
void)
const;
129 const CLHEP::HepVector&
a(
const CLHEP::HepVector& newA);
132 const CLHEP::HepSymMatrix&
Ea(
const CLHEP::HepSymMatrix& newdA);
139 const CLHEP::HepVector&
a,
140 const CLHEP::HepSymMatrix&
Ea);
152 static void set_limits(
const CLHEP::HepVector& a_min,
153 const CLHEP::HepVector& a_max);
180 CLHEP::HepMatrix
delApDelA(
const CLHEP::HepVector& ap)
const;
182 CLHEP::HepMatrix
delXDelA(
double phi)
const;
184 CLHEP::HepMatrix
delMDelA(
double phi)
const;
186 CLHEP::HepMatrix
del4MDelA(
double phi,
double mass)
const;
188 CLHEP::HepMatrix
del4MXDelA(
double phi,
double mass)
const;
312 const CLHEP::HepVector&
319 const CLHEP::HepSymMatrix&
326 const CLHEP::HepVector&
329 if (i.num_row() == 5) {
338 const CLHEP::HepSymMatrix&
TRGCDCHelix parameter class.
HepGeom::Point3D< double > m_center
caches
CLHEP::HepVector m_a
a HepVector parameter
void debugTRGCDCHelix(void) const
function not defined
CLHEP::HepSymMatrix m_Ea
Ea HepSymMatrix parameter.
HepGeom::Point3D< double > m_pivot
pivot
bool m_matrixValid
matrix validity
bool m_helixValid
helix validity
double m_alpha
alpha parameter
TRGCDCHelix(const TRGCDCHelix &)=default
Default copy constructor.
double m_bField
magnetic field
void set(const HepGeom::Point3D< double > &pivot, const CLHEP::HepVector &a, const CLHEP::HepSymMatrix &Ea)
sets helix pivot position, parameters, and error matrix.
static CLHEP::HepVector ms_amax
limits for helix parameters
static bool ms_print_debug
print debug info or not
TRGCDCHelix & operator=(const TRGCDCHelix &)
Copy operator.
void checkValid(void)
check validity
HepGeom::Point3D< double > x(double dPhi=0.) const
returns position after rotating angle dPhi in phi direction.
static void set_limits(const CLHEP::HepVector &a_min, const CLHEP::HepVector &a_max)
set limits for helix parameters
const HepGeom::Point3D< double > & center(void) const
returns position of helix center(z = 0.);
void ignoreErrorMatrix(void)
unsets error matrix. Error calculations will be ignored after this function call until an error matri...
const CLHEP::HepSymMatrix & Ea(void) const
returns error matrix.
static bool set_exception(bool)
set to throw exception or not
CLHEP::Hep3Vector direction(double dPhi=0.) const
returns direction vector after rotating angle dPhi in phi direction.
void updateCache(void)
update Caches
double tanl(void) const
returns tanl.
double phi0(void) const
returns phi0.
double radius(void) const
returns radious of helix.
static bool ms_throw_exception
throw exception or not
const CLHEP::HepVector & a(void) const
returns helix parameters.
static bool ms_check_range
range in checked or not
CLHEP::HepMatrix del4MXDelA(double phi, double mass) const
Mathmatical functions.
double dr(void) const
returns dr.
void debugPrint(void) const
print debug info
CLHEP::HepMatrix delApDelA(const CLHEP::HepVector &ap) const
Mathmatical functions.
double dz(void) const
returns dz.
static const double ConstantAlpha
Constant alpha for uniform field.
double bFieldZ(void) const
returns z componet of the magnetic field.
static const std::string invalidhelix
string of invalid helix
virtual ~TRGCDCHelix()
Destructor.
static CLHEP::HepVector ms_amin
limits for helix parameters
CLHEP::HepMatrix delXDelA(double phi) const
Mathmatical functions.
CLHEP::HepMatrix del4MDelA(double phi, double mass) const
Mathmatical functions.
double cosPhi0(void) const
return cos(phi0).
CLHEP::HepMatrix delMDelA(double phi) const
Mathmatical functions.
double kappa(void) const
returns kappa.
double curv(void) const
returns curvurture.
static bool set_print(bool)
set to print debug info or not
double sinPhi0(void) const
returns sin(phi0).
CLHEP::Hep3Vector momentum(double dPhi=0.) const
returns momentum vector after rotating angle dPhi in phi direction.
const HepGeom::Point3D< double > & pivot(void) const
returns pivot position.
Abstract base class for different kinds of events.