CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
HelixBarrelPlaneCrossingByCircle.h
Go to the documentation of this file.
1 #ifndef HelixBarrelPlaneCrossingByCircle_H
2 #define HelixBarrelPlaneCrossingByCircle_H
3 
8 
14 public:
16  const DirectionType& dir,
17  double rho,
19 
21  const GlobalVector& dir,
22  double rho,
24 
25  std::pair<bool, double> pathLength(const Plane&) override;
26 
27  PositionType position(double s) const override;
28 
29  DirectionType direction(double s) const override;
30 
31 private:
33 
36  double theRho;
38 
39  double theCosTheta;
40  double theSinTheta;
41  double theXCenter;
42  double theYCenter;
43 
44  // caching of the solution for faster access
45  double theS;
47  double theDmag;
48 
49  // internal communication - not very clean
50  double theActualDir;
52 
53  void init();
54  bool chooseSolution(const Vector2D& d1, const Vector2D& d2);
55 };
56 
57 #endif
PropagationDirection
Definition: Plane.h:16
bool chooseSolution(const Vector2D &d1, const Vector2D &d2)
DirectionType direction(double s) const override
std::pair< bool, double > pathLength(const Plane &) override
HelixBarrelPlaneCrossingByCircle(const PositionType &pos, const DirectionType &dir, double rho, PropagationDirection propDir=alongMomentum)
static constexpr float d1
PositionType position(double s) const override