12 theP0(momentum.
unit()),
20 std::pair<bool,double>
30 if ( fabs(pz)<FLT_MIN )
return std::pair<bool,double>(
false,0);
32 double dS = -planeNormal.dot(
theX0-planePosition)/pz;
42 return std::pair<bool,double>(
true,dS);
45 std::pair<bool,StraightLinePlaneCrossing::PositionType>
48 std::pair<bool,double> crossed =
pathLength(plane);
49 if (crossed.first)
return std::pair<bool,PositionType>(
true,
position(crossed.second));
50 else return std::pair<bool,PositionType>(
false,
PositionType());
Basic3DVector< float > PositionType
const PositionTypeDouble theX0
const PropagationDirection thePropDir
GlobalVector normalVector() const
StraightLinePlaneCrossing(const PositionType &point, const DirectionType &momentum, const PropagationDirection propDir=alongMomentum)
std::pair< bool, double > pathLength(const Plane &plane) const
PositionType position(double s) const
const PositionTypeDouble theP0
const PositionType & position() 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
T dot(const Basic3DVector &rh) const
Scalar product, or "dot" product, with a vector of same type.