#include <HelixForwardPlaneCrossing.h>
Public Member Functions | |
DirectionType | direction (double s) const override |
HelixForwardPlaneCrossing (const PositionType &point, const DirectionType &direction, const float curvature, const PropagationDirection propDir=alongMomentum) | |
std::pair< bool, double > | pathLength (const Plane &plane) override |
PositionType | position (double s) const override |
~HelixForwardPlaneCrossing () override | |
Public Member Functions inherited from HelixPlaneCrossing | |
virtual | ~HelixPlaneCrossing ()=default |
Private Types | |
typedef Basic3DVector< double > | DirectionTypeDouble |
typedef Basic3DVector< double > | PositionTypeDouble |
Private Attributes | |
double | theCachedCDPhi |
double | theCachedDPhi |
double | theCachedS |
double | theCachedSDPhi |
double | theCosPhi0 |
double | theCosTheta |
const PropagationDirection | thePropDir |
const double | theRho |
double | theSinPhi0 |
double | theSinTheta |
const double | theX0 |
const double | theY0 |
const double | theZ0 |
Static Private Attributes | |
static const float | theNumericalPrecision = 5.e-7 |
Additional Inherited Members | |
Public Types inherited from HelixPlaneCrossing | |
typedef Basic3DVector< float > | DirectionType |
typedef Basic3DVector< float > | PositionType |
the helix is passed to the constructor and does not appear in the interface More... | |
Calculates intersections of a helix with planes perpendicular to the z-axis.
Definition at line 14 of file HelixForwardPlaneCrossing.h.
|
private |
Definition at line 56 of file HelixForwardPlaneCrossing.h.
|
private |
Definition at line 55 of file HelixForwardPlaneCrossing.h.
HelixForwardPlaneCrossing::HelixForwardPlaneCrossing | ( | const PositionType & | point, |
const DirectionType & | direction, | ||
const float | curvature, | ||
const PropagationDirection | propDir = alongMomentum |
||
) |
Constructor using point, direction and (transverse!) curvature.
Definition at line 6 of file HelixForwardPlaneCrossing.cc.
References fireworks::p2, mathSSE::sqrt(), theCosPhi0, theCosTheta, theSinPhi0, theSinTheta, Basic3DVector< T >::x(), Basic3DVector< T >::y(), and Basic3DVector< T >::z().
|
inlineoverride |
Definition at line 23 of file HelixForwardPlaneCrossing.h.
|
overridevirtual |
Direction at pathlength s from the starting point.
Implements HelixPlaneCrossing.
Definition at line 68 of file HelixForwardPlaneCrossing.cc.
References alignCSCRings::e, alignCSCRings::s, theCachedCDPhi, theCachedDPhi, theCachedS, theCachedSDPhi, theCosPhi0, theCosTheta, theRho, theSinPhi0, and theSinTheta.
|
inlineoverridevirtual |
Propagation status (true if valid) and (signed) path length along the helix from the starting point to the plane.
Implements HelixPlaneCrossing.
Definition at line 28 of file HelixForwardPlaneCrossing.h.
References funct::abs(), alongMomentum, edm::isNotFinite(), min(), oppositeToMomentum, GloballyPositioned< T >::position(), theCosTheta, thePropDir, theZ0, UNLIKELY, and Basic3DVector< T >::z().
Referenced by CompositeTECWedge::computeCrossings(), TIDRing::computeCrossings(), and CompositeTECPetal::computeCrossings().
|
overridevirtual |
Position at pathlength s from the starting point.
Implements HelixPlaneCrossing.
Definition at line 38 of file HelixForwardPlaneCrossing.cc.
References funct::abs(), alignCSCRings::e, class-composition::o, alignCSCRings::s, theCachedCDPhi, theCachedDPhi, theCachedS, theCachedSDPhi, theCosPhi0, theCosTheta, theRho, theSinPhi0, theSinTheta, theX0, theY0, and theZ0.
Referenced by CompositeTECWedge::computeCrossings(), TIDRing::computeCrossings(), and CompositeTECPetal::computeCrossings().
|
mutableprivate |
Definition at line 68 of file HelixForwardPlaneCrossing.h.
Referenced by direction(), and position().
|
mutableprivate |
Definition at line 66 of file HelixForwardPlaneCrossing.h.
Referenced by direction(), and position().
|
mutableprivate |
Definition at line 65 of file HelixForwardPlaneCrossing.h.
Referenced by direction(), and position().
|
mutableprivate |
Definition at line 67 of file HelixForwardPlaneCrossing.h.
Referenced by direction(), and position().
|
private |
Definition at line 59 of file HelixForwardPlaneCrossing.h.
Referenced by direction(), HelixForwardPlaneCrossing(), and position().
|
private |
Definition at line 60 of file HelixForwardPlaneCrossing.h.
Referenced by direction(), HelixForwardPlaneCrossing(), pathLength(), and position().
|
staticprivate |
Definition at line 70 of file HelixForwardPlaneCrossing.h.
|
private |
Definition at line 63 of file HelixForwardPlaneCrossing.h.
Referenced by pathLength().
|
private |
Definition at line 61 of file HelixForwardPlaneCrossing.h.
Referenced by direction(), and position().
|
private |
Definition at line 59 of file HelixForwardPlaneCrossing.h.
Referenced by direction(), HelixForwardPlaneCrossing(), and position().
|
private |
Definition at line 60 of file HelixForwardPlaneCrossing.h.
Referenced by direction(), HelixForwardPlaneCrossing(), and position().
|
private |
Definition at line 58 of file HelixForwardPlaneCrossing.h.
Referenced by position().
|
private |
Definition at line 58 of file HelixForwardPlaneCrossing.h.
Referenced by position().
|
private |
Definition at line 58 of file HelixForwardPlaneCrossing.h.
Referenced by pathLength(), and position().