1 #ifndef HELIXARBITRARYPLANECROSSING2ORDER_H_
2 #define HELIXARBITRARYPLANECROSSING2ORDER_H_
17 const DirectionType& direction,
23 const double& cosPhi0,
const double& sinPhi0,
24 const double& cosTheta,
const double& sinTheta,
27 theX0(x0), theY0(y0), theZ0(z0),
28 theCosPhi0(cosPhi0), theSinPhi0(sinPhi0),
29 theCosTheta(cosTheta), theSinThetaI(1./sinTheta),
31 thePropDir(propDir) {}
48 virtual DirectionType
direction(
double s)
const;
66 const double secondPathLength)
const {
67 return fabs(firstPathLength)<fabs(secondPathLength) ? firstPathLength : secondPathLength;
74 std::pair<bool,double> solutionByDirection(
const double dS1,
const double dS2)
const dso_internal;
77 const double theX0,theY0,theZ0;
78 double theCosPhi0,theSinPhi0;
HelixArbitraryPlaneCrossing2Order(const double &x0, const double &y0, const double &z0, const double &cosPhi0, const double &sinPhi0, const double &cosTheta, const double &sinTheta, const double &rho, const PropagationDirection propDir=alongMomentum)
virtual DirectionType direction(double s) const =0
Point3DBase< Scalar, GlobalTag > PositionType
T curvature(T InversePt, const edm::EventSetup &iSetup)
double smallestPathLength(const double firstPathLength, const double secondPathLength) const
virtual std::pair< bool, double > pathLength(const Plane &)=0
virtual PositionType position(double s) const =0
Basic3DVector< double > DirectionTypeDouble
virtual ~HelixArbitraryPlaneCrossing2Order()
*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
Basic3DVector< double > PositionTypeDouble
Unlimited (trivial) bounds.