CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
FastHelix.h
Go to the documentation of this file.
1 #ifndef TR_FastHelix_H_
2 #define TR_FastHelix_H_
3 
8 
25 class MagneticField;
26 class FastHelix {
27 public:
28 
29  //Original constructor (no basis vertex)
30  FastHelix(const GlobalPoint& oHit,
31  const GlobalPoint& mHit,
32  const GlobalPoint& aVertex,
33  double nomField, MagneticField const * ibField) :
34  bField(ibField),
35  theCircle(oHit,
36  mHit,
37  aVertex) {
38  tesla0=0.1*nomField;
39  maxRho = maxPt/(0.01 * 0.3*tesla0);
40  useBasisVertex = false;
41  compute();
42  }
43 
44  //New constructor (with basis vertex)
45  FastHelix(const GlobalPoint& oHit,
46  const GlobalPoint& mHit,
47  const GlobalPoint& aVertex,
48  double nomField, MagneticField const * ibField,
49  const GlobalPoint& bVertex) :
50  bField(ibField),
51  basisVertex(bVertex),
52  theCircle(oHit,
53  mHit,
54  aVertex) {
55  tesla0=0.1*nomField;
56  maxRho = maxPt/(0.01 * 0.3*tesla0);
57  useBasisVertex = true;
58  compute();
59  }
60 
62 
63  bool isValid() const {return theCircle.isValid();}
64 
66 
67  const FastCircle & circle() const { return theCircle; }
68 
69 private:
70 
71  GlobalPoint const & outerHit() const { return theCircle.outerPoint();}
72  GlobalPoint const & middleHit() const { return theCircle.innerPoint();}
73  GlobalPoint const & vertex() const { return theCircle.vertexPoint();}
74 
75 
76  void compute();
79 
80 
81 private:
82 
83  static constexpr float maxPt = 10000; // 10Tev
84 
85  MagneticField const * bField; // needed to construct GlobalTrajectoryParameters
89  float tesla0;
90  float maxRho;
92 };
93 
94 #endif //TR_FastHelix_H_
95 
#define dso_hidden
bool isValid() const
Definition: FastHelix.h:63
FastHelix(const GlobalPoint &oHit, const GlobalPoint &mHit, const GlobalPoint &aVertex, double nomField, MagneticField const *ibField, const GlobalPoint &bVertex)
Definition: FastHelix.h:45
float tesla0
Definition: FastHelix.h:89
~FastHelix()
Definition: FastHelix.h:61
MagneticField const * bField
Definition: FastHelix.h:85
GlobalPoint basisVertex
Definition: FastHelix.h:87
void straightLineStateAtVertex()
Definition: FastHelix.cc:95
const FastCircle & circle() const
Definition: FastHelix.h:67
GlobalPoint const & vertex() const
Definition: FastHelix.h:73
FastCircle theCircle
Definition: FastHelix.h:88
#define constexpr
GlobalPoint const & outerPoint() const
Definition: FastCircle.h:66
bool isValid() const
Definition: FastCircle.h:56
GlobalPoint const & middleHit() const
Definition: FastHelix.h:72
void helixStateAtVertex()
Definition: FastHelix.cc:13
FastHelix(const GlobalPoint &oHit, const GlobalPoint &mHit, const GlobalPoint &aVertex, double nomField, MagneticField const *ibField)
Definition: FastHelix.h:30
static float maxPt
Definition: FastHelix.h:83
GlobalPoint const & innerPoint() const
Definition: FastCircle.h:67
GlobalTrajectoryParameters atVertex
Definition: FastHelix.h:86
string const
Definition: compareJSON.py:14
void compute()
Definition: FastHelix.cc:4
GlobalPoint const & outerHit() const
Definition: FastHelix.h:71
GlobalTrajectoryParameters stateAtVertex() const
Definition: FastHelix.h:65
GlobalPoint const & vertexPoint() const
Definition: FastCircle.h:68
float maxRho
Definition: FastHelix.h:90
bool useBasisVertex
Definition: FastHelix.h:91