CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HelixExtrapolatorToLine2Order.h
Go to the documentation of this file.
1 #ifndef HelixExtrapolatorToLine2Order_h_
2 #define HelixExtrapolatorToLine2Order_h_
3 
7 
11 class HelixExtrapolatorToLine2Order GCC11_FINAL : public HelixLineExtrapolation {
12 public:
14  HelixExtrapolatorToLine2Order(const PositionType& point,
15  const DirectionType& direction,
16  const float curvature,
17  const PropagationDirection propDir = alongMomentum);
18 
20  HelixExtrapolatorToLine2Order(const double& x0, const double& y0, const double& z0,
21  const double& cosPhi0, const double& sinPhi0,
22  const double& cosTheta, const double& sinTheta,
23  const double& rho,
24  const PropagationDirection propDir = alongMomentum) :
25  thePosition(x0,y0,z0),
26  theDirection(cosPhi0,sinPhi0,cosTheta/sinTheta),
27  theSinTheta(sinTheta),
28  theRho(rho),
29  thePropDir(propDir) {}
30 
31  // destructor
33 
38  virtual std::pair<bool,double> pathLength (const GlobalPoint& point) const;
39 
44  virtual std::pair<bool,double> pathLength (const Line& line) const;
45 
47  virtual PositionType position(double s) const;
48 
50  virtual DirectionType direction(double s) const;
51 
53  PositionTypeDouble positionInDouble(double s) const;
54 
56  DirectionTypeDouble directionInDouble(double s) const;
57 
58 private:
60  virtual std::pair<bool,double> pathLengthFromCoefficients (const double ceq[4]) const dso_internal;
62  int solve3rdOrder (const double ceq[], double sol[]) const dso_internal;
64  int solve2ndOrder (const double ceq[], double sol[]) const dso_internal;
65 
66 private:
69  double theSinTheta;
70  const double theRho;
71  const PropagationDirection thePropDir;
72 };
73 
74 #endif
75 
76 
HelixExtrapolatorToLine2Order(const double &x0, const double &y0, const double &z0, const double &cosPhi0, const double &sinPhi0, const double &cosTheta, const double &sinTheta, const double &rho, const PropagationDirection propDir=alongMomentum)
Fast constructor (for use by IterativeHelixExtrapolatorToLine).
Definition: Line.h:10
Definition: DDAxes.h:10
const PositionTypeDouble thePosition
PropagationDirection
virtual ~HelixExtrapolatorToLine2Order()
Point3DBase< Scalar, GlobalTag > PositionType
Definition: Definitions.h:30
T curvature(T InversePt, const edm::EventSetup &iSetup)
virtual PositionType position(double s) const =0
virtual std::pair< bool, double > pathLength(const GlobalPoint &point) const =0
#define dso_internal
Definition: Visibility.h:13
DirectionTypeDouble theDirection
virtual DirectionType direction(double s) const =0
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
Unlimited (trivial) bounds.