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 
11 
28 class FastHelix {
29 
30 private:
31 
33 
34 public:
35 
36 
37  //Original constructor (no basis vertex)
38  FastHelix(const GlobalPoint& outerHit,
39  const GlobalPoint& middleHit,
40  const GlobalPoint& aVertex,
41  const edm::EventSetup& iSetup) : theOuterHit(outerHit),
42  theMiddleHit(middleHit),
43  theVertex(aVertex),
44  theCircle(outerHit,
45  middleHit,
46  aVertex) {
47  iSetup.get<IdealMagneticFieldRecord>().get(pSetup);
48  tesla0=0.1*double(pSetup->nominalValue());
49  maxRho = maxPt/(0.01 * 0.3*tesla0);
50  useBasisVertex = false;
51  }
52 
53  //New constructor (with basis vertex)
54  FastHelix(const GlobalPoint& outerHit,
55  const GlobalPoint& middleHit,
56  const GlobalPoint& aVertex,
57  const edm::EventSetup& iSetup,
58  const GlobalPoint& bVertex) : theOuterHit(outerHit),
59  theMiddleHit(middleHit),
60  theVertex(aVertex),
61  basisVertex(bVertex),
62  theCircle(outerHit,
63  middleHit,
64  aVertex) {
65  iSetup.get<IdealMagneticFieldRecord>().get(pSetup);
66  tesla0=0.1*double(pSetup->nominalValue());
67  maxRho = maxPt/(0.01 * 0.3*tesla0);
68  useBasisVertex = true;
69  }
70 
72 
73  bool isValid() const {return theCircle.isValid();}
74 
75  FTS stateAtVertex() const;
76 
77  FTS helixStateAtVertex() const;
78 
80 
81  const FastCircle & circle() const { return theCircle; }
82 
83 private:
84 
85  static constexpr double maxPt = 10000; // 10Tev
86 
93  double tesla0;
94  double maxRho;
96 };
97 
98 #endif //TR_FastHelix_H_
99 
GlobalPoint theMiddleHit
Definition: FastHelix.h:88
FTS stateAtVertex() const
Definition: FastHelix.cc:7
GlobalPoint theVertex
Definition: FastHelix.h:89
bool isValid() const
Definition: FastHelix.h:73
FTS helixStateAtVertex() const
Definition: FastHelix.cc:16
~FastHelix()
Definition: FastHelix.h:71
GlobalPoint basisVertex
Definition: FastHelix.h:90
const FastCircle & circle() const
Definition: FastHelix.h:81
GlobalPoint theOuterHit
Definition: FastHelix.h:87
FastCircle theCircle
Definition: FastHelix.h:91
bool isValid() const
Definition: FastCircle.h:56
FastHelix(const GlobalPoint &outerHit, const GlobalPoint &middleHit, const GlobalPoint &aVertex, const edm::EventSetup &iSetup, const GlobalPoint &bVertex)
Definition: FastHelix.h:54
FastHelix(const GlobalPoint &outerHit, const GlobalPoint &middleHit, const GlobalPoint &aVertex, const edm::EventSetup &iSetup)
Definition: FastHelix.h:38
const T & get() const
Definition: EventSetup.h:55
FreeTrajectoryState FTS
Definition: FastHelix.h:32
double maxRho
Definition: FastHelix.h:94
static constexpr double maxPt
Definition: FastHelix.h:85
edm::ESHandle< MagneticField > pSetup
Definition: FastHelix.h:92
bool useBasisVertex
Definition: FastHelix.h:95
#define constexpr
double tesla0
Definition: FastHelix.h:93
FTS straightLineStateAtVertex() const
Definition: FastHelix.cc:148