Go to the documentation of this file.
6 #include <vdt/vdtMath.h>
18 while (not
v.compare_exchange_weak(old,
t)) {
22 mutable std::atomic<int>
v{100};
36 : theQuadraticCrossingFromStart(
point, direction,
curvature, propDir),
53 double p2 =
pt2 + pz * pz;
80 return std::make_pair(
true, 0.);
87 UNLIKELY(!notFail)
return std::make_pair(notFail, dSTotal);
96 UNLIKELY(newDir != propDir)
return std::pair<bool, double>(
false, 0);
109 LogDebug(
"HelixArbitraryPlaneCrossing") <<
"pathLength : no convergence";
110 return std::pair<bool, double>(
false, 0);
119 auto deltaS2 = quadraticCrossing.
pathLength(plane);
122 UNLIKELY(!deltaS2.first)
return deltaS2;
126 dSTotal += deltaS2.second;
132 UNLIKELY(newDir != propDir)
return std::pair<bool, double>(
false, 0);
144 return std::make_pair(
true, dSTotal);
Basic3DVector< double > PositionTypeDouble
void operator()(int) const
Basic3DVector< float > DirectionType
DirectionTypeDouble directionInDouble(double s) const
T curvature(T InversePt, const edm::EventSetup &iSetup)
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
std::pair< bool, double > pathLength(const Plane &plane) override
static const float theNumericalPrecision
Basic3DVector< double > DirectionTypeDouble
DirectionTypeDouble directionInDouble(double s) const
T y() const
Cartesian y coordinate.
PositionType position(double s) const override
static const float theMaxDistToPlane
HelixArbitraryPlaneCrossing(const PositionType &point, const DirectionType &direction, const float curvature, const PropagationDirection propDir=alongMomentum)
DirectionType direction(double s) const override
PositionTypeDouble positionInDouble(double s) const
bool notAtSurface(const Plane &, const PositionTypeDouble &, const float) const
float localZ(const GlobalPoint &gp) const
std::pair< bool, double > pathLength(const Plane &) override
static const MaxIter maxiter
PositionTypeDouble positionInDouble(double s) const
const PositionType & position() const
HelixArbitraryPlaneCrossing2Order theQuadraticCrossingFromStart
T x() const
Cartesian x coordinate.
Abs< T >::type abs(const T &t)
const PropagationDirection thePropDir
*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 z() const
Cartesian z coordinate.
Basic3DVector< float > PositionType
the helix is passed to the constructor and does not appear in the interface