23 double p2 =
pt2 + pz * pz;
41 double nPx = normalToPlane.
x();
42 double nPy = normalToPlane.
y();
43 double nPz = normalToPlane.
z();
58 double deq1 = ceq2 * ceq2;
59 double deq2 = ceq1 * ceq3;
64 double deq = deq1 + 2 * deq2;
66 return std::pair<bool, double>(
false, 0);
67 double ceq = ceq2 + std::copysign(
std::sqrt(deq), ceq2);
75 double deq = deq2 / deq1;
76 deq *= (1 - 0.5 * deq);
78 dS2 = ceq * (2 + deq);
134 const double dS2)
const {
143 double s1(propSign * dS1);
144 double s2(propSign * dS2);
149 if ((s1 < 0) & (s2 >= 0)) {
152 path = propSign * s2;
153 }
else if (s1 >= 0) {
156 path = propSign * s1;
161 return std::pair<bool, double>(
valid,
path);
HelixArbitraryPlaneCrossing2Order(const PositionType &point, const DirectionType &direction, const float curvature, const PropagationDirection propDir=alongMomentum)
T x() const
Cartesian x coordinate.
constexpr bool isNotFinite(T x)
PositionTypeDouble positionInDouble(double s) const
DirectionTypeDouble directionInDouble(double s) const
Global3DPoint GlobalPoint
DirectionType direction(double s) const override
T y() const
Cartesian y coordinate.
T curvature(T InversePt, const MagneticField &field)
Basic3DVector< double > PositionTypeDouble
double smallestPathLength(const double firstPathLength, const double secondPathLength) const
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
Abs< T >::type abs(const T &t)
Basic3DVector< float > PositionType
the helix is passed to the constructor and does not appear in the interface
Basic3DVector< float > DirectionType
PositionType position(double s) const override
Basic3DVector< double > DirectionTypeDouble
float localZ(const GlobalPoint &gp) const
T z() const
Cartesian z coordinate.
const PropagationDirection thePropDir
std::pair< bool, double > pathLength(const Plane &) override
GlobalVector normalVector() const
std::pair< bool, double > solutionByDirection(const double dS1, const double dS2) 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