#include <HelixPlaneCrossing.h>
Public Types | |
typedef Basic3DVector< float > | DirectionType |
typedef Basic3DVector< float > | PositionType |
the helix is passed to the constructor and does not appear in the interface | |
Public Member Functions | |
virtual DirectionType | direction (double s) const =0 |
virtual std::pair< bool, double > | pathLength (const Plane &)=0 |
virtual PositionType | position (double s) const =0 |
Abstract interface for the crossing of a helix with a plane.
Definition at line 12 of file HelixPlaneCrossing.h.
typedef Basic3DVector<float> HelixPlaneCrossing::DirectionType |
Definition at line 22 of file HelixPlaneCrossing.h.
typedef Basic3DVector<float> HelixPlaneCrossing::PositionType |
the helix is passed to the constructor and does not appear in the interface
The types for position and direction are frame-neutral (not global, local, etc.) so this interface can be used in any frame. Of course, the helix and the plane must be defined in the same frame, which is also the frame of the result.
Definition at line 21 of file HelixPlaneCrossing.h.
virtual DirectionType HelixPlaneCrossing::direction | ( | double | s | ) | const [pure virtual] |
Returns the direction along the helix that corresponds to path length "s" from the starting point. As for position, the direction of the crossing with a plane (if it exists!) is given by direction( pathLength( plane)).
Implemented in HelixArbitraryPlaneCrossing, HelixArbitraryPlaneCrossing2Order, HelixBarrelPlaneCrossingByCircle, and HelixForwardPlaneCrossing.
Referenced by AnalyticalPropagator::propagateWithHelixCrossing().
virtual std::pair<bool,double> HelixPlaneCrossing::pathLength | ( | const Plane & | ) | [pure virtual] |
Propagation status (true if valid) and (signed) path length along the helix from the starting point to the plane. The starting point is given in the constructor.
Implemented in HelixArbitraryPlaneCrossing, HelixArbitraryPlaneCrossing2Order, HelixBarrelPlaneCrossingByCircle, and HelixForwardPlaneCrossing.
Referenced by AnalyticalPropagator::propagateWithHelixCrossing().
virtual PositionType HelixPlaneCrossing::position | ( | double | s | ) | const [pure virtual] |
Returns the position along the helix that corresponds to path length "s" from the starting point. If s is obtained from the pathLength method the position is the destination point, i.e. the position of the crossing with a plane (if it exists!) is given by position( pathLength( plane)).
Implemented in HelixArbitraryPlaneCrossing, HelixArbitraryPlaneCrossing2Order, HelixBarrelPlaneCrossingByCircle, and HelixForwardPlaneCrossing.
Referenced by AnalyticalPropagator::propagateWithHelixCrossing().