#include <IterativeHelixExtrapolatorToLine.h>
Public Member Functions | |
DirectionType | direction (double s) const override |
DirectionTypeDouble | directionInDouble (double s) const |
IterativeHelixExtrapolatorToLine (const PositionType &point, const DirectionType &direction, const float curvature, const PropagationDirection propDir=anyDirection) | |
std::pair< bool, double > | pathLength (const GlobalPoint &point) const override |
std::pair< bool, double > | pathLength (const Line &line) const override |
PositionType | position (double s) const override |
PositionTypeDouble | positionInDouble (double s) const |
~IterativeHelixExtrapolatorToLine () override | |
Public Member Functions inherited from HelixLineExtrapolation | |
virtual | ~HelixLineExtrapolation ()=default |
Private Member Functions | |
template<class T > | |
std::pair< bool, double > | genericPathLength (const T &object) const |
common functionality for extrapolation to line or point More... | |
Private Attributes | |
double | theCachedCDPhi |
double | theCachedDPhi |
double | theCachedS |
double | theCachedSDPhi |
double | theCosPhi0 |
double | theCosTheta |
const PropagationDirection | thePropDir |
HelixExtrapolatorToLine2Order | theQuadraticSolutionFromStart |
const double | theRho |
double | theSinPhi0 |
double | theSinTheta |
const double | theX0 |
const double | theY0 |
const double | theZ0 |
Additional Inherited Members | |
Public Types inherited from HelixLineExtrapolation | |
typedef Basic3DVector< float > | DirectionType |
typedef Basic3DVector< double > | DirectionTypeDouble |
typedef Basic3DVector< float > | PositionType |
typedef Basic3DVector< double > | PositionTypeDouble |
Calculates closest approach of a helix to a line or a point by iterative use of a 2nd order expansion of the helix.
Definition at line 13 of file IterativeHelixExtrapolatorToLine.h.
IterativeHelixExtrapolatorToLine::IterativeHelixExtrapolatorToLine | ( | const PositionType & | point, |
const DirectionType & | direction, | ||
const float | curvature, | ||
const PropagationDirection | propDir = anyDirection |
||
) |
Constructor using point, direction and (transverse!) curvature.
Definition at line 4 of file IterativeHelixExtrapolatorToLine.cc.
References direction(), AlCaHLTBitMon_ParallelJobs::p, DiDispStaMuonMonitor_cfi::pt, multPhiCorr_741_25nsDY_cfi::px, multPhiCorr_741_25nsDY_cfi::py, mathSSE::sqrt(), theCosPhi0, theCosTheta, theSinPhi0, theSinTheta, Basic3DVector< T >::x(), Basic3DVector< T >::y(), and Basic3DVector< T >::z().
|
inlineoverride |
Definition at line 22 of file IterativeHelixExtrapolatorToLine.h.
|
overridevirtual |
Direction at pathlength s from the starting point.
Implements HelixLineExtrapolation.
Definition at line 174 of file IterativeHelixExtrapolatorToLine.cc.
References directionInDouble(), and alignCSCRings::s.
Referenced by IterativeHelixExtrapolatorToLine(), AnalyticalImpactPointExtrapolator::propagateWithHelix(), and AnalyticalTrajectoryExtrapolatorToLine::propagateWithHelix().
HelixLineExtrapolation::DirectionTypeDouble IterativeHelixExtrapolatorToLine::directionInDouble | ( | double | s | ) | const |
Direction at pathlength s from the starting point.
Definition at line 184 of file IterativeHelixExtrapolatorToLine.cc.
References funct::cos(), HelixExtrapolatorToLine2Order::directionInDouble(), MillePedeFileConverter_cfg::e, alignCSCRings::s, funct::sin(), theCachedCDPhi, theCachedDPhi, theCachedS, theCachedSDPhi, theCosPhi0, theCosTheta, theQuadraticSolutionFromStart, theRho, theSinPhi0, and theSinTheta.
Referenced by direction(), and genericPathLength().
|
private |
common functionality for extrapolation to line or point
Definition at line 53 of file IterativeHelixExtrapolatorToLine.cc.
References alongMomentum, anyDirection, directionInDouble(), dqmdumpme::first, align_cfg::iteration, HLT_2023v11_cff::maxIterations, oppositeToMomentum, HelixExtrapolatorToLine2Order::pathLength(), positionInDouble(), theCosPhi0, theCosTheta, thePropDir, theQuadraticSolutionFromStart, theRho, theSinPhi0, theSinTheta, theX0, theY0, theZ0, Basic3DVector< T >::x(), Basic3DVector< T >::y(), and Basic3DVector< T >::z().
Referenced by pathLength().
|
overridevirtual |
Propagation status (true if valid) and (signed) path length along the helix from the starting point to the closest approach. to the point. The starting point is given in the constructor.
Implements HelixLineExtrapolation.
Definition at line 37 of file IterativeHelixExtrapolatorToLine.cc.
References genericPathLength(), and point.
Referenced by AnalyticalImpactPointExtrapolator::propagateWithHelix(), and AnalyticalTrajectoryExtrapolatorToLine::propagateWithHelix().
|
overridevirtual |
Propagation status (true if valid) and (signed) path length along the helix from the starting point to the closest approach to the line. The starting point is given in the constructor.
Implements HelixLineExtrapolation.
Definition at line 45 of file IterativeHelixExtrapolatorToLine.cc.
References genericPathLength(), and mps_splice::line.
|
overridevirtual |
Position at pathlength s from the starting point.
Implements HelixLineExtrapolation.
Definition at line 128 of file IterativeHelixExtrapolatorToLine.cc.
References positionInDouble(), and alignCSCRings::s.
Referenced by AnalyticalImpactPointExtrapolator::propagateWithHelix(), and AnalyticalTrajectoryExtrapolatorToLine::propagateWithHelix().
HelixLineExtrapolation::PositionTypeDouble IterativeHelixExtrapolatorToLine::positionInDouble | ( | double | s | ) | const |
Position at pathlength s from the starting point.
Definition at line 136 of file IterativeHelixExtrapolatorToLine.cc.
References funct::cos(), MillePedeFileConverter_cfg::e, HelixExtrapolatorToLine2Order::positionInDouble(), alignCSCRings::s, funct::sin(), theCachedCDPhi, theCachedDPhi, theCachedS, theCachedSDPhi, theCosPhi0, theCosTheta, theQuadraticSolutionFromStart, theRho, theSinPhi0, theSinTheta, theX0, theY0, and theZ0.
Referenced by genericPathLength(), and position().
|
mutableprivate |
Definition at line 70 of file IterativeHelixExtrapolatorToLine.h.
Referenced by directionInDouble(), and positionInDouble().
|
mutableprivate |
Definition at line 68 of file IterativeHelixExtrapolatorToLine.h.
Referenced by directionInDouble(), and positionInDouble().
|
mutableprivate |
Definition at line 67 of file IterativeHelixExtrapolatorToLine.h.
Referenced by directionInDouble(), and positionInDouble().
|
mutableprivate |
Definition at line 69 of file IterativeHelixExtrapolatorToLine.h.
Referenced by directionInDouble(), and positionInDouble().
|
private |
Definition at line 59 of file IterativeHelixExtrapolatorToLine.h.
Referenced by directionInDouble(), genericPathLength(), IterativeHelixExtrapolatorToLine(), and positionInDouble().
|
private |
Definition at line 60 of file IterativeHelixExtrapolatorToLine.h.
Referenced by directionInDouble(), genericPathLength(), IterativeHelixExtrapolatorToLine(), and positionInDouble().
|
private |
Definition at line 65 of file IterativeHelixExtrapolatorToLine.h.
Referenced by genericPathLength().
|
private |
Definition at line 63 of file IterativeHelixExtrapolatorToLine.h.
Referenced by directionInDouble(), genericPathLength(), and positionInDouble().
|
private |
Definition at line 61 of file IterativeHelixExtrapolatorToLine.h.
Referenced by directionInDouble(), genericPathLength(), and positionInDouble().
|
private |
Definition at line 59 of file IterativeHelixExtrapolatorToLine.h.
Referenced by directionInDouble(), genericPathLength(), IterativeHelixExtrapolatorToLine(), and positionInDouble().
|
private |
Definition at line 60 of file IterativeHelixExtrapolatorToLine.h.
Referenced by directionInDouble(), genericPathLength(), IterativeHelixExtrapolatorToLine(), and positionInDouble().
|
private |
Definition at line 58 of file IterativeHelixExtrapolatorToLine.h.
Referenced by genericPathLength(), and positionInDouble().
|
private |
Definition at line 58 of file IterativeHelixExtrapolatorToLine.h.
Referenced by genericPathLength(), and positionInDouble().
|
private |
Definition at line 58 of file IterativeHelixExtrapolatorToLine.h.
Referenced by genericPathLength(), and positionInDouble().