CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
StraightLinePlaneCrossing.h
Go to the documentation of this file.
1 #ifndef StraightLinePlaneCrossing_H_
2 #define StraightLinePlaneCrossing_H_
3 
6 
7 #include <utility>
8 
9 class Plane;
10 
15 public:
23 
24 public:
28  const DirectionType& momentum,
29  const PropagationDirection propDir = alongMomentum)
30  : theX0(point), theP0(momentum.unit()), thePropDir(propDir) {}
31 
32  // destructor
34 
38  std::pair<bool, double> pathLength(const Plane& plane) const;
39 
42  PositionType position(float s) const { return PositionType(theX0 + s * theP0); }
43 
46  std::pair<bool, PositionType> position(const Plane& plane) const;
47 
48 private:
49  //
50  // single precision vectors sufficient for internal use
51  //
52 
56 };
57 
58 #endif
const PropagationDirection thePropDir
Basic3DVector< float > PositionType
StraightLinePlaneCrossing(const PositionType &point, const DirectionType &momentum, const PropagationDirection propDir=alongMomentum)
PropagationDirection
Definition: Plane.h:16
PositionType position(float s) const
std::pair< bool, double > pathLength(const Plane &plane) const
*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
Basic3DVector unit() const