CMS 3D CMS Logo

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

#include <HelixLineExtrapolation.h>

Inheritance diagram for HelixLineExtrapolation:
HelixExtrapolatorToLine2Order IterativeHelixExtrapolatorToLine

Public Types

typedef Basic3DVector< float > DirectionType
 
typedef Basic3DVector< double > DirectionTypeDouble
 
typedef Basic3DVector< float > PositionType
 
typedef Basic3DVector< double > PositionTypeDouble
 

Public Member Functions

virtual DirectionType direction (double s) const =0
 
virtual std::pair< bool, double > pathLength (const GlobalPoint &point) const =0
 
virtual std::pair< bool, double > pathLength (const Line &line) const =0
 
virtual PositionType position (double s) const =0
 
virtual ~HelixLineExtrapolation ()=default
 

Detailed Description

Abstract interface for the extrapolation of a helix to the closest approach to a line.

Definition at line 15 of file HelixLineExtrapolation.h.

Member Typedef Documentation

◆ DirectionType

Definition at line 23 of file HelixLineExtrapolation.h.

◆ DirectionTypeDouble

Definition at line 25 of file HelixLineExtrapolation.h.

◆ PositionType

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 HelixLineExtrapolation.h.

◆ PositionTypeDouble

Definition at line 24 of file HelixLineExtrapolation.h.

Constructor & Destructor Documentation

◆ ~HelixLineExtrapolation()

virtual HelixLineExtrapolation::~HelixLineExtrapolation ( )
virtualdefault

Member Function Documentation

◆ direction()

virtual DirectionType HelixLineExtrapolation::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 at the closest approach (if it exists!) is given by direction( pathLength(line) ).

Implemented in HelixExtrapolatorToLine2Order, and IterativeHelixExtrapolatorToLine.

◆ pathLength() [1/2]

virtual std::pair<bool, double> HelixLineExtrapolation::pathLength ( const GlobalPoint point) const
pure virtual

Propagation status (true if valid) and (signed) path length along the helix from the starting point to the closest approach to the point. The starting point is given in the constructor.

Implemented in HelixExtrapolatorToLine2Order, and IterativeHelixExtrapolatorToLine.

◆ pathLength() [2/2]

virtual std::pair<bool, double> HelixLineExtrapolation::pathLength ( const Line line) const
pure virtual

Propagation status (true if valid) and (signed) path length along the helix from the starting point to the closest approach to the line. The starting point is given in the constructor.

Implemented in HelixExtrapolatorToLine2Order, and IterativeHelixExtrapolatorToLine.

◆ position()

virtual PositionType HelixLineExtrapolation::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 at the closest approach (if it exists!) is given by position( pathLength(line) ).

Implemented in HelixExtrapolatorToLine2Order, and IterativeHelixExtrapolatorToLine.