CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
IdealHelixParameters.h
Go to the documentation of this file.
1 #ifndef IDEALHELIXPARAMETERS_H
2 #define IDEALHELIXPARAMETERS_H
3 
8 
9 /*
10 Given a track, evaluates the status of the track finding in the XY plane
11 the point of tangent of the circle to the reference point(in general the PrimaryVertex or the BeamSpot)
12 
13 The approach is the following.
14 Given a track,
15 -extract the innermomentum at the innerpoint
16 -evalaute the radius of curvature and the center of the circle
17 -solving geometrical equation, evaluate the point of tangence to the circle, starting from the PV
18 -evaluate the status at this point of tangence T
19 
20  */
22 public:
24  : _magnField(nullptr),
25  _track(nullptr),
26  _refPoint(math::XYZVector(0, 0, 0)),
27  _tangentPoint(math::XYZVector(0, 0, 0)),
28  _MomentumAtTangentPoint(math::XYZVector(0, 0, 0)){};
30 
31  inline void setMagnField(const MagneticField* magnField) { _magnField = magnField; }
32  inline void setData(const reco::Track* track, const math::XYZVector& refPoint = math::XYZVector(0, 0, 0));
33  inline void setData(const reco::Track* track, const math::XYZPoint& ref);
34 
35  inline bool isTangentPointDistanceLessThan(float rmax, const reco::Track* track, const math::XYZVector& refPoint);
36 
40  float GetTransverseIPAtTangent() const { return _transverseIP; }
41  float GetRotationAngle() const { return _rotationAngle; }
42 
43 private:
44  inline void calculate();
45  inline void evalCircleCenter();
46  inline void evalTangentPoint();
47  inline void evalMomentumatTangentPoint();
48 
51  float _radius;
58 
59  // std::stringstream ss;
60 };
61 #include "IdealHelixParameters.icc"
62 
63 #endif
void setData(const reco::Track *track, const math::XYZVector &refPoint=math::XYZVector(0, 0, 0))
float GetRotationAngle() const
math::XYZVector GetCircleCenter() const
const reco::Track * _track
void setMagnField(const MagneticField *magnField)
math::XYZVector GetMomentumAtTangentPoint() const
math::XYZVector _MomentumAtTangentPoint
math::XYZVector GetTangentPoint() const
float GetTransverseIPAtTangent() const
math::XYZVector _circleCenter
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
const MagneticField * _magnField
bool isTangentPointDistanceLessThan(float rmax, const reco::Track *track, const math::XYZVector &refPoint)
math::XYZVector XYZVector
Definition: RawParticle.h:26
void evalMomentumatTangentPoint()
math::XYZVector _tangentPoint