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 
18 public:
20 
21  typedef double TmpType;
22  typedef Basic2DVector<TmpType> Point; // for private use only
23  typedef Basic2DVector<TmpType> Vector; // for private use only
24 
25 
28 
29  HelixBarrelCylinderCrossing( const GlobalPoint& startingPos,
30  const GlobalVector& startingDir,
31  double rho, PropagationDirection propDir,
32  const Cylinder& cyl, 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 
56 
62  DirectionType direction() const { return theDir;}
63 
64 private:
65 
66  PositionType thePos;
67  DirectionType theDir;
68  double theS;
70 
71 
72  PositionType thePos1;
73  PositionType thePos2;
74 
75 
76  std::pair<Vector,int> chooseSolution( const Point& p1, const Point& p2,
77  const PositionType& startingPos,
78  const DirectionType& startingDir,
80 
81 };
82 
83 #endif
HelixBarrelCylinderCrossing(const GlobalPoint &startingPos, const GlobalVector &startingDir, double rho, PropagationDirection propDir, const Cylinder &cyl, Solution sol=bothSol)
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
double p2[4]
Definition: TauolaWrapper.h:90
PositionType position1() const
Method to access separately each solution of the helix-cylinder crossing equations.
double p1[4]
Definition: TauolaWrapper.h:89
PositionType position2() const
Method to access separately each solution of the helix-cylinder crossing equations.