#include <HelixBarrelPlaneCrossingByCircle.h>
Public Member Functions | |
DirectionType | direction (double s) const override |
HelixBarrelPlaneCrossingByCircle (const PositionType &pos, const DirectionType &dir, double rho, PropagationDirection propDir=alongMomentum) | |
HelixBarrelPlaneCrossingByCircle (const GlobalPoint &pos, const GlobalVector &dir, double rho, PropagationDirection propDir=alongMomentum) | |
std::pair< bool, double > | pathLength (const Plane &) override |
PositionType | position (double s) const override |
Public Member Functions inherited from HelixPlaneCrossing | |
virtual | ~HelixPlaneCrossing ()=default |
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 32 of file HelixBarrelPlaneCrossingByCircle.h.
HelixBarrelPlaneCrossingByCircle::HelixBarrelPlaneCrossingByCircle | ( | const PositionType & | pos, |
const DirectionType & | dir, | ||
double | rho, | ||
PropagationDirection | propDir = alongMomentum |
||
) |
Definition at line 10 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 116 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().
|
overridevirtual |
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 168 of file HelixBarrelPlaneCrossingByCircle.cc.
References funct::cos(), phi, funct::sin(), mathSSE::sqrt(), theDmag, theRho, theS, theSinTheta, theStartingDir, createJobs::tmp, useStraightLine, Basic3DVector< T >::x(), Basic3DVector< T >::y(), and Basic3DVector< T >::z().
Referenced by TSCPBuilderNoMaterial::createFTSatTransverseImpactPointCharged(), and TrackKinematicStatePropagator::propagateToTheTransversePCACharged().
|
private |
Definition at line 26 of file HelixBarrelPlaneCrossingByCircle.cc.
References Basic3DVector< T >::mag(), EcalTangentSkim_cfg::o, Basic3DVector< T >::perp(), DiDispStaMuonMonitor_cfi::pt, theCosTheta, theRho, theSinTheta, theStartingDir, theStartingPos, theXCenter, theYCenter, useStraightLine, Basic3DVector< T >::x(), Basic3DVector< T >::y(), and Basic3DVector< T >::z().
Referenced by HelixBarrelPlaneCrossingByCircle().
|
overridevirtual |
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 47 of file HelixBarrelPlaneCrossingByCircle.cc.
References MaterialEffects_cfi::A, funct::abs(), TtFullHadDaughter::B, gen::C, chooseSolution(), RealQuadEquation::first, RealQuadEquation::hasSolution, Plane::localZ(), Basic2DVector< T >::mag(), dqmiodumpmetadata::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().
|
overridevirtual |
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 149 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 50 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by chooseSolution(), and pathLength().
|
private |
Definition at line 39 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by init(), and position().
|
private |
Definition at line 46 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by chooseSolution(), pathLength(), and position().
|
private |
Definition at line 47 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by direction(), and pathLength().
|
private |
Definition at line 37 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by chooseSolution(), and pathLength().
|
private |
Definition at line 36 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by direction(), init(), pathLength(), and position().
|
private |
Definition at line 45 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by direction(), pathLength(), and position().
|
private |
Definition at line 40 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by direction(), init(), pathLength(), and position().
|
private |
Definition at line 35 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by chooseSolution(), direction(), init(), pathLength(), and position().
|
private |
Definition at line 34 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by init(), pathLength(), and position().
|
private |
Definition at line 41 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by init(), pathLength(), and position().
|
private |
Definition at line 42 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by init(), pathLength(), and position().
|
private |
Definition at line 51 of file HelixBarrelPlaneCrossingByCircle.h.
Referenced by direction(), init(), pathLength(), and position().