CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions
HelixPlaneCrossing Class Referenceabstract

#include <HelixPlaneCrossing.h>

Inheritance diagram for HelixPlaneCrossing:
HelixArbitraryPlaneCrossing HelixArbitraryPlaneCrossing2Order HelixBarrelPlaneCrossingByCircle HelixForwardPlaneCrossing

Public Types

typedef Basic3DVector< float > DirectionType
 
typedef Basic3DVector< float > PositionType
 the helix is passed to the constructor and does not appear in the interface More...
 

Public Member Functions

virtual DirectionType direction (double s) const =0
 
virtual std::pair< bool, double > pathLength (const Plane &)=0
 
virtual PositionType position (double s) const =0
 
virtual ~HelixPlaneCrossing ()=default
 

Detailed Description

Abstract interface for the crossing of a helix with a plane.

Definition at line 13 of file HelixPlaneCrossing.h.

Member Typedef Documentation

◆ DirectionType

Definition at line 23 of file HelixPlaneCrossing.h.

◆ PositionType

the helix is passed to the constructor and does not appear in the interface

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 22 of file HelixPlaneCrossing.h.

Constructor & Destructor Documentation

◆ ~HelixPlaneCrossing()

virtual HelixPlaneCrossing::~HelixPlaneCrossing ( )
virtualdefault

Member Function Documentation

◆ direction()

virtual DirectionType HelixPlaneCrossing::direction ( double  s) const
pure 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)).

Implemented in HelixArbitraryPlaneCrossing2Order, HelixForwardPlaneCrossing, HelixArbitraryPlaneCrossing, and HelixBarrelPlaneCrossingByCircle.

Referenced by AnalyticalPropagator::propagateWithHelixCrossing().

◆ pathLength()

virtual std::pair<bool, double> HelixPlaneCrossing::pathLength ( const Plane )
pure 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.

Implemented in HelixArbitraryPlaneCrossing2Order, HelixForwardPlaneCrossing, HelixArbitraryPlaneCrossing, and HelixBarrelPlaneCrossingByCircle.

Referenced by AnalyticalPropagator::propagateWithHelixCrossing().

◆ position()

virtual PositionType HelixPlaneCrossing::position ( double  s) const
pure 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)).

Implemented in HelixArbitraryPlaneCrossing2Order, HelixForwardPlaneCrossing, HelixArbitraryPlaneCrossing, and HelixBarrelPlaneCrossingByCircle.

Referenced by AnalyticalPropagator::propagateWithHelixCrossing().