CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
IterativeHelixExtrapolatorToLine Class Referencefinal

#include <IterativeHelixExtrapolatorToLine.h>

Inheritance diagram for IterativeHelixExtrapolatorToLine:
HelixLineExtrapolation

Public Member Functions

virtual DirectionType direction (double s) const
 
DirectionTypeDouble directionInDouble (double s) const
 
 IterativeHelixExtrapolatorToLine (const PositionType &point, const DirectionType &direction, const float curvature, const PropagationDirection propDir=anyDirection)
 
virtual std::pair< bool, double > pathLength (const GlobalPoint &point) const
 
virtual std::pair< bool, double > pathLength (const Line &line) const
 
virtual PositionType position (double s) const
 
PositionTypeDouble positionInDouble (double s) const
 
virtual ~IterativeHelixExtrapolatorToLine ()
 

Private Member Functions

template<class T >
std::pair< bool, double > genericPathLength (const T &object) const
 common functionality for extrapolation to line or point More...
 

Private Attributes

double theCachedCDPhi
 
double theCachedDPhi
 
double theCachedS
 
double theCachedSDPhi
 
double theCosPhi0
 
double theCosTheta
 
const PropagationDirection thePropDir
 
HelixExtrapolatorToLine2Order theQuadraticSolutionFromStart
 
const double theRho
 
double theSinPhi0
 
double theSinTheta
 
const double theX0
 
const double theY0
 
const double theZ0
 

Additional Inherited Members

- Public Types inherited from HelixLineExtrapolation
typedef Basic3DVector< float > DirectionType
 
typedef Basic3DVector< double > DirectionTypeDouble
 
typedef Basic3DVector< float > PositionType
 
typedef Basic3DVector< double > PositionTypeDouble
 

Detailed Description

Calculates closest approach of a helix to a line or a point by iterative use of a 2nd order expansion of the helix.

Definition at line 13 of file IterativeHelixExtrapolatorToLine.h.

Constructor & Destructor Documentation

IterativeHelixExtrapolatorToLine::IterativeHelixExtrapolatorToLine ( const PositionType point,
const DirectionType direction,
const float  curvature,
const PropagationDirection  propDir = anyDirection 
)

Constructor using point, direction and (transverse!) curvature.

Definition at line 5 of file IterativeHelixExtrapolatorToLine.cc.

virtual IterativeHelixExtrapolatorToLine::~IterativeHelixExtrapolatorToLine ( )
inlinevirtual

Definition at line 22 of file IterativeHelixExtrapolatorToLine.h.

22 {}

Member Function Documentation

HelixLineExtrapolation::DirectionType IterativeHelixExtrapolatorToLine::direction ( double  s) const
virtual

Direction at pathlength s from the starting point.

Implements HelixLineExtrapolation.

Definition at line 183 of file IterativeHelixExtrapolatorToLine.cc.

Referenced by AnalyticalImpactPointExtrapolator::propagateWithHelix(), and AnalyticalTrajectoryExtrapolatorToLine::propagateWithHelix().

HelixLineExtrapolation::DirectionTypeDouble IterativeHelixExtrapolatorToLine::directionInDouble ( double  s) const

Direction at pathlength s from the starting point.

Definition at line 194 of file IterativeHelixExtrapolatorToLine.cc.

template<class T >
std::pair< bool, double > IterativeHelixExtrapolatorToLine::genericPathLength ( const T object) const
private

common functionality for extrapolation to line or point

Definition at line 58 of file IterativeHelixExtrapolatorToLine.cc.

std::pair< bool, double > IterativeHelixExtrapolatorToLine::pathLength ( const GlobalPoint point) const
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.

Implements HelixLineExtrapolation.

Definition at line 40 of file IterativeHelixExtrapolatorToLine.cc.

Referenced by AnalyticalImpactPointExtrapolator::propagateWithHelix(), and AnalyticalTrajectoryExtrapolatorToLine::propagateWithHelix().

std::pair< bool, double > IterativeHelixExtrapolatorToLine::pathLength ( const Line line) const
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.

Implements HelixLineExtrapolation.

Definition at line 48 of file IterativeHelixExtrapolatorToLine.cc.

HelixLineExtrapolation::PositionType IterativeHelixExtrapolatorToLine::position ( double  s) const
virtual
HelixLineExtrapolation::PositionTypeDouble IterativeHelixExtrapolatorToLine::positionInDouble ( double  s) const

Position at pathlength s from the starting point.

Definition at line 144 of file IterativeHelixExtrapolatorToLine.cc.

Member Data Documentation

double IterativeHelixExtrapolatorToLine::theCachedCDPhi
mutableprivate

Definition at line 70 of file IterativeHelixExtrapolatorToLine.h.

double IterativeHelixExtrapolatorToLine::theCachedDPhi
mutableprivate

Definition at line 68 of file IterativeHelixExtrapolatorToLine.h.

double IterativeHelixExtrapolatorToLine::theCachedS
mutableprivate

Definition at line 67 of file IterativeHelixExtrapolatorToLine.h.

double IterativeHelixExtrapolatorToLine::theCachedSDPhi
mutableprivate

Definition at line 69 of file IterativeHelixExtrapolatorToLine.h.

double IterativeHelixExtrapolatorToLine::theCosPhi0
private

Definition at line 59 of file IterativeHelixExtrapolatorToLine.h.

double IterativeHelixExtrapolatorToLine::theCosTheta
private

Definition at line 60 of file IterativeHelixExtrapolatorToLine.h.

const PropagationDirection IterativeHelixExtrapolatorToLine::thePropDir
private

Definition at line 65 of file IterativeHelixExtrapolatorToLine.h.

HelixExtrapolatorToLine2Order IterativeHelixExtrapolatorToLine::theQuadraticSolutionFromStart
private

Definition at line 63 of file IterativeHelixExtrapolatorToLine.h.

const double IterativeHelixExtrapolatorToLine::theRho
private

Definition at line 61 of file IterativeHelixExtrapolatorToLine.h.

double IterativeHelixExtrapolatorToLine::theSinPhi0
private

Definition at line 59 of file IterativeHelixExtrapolatorToLine.h.

double IterativeHelixExtrapolatorToLine::theSinTheta
private

Definition at line 60 of file IterativeHelixExtrapolatorToLine.h.

const double IterativeHelixExtrapolatorToLine::theX0
private

Definition at line 58 of file IterativeHelixExtrapolatorToLine.h.

const double IterativeHelixExtrapolatorToLine::theY0
private

Definition at line 58 of file IterativeHelixExtrapolatorToLine.h.

const double IterativeHelixExtrapolatorToLine::theZ0
private

Definition at line 58 of file IterativeHelixExtrapolatorToLine.h.