#include <StraightLineCylinderCrossing.h>
Public Member Functions | |
std::pair< bool, double > | pathLength (const Cylinder &cyl) const |
LocalPoint | position (const double s) const |
StraightLineCylinderCrossing (const LocalPoint &startingPos, const LocalVector &startingDir, const PropagationDirection propDir=alongMomentum, double tolerance=0) | |
Private Types | |
typedef LocalVector | DirectionType |
typedef Basic2DVector< float > | DirectionType2D |
typedef LocalPoint | PositionType |
typedef Basic2DVector< float > | PositionType2D |
Private Member Functions | |
std::pair< bool, double > | chooseSolution (const double s1, const double s2) const |
Chooses the right solution w.r.t. the propagation direction. More... | |
Private Attributes | |
const DirectionType | theP0 |
const PropagationDirection | thePropDir |
double | theTolerance |
const PositionType | theX0 |
Calculates the intersection of a straight line with a barrel cylinder.
Definition at line 17 of file StraightLineCylinderCrossing.h.
|
private |
Definition at line 48 of file StraightLineCylinderCrossing.h.
|
private |
Definition at line 50 of file StraightLineCylinderCrossing.h.
|
private |
Definition at line 47 of file StraightLineCylinderCrossing.h.
|
private |
Definition at line 49 of file StraightLineCylinderCrossing.h.
StraightLineCylinderCrossing::StraightLineCylinderCrossing | ( | const LocalPoint & | startingPos, |
const LocalVector & | startingDir, | ||
const PropagationDirection | propDir = alongMomentum , |
||
double | tolerance = 0 |
||
) |
Constructor in local frame
Definition at line 11 of file StraightLineCylinderCrossing.cc.
|
private |
Chooses the right solution w.r.t. the propagation direction.
Definition at line 54 of file StraightLineCylinderCrossing.cc.
References alongMomentum, anyDirection, min(), indexGen::s2, thePropDir, and theTolerance.
Referenced by pathLength(), and position().
std::pair< bool, double > StraightLineCylinderCrossing::pathLength | ( | const Cylinder & | cyl | ) | const |
Propagation status (true if valid) and (signed) path length along the line from the starting point to the cylinder.
Definition at line 19 of file StraightLineCylinderCrossing.cc.
References chooseSolution(), Vispa.Plugins.EdmBrowser.EdmDataAccessor::eq(), dttmaxenums::R, Cylinder::radius(), theP0, theX0, PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().
Referenced by NavCylinder::distanceAlongLine(), HelixBarrelCylinderCrossing::HelixBarrelCylinderCrossing(), and RKPropagatorInS::propagateParametersOnCylinder().
|
inline |
Returns the position along the line that corresponds to path length "s" from the starting point. If s is obtained from the pathLength method the position is the intersection point with the cylinder.
Definition at line 37 of file StraightLineCylinderCrossing.h.
References chooseSolution(), indexGen::s2, theP0, and theX0.
|
private |
Definition at line 53 of file StraightLineCylinderCrossing.h.
Referenced by pathLength(), and position().
|
private |
Definition at line 54 of file StraightLineCylinderCrossing.h.
Referenced by chooseSolution().
|
private |
Definition at line 55 of file StraightLineCylinderCrossing.h.
Referenced by chooseSolution().
|
private |
Definition at line 52 of file StraightLineCylinderCrossing.h.
Referenced by pathLength(), and position().