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
Vector3DBase
Definition: Vector3DBase.h:8
Visibility.h
HelixBarrelCylinderCrossing::onlyPos
Definition: HelixBarrelCylinderCrossing.h:18
HelixBarrelCylinderCrossing::position2
PositionType position2() const
Method to access separately each solution of the helix-cylinder crossing equations.
Definition: HelixBarrelCylinderCrossing.h:54
HelixBarrelCylinderCrossing::Point
Basic2DVector< TmpType > Point
Definition: HelixBarrelCylinderCrossing.h:21
HelixBarrelCylinderCrossing::hasSolution
bool hasSolution() const
Definition: HelixBarrelCylinderCrossing.h:34
HelixBarrelCylinderCrossing::TmpType
double TmpType
Definition: HelixBarrelCylinderCrossing.h:20
HelixBarrelCylinderCrossing::theSolExists
bool theSolExists
Definition: HelixBarrelCylinderCrossing.h:67
HelixBarrelCylinderCrossing::Vector
Basic2DVector< TmpType > Vector
Definition: HelixBarrelCylinderCrossing.h:22
HelixBarrelCylinderCrossing::HelixBarrelCylinderCrossing
HelixBarrelCylinderCrossing(const GlobalPoint &startingPos, const GlobalVector &startingDir, double rho, PropagationDirection propDir, const Cylinder &cyl, Solution sol=bothSol)
Definition: HelixBarrelCylinderCrossing.cc:17
HelixBarrelCylinderCrossing::PositionType
GlobalPoint PositionType
Definition: HelixBarrelCylinderCrossing.h:24
HelixBarrelCylinderCrossing::bestSol
Definition: HelixBarrelCylinderCrossing.h:18
HelixBarrelCylinderCrossing::thePos1
PositionType thePos1
Definition: HelixBarrelCylinderCrossing.h:69
p2
double p2[4]
Definition: TauolaWrapper.h:90
Point3DBase< float, GlobalTag >
HelixBarrelCylinderCrossing::Solution
Solution
Definition: HelixBarrelCylinderCrossing.h:18
DDAxes::rho
HelixBarrelCylinderCrossing::direction
DirectionType direction() const
Definition: HelixBarrelCylinderCrossing.h:61
Basic2DVector
Definition: extBasic2DVector.h:15
dso_internal
#define dso_internal
Definition: Visibility.h:13
HelixBarrelCylinderCrossing::bothSol
Definition: HelixBarrelCylinderCrossing.h:18
HelixBarrelCylinderCrossing::position
PositionType position() const
Definition: HelixBarrelCylinderCrossing.h:48
p1
double p1[4]
Definition: TauolaWrapper.h:89
HelixBarrelCylinderCrossing::chooseSolution
std::pair< Vector, int > chooseSolution(const Point &p1, const Point &p2, const PositionType &startingPos, const DirectionType &startingDir, PropagationDirection propDir)
Definition: HelixBarrelCylinderCrossing.cc:134
HelixBarrelCylinderCrossing::position1
PositionType position1() const
Method to access separately each solution of the helix-cylinder crossing equations.
Definition: HelixBarrelCylinderCrossing.h:51
PropagationDirection.h
HelixBarrelCylinderCrossing::DirectionType
GlobalVector DirectionType
Definition: HelixBarrelCylinderCrossing.h:25
HelixBarrelCylinderCrossing::thePos
PositionType thePos
Definition: HelixBarrelCylinderCrossing.h:64
HelixBarrelCylinderCrossing::thePos2
PositionType thePos2
Definition: HelixBarrelCylinderCrossing.h:70
Basic2DVector.h
PropagationDirection
PropagationDirection
Definition: PropagationDirection.h:4
GlobalVector.h
HelixBarrelCylinderCrossing
Definition: HelixBarrelCylinderCrossing.h:16
Cylinder
Definition: Cylinder.h:19
GlobalPoint.h
HelixBarrelCylinderCrossing::theDir
DirectionType theDir
Definition: HelixBarrelCylinderCrossing.h:65
HelixBarrelCylinderCrossing::pathLength
double pathLength() const
Definition: HelixBarrelCylinderCrossing.h:40
HelixBarrelCylinderCrossing::theS
double theS
Definition: HelixBarrelCylinderCrossing.h:66