#include <StraightLinePlaneCrossing.h>
Public Types | |
typedef Basic3DVector< float > | DirectionType |
typedef Basic3DVector< float > | PositionType |
Public Member Functions | |
std::pair< bool, double > | pathLength (const Plane &plane) const |
PositionType | position (double s) const |
std::pair< bool, PositionType > | position (const Plane &plane) const |
StraightLinePlaneCrossing (const PositionType &point, const DirectionType &momentum, const PropagationDirection propDir=alongMomentum) | |
~StraightLinePlaneCrossing () | |
Private Types | |
typedef Basic3DVector< float > | DirectionTypeDouble |
typedef Basic3DVector< float > | PositionTypeDouble |
Private Attributes | |
const PositionTypeDouble | theP0 |
const PropagationDirection | thePropDir |
const PositionTypeDouble | theX0 |
Calculates intersections of a line with a plane.
Definition at line 14 of file StraightLinePlaneCrossing.h.
typedef Basic3DVector<float> StraightLinePlaneCrossing::DirectionType |
Definition at line 22 of file StraightLinePlaneCrossing.h.
|
private |
Definition at line 53 of file StraightLinePlaneCrossing.h.
typedef Basic3DVector<float> StraightLinePlaneCrossing::PositionType |
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 StraightLinePlaneCrossing.h.
|
private |
Definition at line 52 of file StraightLinePlaneCrossing.h.
StraightLinePlaneCrossing::StraightLinePlaneCrossing | ( | const PositionType & | point, |
const DirectionType & | momentum, | ||
const PropagationDirection | propDir = alongMomentum |
||
) |
Constructor using point and momentum.
Definition at line 8 of file StraightLinePlaneCrossing.cc.
|
inline |
Definition at line 31 of file StraightLinePlaneCrossing.h.
std::pair< bool, double > StraightLinePlaneCrossing::pathLength | ( | const Plane & | plane | ) | const |
Propagation status (true if valid) and (signed) path length along the helix from the starting point to the plane.
Definition at line 21 of file StraightLinePlaneCrossing.cc.
References alongMomentum, Basic3DVector< T >::dot(), Plane::normalVector(), oppositeToMomentum, GloballyPositioned< T >::position(), theP0, thePropDir, and theX0.
Referenced by NavPlane::distanceAlongLine(), HelixBarrelPlaneCrossingByCircle::pathLength(), position(), and RKPropagatorInS::propagateParametersOnPlane().
|
inline |
Position at pathlength s from the starting point.
Definition at line 40 of file StraightLinePlaneCrossing.h.
Referenced by position(), CtfSpecialSeedGenerator::postCheck(), and RKPropagatorInS::propagateParametersOnPlane().
std::pair< bool, StraightLinePlaneCrossing::PositionType > StraightLinePlaneCrossing::position | ( | const Plane & | plane | ) | const |
Simplified interface in case the path length is not needed
Definition at line 46 of file StraightLinePlaneCrossing.cc.
References pathLength(), and position().
|
private |
Definition at line 56 of file StraightLinePlaneCrossing.h.
Referenced by pathLength(), and position().
|
private |
Definition at line 57 of file StraightLinePlaneCrossing.h.
Referenced by pathLength().
|
private |
Definition at line 55 of file StraightLinePlaneCrossing.h.
Referenced by pathLength(), and position().