#include <HelixBarrelPlaneCrossingByCircle.h>
Public Member Functions | |
virtual DirectionType | direction (double s) const |
HelixBarrelPlaneCrossingByCircle (const PositionType &pos, const DirectionType &dir, double rho, PropagationDirection propDir=alongMomentum) | |
HelixBarrelPlaneCrossingByCircle (const GlobalPoint &pos, const GlobalVector &dir, double rho, PropagationDirection propDir=alongMomentum) | |
virtual std::pair< bool, double > | pathLength (const Plane &) |
virtual PositionType | position (double s) const |
Private Types | |
typedef Basic2DVector< double > | Vector2D |
Private Member Functions | |
bool | chooseSolution (const Vector2D &d1, const Vector2D &d2) |
void | init () |
Private Attributes | |
double | theActualDir |
double | theCosTheta |
Vector2D | theD |
double | theDmag |
PropagationDirection | thePropDir |
double | theRho |
double | theS |
double | theSinTheta |
DirectionType | theStartingDir |
PositionType | theStartingPos |
double | theXCenter |
double | theYCenter |
bool | useStraightLine |
Additional Inherited Members | |
Public Types inherited from HelixPlaneCrossing | |
typedef Basic3DVector< float > | DirectionType |
typedef Basic3DVector< float > | PositionType |
the helix is passed to the constructor and does not appear in the interface More... | |
Computes the crossing of a helix with a barrel plane. Exact if the magnetic field is parallel to the plane.
Definition at line 13 of file HelixBarrelPlaneCrossingByCircle.h.
|
private |
Definition at line 34 of file HelixBarrelPlaneCrossingByCircle.h.
HelixBarrelPlaneCrossingByCircle::HelixBarrelPlaneCrossingByCircle | ( | const PositionType & | pos, |
const DirectionType & | dir, | ||
double | rho, | ||
PropagationDirection | propDir = alongMomentum |
||
) |
Definition at line 11 of file HelixBarrelPlaneCrossingByCircle.cc.
References init().
HelixBarrelPlaneCrossingByCircle::HelixBarrelPlaneCrossingByCircle | ( | const GlobalPoint & | pos, |
const GlobalVector & | dir, | ||
double | rho, | ||
PropagationDirection | propDir = alongMomentum |
||
) |
Definition at line 18 of file HelixBarrelPlaneCrossingByCircle.cc.
References init().
|
private |
Definition at line 120 of file HelixBarrelPlaneCrossingByCircle.cc.
References alongMomentum, anyDirection, Basic2DVector< T >::mag2(), mathSSE::samesign(), theActualDir, theD, thePropDir, theStartingDir, Basic2DVector< T >::x(), Basic3DVector< T >::x(), Basic2DVector< T >::y(), and Basic3DVector< T >::y().
Referenced by pathLength().
|
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)).
Implements HelixPlaneCrossing.
Definition at line 182 of file HelixBarrelPlaneCrossingByCircle.cc.
References funct::cos(), phi, funct::sin(), mathSSE::sqrt(), theDmag, theRho, theS, theSinTheta, theStartingDir, tmp, useStraightLine, Basic3DVector< T >::x(), Basic3DVector< T >::y(), and Basic3DVector< T >::z().
Referenced by TSCPBuilderNoMaterial::createFTSatTransverseImpactPointCharged(), and TrackKinematicStatePropagator::propagateToTheTransversePCACharged().
|
private |
Definition at line 24 of file HelixBarrelPlaneCrossingByCircle.cc.
References Basic3DVector< T >::mag(), connectstrParser::o, Basic3DVector< T >::perp(), EnergyCorrector::pt, theCosTheta, theRho, theSinTheta, theStartingDir, theStartingPos, theXCenter, theYCenter, useStraightLine, Basic3DVector< T >::x(), Basic3DVector< T >::y(), and Basic3DVector< T >::z().
Referenced by HelixBarrelPlaneCrossingByCircle().
|
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.
Implements HelixPlaneCrossing.
Definition at line 48 of file HelixBarrelPlaneCrossingByCircle.cc.
References funct::A, funct::abs(), funct::C, chooseSolution(), RealQuadEquation::first, RealQuadEquation::hasSolution, Plane::localZ(), Basic2DVector< T >::mag(), gen::n, Plane::normalVector(), StraightLinePlaneCrossing::pathLength(), RealQuadEquation::second, theActualDir, theD, theDmag, thePropDir, theRho, theS, theSinTheta, theStartingDir, theStartingPos, theXCenter, theYCenter, useStraightLine, PV3DBase< T, PVType, FrameType >::x(), Basic3DVector< T >::x(), PV3DBase< T, PVType, FrameType >::y(), and Basic3DVector< T >::y().
Referenced by TSCPBuilderNoMaterial::createFTSatTransverseImpactPointCharged(), TrackKinematicStatePropagator::propagateToTheTransversePCACharged(), and TrackKinematicStatePropagator::willPropagateToTheTransversePCA().
|
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)).
Implements HelixPlaneCrossing.
Definition at line 159 of file HelixBarrelPlaneCrossingByCircle.cc.
References funct::cos(), phi, funct::sin(), theCosTheta, theD, theRho, theS, theSinTheta, theStartingDir, theStartingPos, theXCenter, theYCenter, Basic3DVector< T >::unit(), useStraightLine, Basic2DVector< T >::x(), Basic3DVector< T >::x(), Basic2DVector< T >::y(), Basic3DVector< T >::y(), and Basic3DVector< T >::z().
Referenced by TSCPBuilderNoMaterial::createFTSatTransverseImpactPointCharged(), and TrackKinematicStatePropagator::propagateToTheTransversePCACharged().
|
private |
Definition at line 52 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by chooseSolution(), and pathLength().
|
private |
Definition at line 41 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by init(), and position().
|
private |
Definition at line 48 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by chooseSolution(), pathLength(), and position().
|
private |
Definition at line 49 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by direction(), and pathLength().
|
private |
Definition at line 39 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by chooseSolution(), and pathLength().
|
private |
Definition at line 38 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by direction(), init(), pathLength(), and position().
|
private |
Definition at line 47 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by direction(), pathLength(), and position().
|
private |
Definition at line 42 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by direction(), init(), pathLength(), and position().
|
private |
Definition at line 37 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by chooseSolution(), direction(), init(), pathLength(), and position().
|
private |
Definition at line 36 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by init(), pathLength(), and position().
|
private |
Definition at line 43 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by init(), pathLength(), and position().
|
private |
Definition at line 44 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by init(), pathLength(), and position().
|
private |
Definition at line 53 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by direction(), init(), pathLength(), and position().