#include <HelixBarrelCylinderCrossing.h>
Public Types | |
typedef GlobalVector | DirectionType |
typedef Basic2DVector< TmpType > | Point |
typedef GlobalPoint | PositionType |
enum | Solution { bothSol, bestSol, onlyPos } |
typedef double | TmpType |
typedef Basic2DVector< TmpType > | Vector |
Public Member Functions | |
DirectionType | direction () const |
bool | hasSolution () const |
HelixBarrelCylinderCrossing (const GlobalPoint &startingPos, const GlobalVector &startingDir, double rho, PropagationDirection propDir, const Cylinder &cyl, Solution sol=bothSol) | |
double | pathLength () const |
PositionType | position () const |
PositionType | position1 () const |
Method to access separately each solution of the helix-cylinder crossing equations. More... | |
PositionType | position2 () const |
Method to access separately each solution of the helix-cylinder crossing equations. More... | |
Private Member Functions | |
std::pair< Vector, int > | chooseSolution (const Point &p1, const Point &p2, const PositionType &startingPos, const DirectionType &startingDir, PropagationDirection propDir) |
Private Attributes | |
DirectionType | theDir |
PositionType | thePos |
PositionType | thePos1 |
PositionType | thePos2 |
double | theS |
bool | theSolExists |
Calculates the crossing of a helix with a barrel cylinder.
Definition at line 16 of file HelixBarrelCylinderCrossing.h.
Definition at line 27 of file HelixBarrelCylinderCrossing.h.
Definition at line 22 of file HelixBarrelCylinderCrossing.h.
Definition at line 26 of file HelixBarrelCylinderCrossing.h.
typedef double HelixBarrelCylinderCrossing::TmpType |
Definition at line 21 of file HelixBarrelCylinderCrossing.h.
Definition at line 23 of file HelixBarrelCylinderCrossing.h.
Enumerator | |
---|---|
bothSol | |
bestSol | |
onlyPos |
Definition at line 19 of file HelixBarrelCylinderCrossing.h.
HelixBarrelCylinderCrossing::HelixBarrelCylinderCrossing | ( | const GlobalPoint & | startingPos, |
const GlobalVector & | startingDir, | ||
double | rho, | ||
PropagationDirection | propDir, | ||
const Cylinder & | cyl, | ||
Solution | sol = bothSol |
||
) |
Definition at line 16 of file HelixBarrelCylinderCrossing.cc.
References funct::abs(), alongMomentum, bothSol, funct::C, chooseSolution(), Vispa.Plugins.EdmBrowser.EdmDataAccessor::eq(), F(), f, RealQuadEquation::first, RealQuadEquation::hasSolution, PV3DBase< T, PVType, FrameType >::mag(), Basic2DVector< T >::mag(), onlyPos, p2, StraightLineCylinderCrossing::pathLength(), PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::perp2(), RecoTauCleanerPlugins::pt, dttmaxenums::R, Cylinder::radius(), rho, RealQuadEquation::second, mathSSE::sqrt(), theDir, thePos, thePos1, thePos2, theS, theSolExists, tmp, Surface::toGlobal(), GloballyPositioned< T >::toLocal(), PV3DBase< T, PVType, FrameType >::x(), Basic2DVector< T >::x(), PV3DBase< T, PVType, FrameType >::y(), Basic2DVector< T >::y(), and PV3DBase< T, PVType, FrameType >::z().
|
private |
Definition at line 143 of file HelixBarrelCylinderCrossing.cc.
References alongMomentum, anyDirection, Basic2DVector< T >::mag2(), theSolExists, PV3DBase< T, PVType, FrameType >::x(), Basic2DVector< T >::x(), PV3DBase< T, PVType, FrameType >::y(), and Basic2DVector< T >::y().
Referenced by HelixBarrelCylinderCrossing().
|
inline |
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 cylinder (if it exists!) is given by direction( pathLength( cylinder)).
Definition at line 62 of file HelixBarrelCylinderCrossing.h.
References theDir.
Referenced by TIBRing::computeCrossings().
|
inline |
Definition at line 34 of file HelixBarrelCylinderCrossing.h.
References theSolExists.
Referenced by TBLayer::computeCrossings(), and TIBRing::computeCrossings().
|
inline |
Propagation status (true if valid) and (signed) path length along the helix from the starting point to the cylinder. The starting point and the cylinder are given in the constructor.
Definition at line 40 of file HelixBarrelCylinderCrossing.h.
References theS.
|
inline |
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 cylinder (if it exists!) is given by position( pathLength( cylinder)).
Definition at line 48 of file HelixBarrelCylinderCrossing.h.
References thePos.
Referenced by TBLayer::computeCrossings(), and TIBRing::computeCrossings().
|
inline |
Method to access separately each solution of the helix-cylinder crossing equations.
Definition at line 51 of file HelixBarrelCylinderCrossing.h.
References thePos1.
|
inline |
Method to access separately each solution of the helix-cylinder crossing equations.
Definition at line 54 of file HelixBarrelCylinderCrossing.h.
References thePos2.
|
private |
Definition at line 67 of file HelixBarrelCylinderCrossing.h.
Referenced by direction(), and HelixBarrelCylinderCrossing().
|
private |
Definition at line 66 of file HelixBarrelCylinderCrossing.h.
Referenced by HelixBarrelCylinderCrossing(), and position().
|
private |
Definition at line 72 of file HelixBarrelCylinderCrossing.h.
Referenced by HelixBarrelCylinderCrossing(), and position1().
|
private |
Definition at line 73 of file HelixBarrelCylinderCrossing.h.
Referenced by HelixBarrelCylinderCrossing(), and position2().
|
private |
Definition at line 68 of file HelixBarrelCylinderCrossing.h.
Referenced by HelixBarrelCylinderCrossing(), and pathLength().
|
private |
Definition at line 69 of file HelixBarrelCylinderCrossing.h.
Referenced by chooseSolution(), hasSolution(), and HelixBarrelCylinderCrossing().