CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
PerigeeTrajectoryParameters.h
Go to the documentation of this file.
1 #ifndef PerigeeTrajectoryParameters_H
2 #define PerigeeTrajectoryParameters_H
3 
15 
17 public:
19 
20  explicit PerigeeTrajectoryParameters(const AlgebraicVector5 &aVector, bool charged = true) : theVector(aVector) {
21  if (charged)
22  theCharge = theVector[0] > 0 ? -1 : 1;
23  else
24  theCharge = 0;
25  }
26 
27  PerigeeTrajectoryParameters(double aCurv, double aTheta, double aPhi, double aTip, double aLip, bool charged = true) {
28  theVector[0] = aCurv;
29  theVector[1] = aTheta;
30  theVector[2] = aPhi;
31  theVector[3] = aTip;
32  theVector[4] = aLip;
33 
34  if (charged)
35  theCharge = aCurv > 0 ? -1 : 1;
36  else
37  theCharge = 0;
38  }
39 
44  TrackCharge charge() const { return theCharge; }
45 
50  double transverseCurvature() const { return ((charge() != 0) ? theVector[0] : 0.); }
51 
56  double theta() const { return theVector[1]; }
57 
62  double phi() const { return theVector[2]; }
63 
68  double transverseImpactParameter() const { return theVector[3]; }
69 
74  double longitudinalImpactParameter() const { return theVector[4]; }
75 
82  const AlgebraicVector5 &vector() const { return theVector; }
83 
84 private:
87 };
88 #endif
const AlgebraicVector5 & vector() const
int TrackCharge
Definition: TrackCharge.h:4
ROOT::Math::SVector< double, 5 > AlgebraicVector5
PerigeeTrajectoryParameters(const AlgebraicVector5 &aVector, bool charged=true)
PerigeeTrajectoryParameters(double aCurv, double aTheta, double aPhi, double aTip, double aLip, bool charged=true)