CMS 3D CMS Logo

HelixBarrelCylinderCrossing.h
Go to the documentation of this file.
1 #ifndef HelixBarrelCylinderCrossing_H
2 #define HelixBarrelCylinderCrossing_H
3 
8 
10 
11 class Cylinder;
12 
17 public:
19 
20  typedef double TmpType;
21  typedef Basic2DVector<TmpType> Point; // for private use only
22  typedef Basic2DVector<TmpType> Vector; // for private use only
23 
26 
27  HelixBarrelCylinderCrossing(const GlobalPoint& startingPos,
28  const GlobalVector& startingDir,
29  double rho,
30  PropagationDirection propDir,
31  const Cylinder& cyl,
32  Solution sol = bothSol);
33 
34  bool hasSolution() const { return theSolExists; }
35 
40  double pathLength() const { return theS; }
41 
48  PositionType position() const { return thePos; }
49 
51  PositionType position1() const { return thePos1; }
52 
54  PositionType position2() const { return thePos2; }
55 
61  DirectionType direction() const { return theDir; }
62 
63 private:
66  double theS;
68 
71 
72  std::pair<Vector, int> chooseSolution(const Point& p1,
73  const Point& p2,
74  const PositionType& startingPos,
75  const DirectionType& startingDir,
77 };
78 
79 #endif
HelixBarrelCylinderCrossing(const GlobalPoint &startingPos, const GlobalVector &startingDir, double rho, PropagationDirection propDir, const Cylinder &cyl, Solution sol=bothSol)
PositionType position2() const
Method to access separately each solution of the helix-cylinder crossing equations.
PropagationDirection
std::pair< Vector, int > chooseSolution(const Point &p1, const Point &p2, const PositionType &startingPos, const DirectionType &startingDir, PropagationDirection propDir)
#define dso_internal
Definition: Visibility.h:13
constexpr float sol
Definition: Config.h:13
PositionType position1() const
Method to access separately each solution of the helix-cylinder crossing equations.