Go to the documentation of this file.
23 double p2 =
pt2 + pz * pz;
41 double nPx = normalToPlane.
x();
42 double nPy = normalToPlane.
y();
43 double nPz = normalToPlane.
z();
59 double deq1 = ceq2 * ceq2;
60 double deq2 = ceq1 * ceq3;
65 double deq = deq1 + 2 * deq2;
67 UNLIKELY(deq < 0.)
return std::pair<bool, double>(
false, 0);
68 double ceq = ceq2 + std::copysign(
std::sqrt(deq), ceq2);
76 double deq = deq2 / deq1;
77 deq *= (1 - 0.5 * deq);
79 dS2 = ceq * (2 + deq);
136 const double dS2)
const {
145 double s1(propSign * dS1);
146 double s2(propSign * dS2);
151 if ((s1 < 0) & (
s2 >= 0)) {
155 }
else if (s1 >= 0) {
158 path = propSign * s1;
163 return std::pair<bool, double>(
valid,
path);
double smallestPathLength(const double firstPathLength, const double secondPathLength) const
constexpr bool isNotFinite(T x)
Basic3DVector< float > DirectionType
Basic3DVector< double > PositionTypeDouble
T curvature(T InversePt, const edm::EventSetup &iSetup)
std::pair< bool, double > solutionByDirection(const double dS1, const double dS2) const
const PropagationDirection thePropDir
DirectionTypeDouble directionInDouble(double s) const
T y() const
Cartesian y coordinate.
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
PositionType position(double s) const override
Global3DPoint GlobalPoint
Basic3DVector< double > DirectionTypeDouble
float localZ(const GlobalPoint &gp) const
std::pair< bool, double > pathLength(const Plane &) override
PositionTypeDouble positionInDouble(double s) const
HelixArbitraryPlaneCrossing2Order(const PositionType &point, const DirectionType &direction, const float curvature, const PropagationDirection propDir=alongMomentum)
T x() const
Cartesian x coordinate.
DirectionType direction(double s) const override
Abs< T >::type abs(const T &t)
*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
GlobalVector normalVector() const