13 theQuadraticCrossingFromStart(point,direction,curvature,propDir),
27 double px = direction.
x();
28 double py = direction.
y();
29 double pz = direction.
z();
30 double pt2 = px*px+py*py;
31 double p2 = pt2+pz*pz;
32 double pI = 1./
sqrt(p2);
33 double ptI = 1./
sqrt(pt2);
42 std::pair<bool,double>
47 const int maxIterations(100);
71 edm::LogInfo(
"HelixArbitraryPlaneCrossing") <<
"pathLength : no convergence";
72 return std::pair<bool,double>(
false,0);
79 std::pair<bool,double> deltaS2;
94 if unlikely( !deltaS2.first )
return deltaS2;
98 dSTotal += deltaS2.second;
104 if unlikely( newDir!=propDir )
return std::pair<bool,double>(
false,0);
115 return std::pair<bool,double>(
true,dSTotal);
DirectionTypeDouble directionInDouble(double s) const
HelixArbitraryPlaneCrossing2Order theQuadraticCrossingFromStart
T y() const
Cartesian y coordinate.
T x() const
Cartesian x coordinate.
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
DirectionTypeDouble directionInDouble(double s) const
static const float theNumericalPrecision
Sin< T >::type sin(const T &t)
virtual std::pair< bool, double > pathLength(const Plane &)
Basic3DVector< double > PositionTypeDouble
float localZ(const GlobalPoint &gp) const
Fast access to distance from plane for a point.
const PropagationDirection thePropDir
virtual DirectionType direction(double s) const
static const float theMaxDistToPlane
virtual PositionType position(double s) const
T curvature(T InversePt, const edm::EventSetup &iSetup)
T z() const
Cartesian z coordinate.
bool notAtSurface(const Plane &, const PositionTypeDouble &, const float) const dso_internal
Cos< T >::type cos(const T &t)
virtual std::pair< bool, double > pathLength(const Plane &plane)
PositionTypeDouble positionInDouble(double s) const
PositionTypeDouble positionInDouble(double s) const
Basic3DVector< float > PositionType
the helix is passed to the constructor and does not appear in the interface
Basic3DVector< float > DirectionType
Basic3DVector< double > DirectionTypeDouble
HelixArbitraryPlaneCrossing(const PositionType &point, const DirectionType &direction, const float curvature, const PropagationDirection propDir=alongMomentum)
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