CMS 3D CMS Logo

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

#include <HelixArbitraryPlaneCrossing.h>

Inheritance diagram for HelixArbitraryPlaneCrossing:
HelixPlaneCrossing

Public Types

typedef Basic3DVector< double > DirectionTypeDouble
 
typedef Basic3DVector< double > PositionTypeDouble
 
- 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...
 

Public Member Functions

virtual DirectionType direction (double s) const
 
DirectionTypeDouble directionInDouble (double s) const
 
 HelixArbitraryPlaneCrossing (const PositionType &point, const DirectionType &direction, const float curvature, const PropagationDirection propDir=alongMomentum)
 
virtual std::pair< bool, double > pathLength (const Plane &plane)
 
virtual PositionType position (double s) const
 
PositionTypeDouble positionInDouble (double s) const
 
virtual ~HelixArbitraryPlaneCrossing ()
 

Private Member Functions

bool notAtSurface (const Plane &, const PositionTypeDouble &, const float) const
 

Private Attributes

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

Static Private Attributes

static const float theMaxDistToPlane = 1.e-4f
 
static const float theNumericalPrecision = 5.e-7f
 

Detailed Description

Calculates intersections of a helix with planes of any orientation.

Definition at line 10 of file HelixArbitraryPlaneCrossing.h.

Member Typedef Documentation

Definition at line 38 of file HelixArbitraryPlaneCrossing.h.

Definition at line 37 of file HelixArbitraryPlaneCrossing.h.

Constructor & Destructor Documentation

HelixArbitraryPlaneCrossing::HelixArbitraryPlaneCrossing ( const PositionType point,
const DirectionType direction,
const float  curvature,
const PropagationDirection  propDir = alongMomentum 
)

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

Definition at line 33 of file HelixArbitraryPlaneCrossing.cc.

virtual HelixArbitraryPlaneCrossing::~HelixArbitraryPlaneCrossing ( )
inlinevirtual

Definition at line 19 of file HelixArbitraryPlaneCrossing.h.

19 {}

Member Function Documentation

HelixPlaneCrossing::DirectionType HelixArbitraryPlaneCrossing::direction ( double  s) const
virtual

Direction at pathlength s from the starting point.

Implements HelixPlaneCrossing.

Definition at line 200 of file HelixArbitraryPlaneCrossing.cc.

HelixArbitraryPlaneCrossing::DirectionTypeDouble HelixArbitraryPlaneCrossing::directionInDouble ( double  s) const

Direction at pathlength s from the starting point.

Definition at line 209 of file HelixArbitraryPlaneCrossing.cc.

bool HelixArbitraryPlaneCrossing::notAtSurface ( const Plane plane,
const PositionTypeDouble point,
const float  maxDist 
) const
inlineprivate

Iteration control: check for significant distance to plane.

Definition at line 232 of file HelixArbitraryPlaneCrossing.cc.

std::pair< bool, double > HelixArbitraryPlaneCrossing::pathLength ( const Plane plane)
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 67 of file HelixArbitraryPlaneCrossing.cc.

Referenced by PathToPlane2Order::operator()().

HelixPlaneCrossing::PositionType HelixArbitraryPlaneCrossing::position ( double  s) const
virtual

Position at pathlength s from the starting point.

Implements HelixPlaneCrossing.

Definition at line 153 of file HelixArbitraryPlaneCrossing.cc.

HelixArbitraryPlaneCrossing::PositionTypeDouble HelixArbitraryPlaneCrossing::positionInDouble ( double  s) const

Position at pathlength s from the starting point.

Definition at line 162 of file HelixArbitraryPlaneCrossing.cc.

Member Data Documentation

double HelixArbitraryPlaneCrossing::theCachedCDPhi
mutableprivate

Definition at line 69 of file HelixArbitraryPlaneCrossing.h.

double HelixArbitraryPlaneCrossing::theCachedDPhi
mutableprivate

Definition at line 67 of file HelixArbitraryPlaneCrossing.h.

double HelixArbitraryPlaneCrossing::theCachedS
mutableprivate

Definition at line 66 of file HelixArbitraryPlaneCrossing.h.

double HelixArbitraryPlaneCrossing::theCachedSDPhi
mutableprivate

Definition at line 68 of file HelixArbitraryPlaneCrossing.h.

double HelixArbitraryPlaneCrossing::theCosPhi0
private

Definition at line 60 of file HelixArbitraryPlaneCrossing.h.

double HelixArbitraryPlaneCrossing::theCosTheta
private

Definition at line 61 of file HelixArbitraryPlaneCrossing.h.

const float HelixArbitraryPlaneCrossing::theMaxDistToPlane = 1.e-4f
staticprivate

Definition at line 72 of file HelixArbitraryPlaneCrossing.h.

const float HelixArbitraryPlaneCrossing::theNumericalPrecision = 5.e-7f
staticprivate

Definition at line 71 of file HelixArbitraryPlaneCrossing.h.

const PropagationDirection HelixArbitraryPlaneCrossing::thePropDir
private

Definition at line 64 of file HelixArbitraryPlaneCrossing.h.

HelixArbitraryPlaneCrossing2Order HelixArbitraryPlaneCrossing::theQuadraticCrossingFromStart
private

Definition at line 56 of file HelixArbitraryPlaneCrossing.h.

const double HelixArbitraryPlaneCrossing::theRho
private

Definition at line 62 of file HelixArbitraryPlaneCrossing.h.

double HelixArbitraryPlaneCrossing::theSinPhi0
private

Definition at line 60 of file HelixArbitraryPlaneCrossing.h.

double HelixArbitraryPlaneCrossing::theSinTheta
private

Definition at line 61 of file HelixArbitraryPlaneCrossing.h.

const double HelixArbitraryPlaneCrossing::theX0
private

Definition at line 59 of file HelixArbitraryPlaneCrossing.h.

const double HelixArbitraryPlaneCrossing::theY0
private

Definition at line 59 of file HelixArbitraryPlaneCrossing.h.

const double HelixArbitraryPlaneCrossing::theZ0
private

Definition at line 59 of file HelixArbitraryPlaneCrossing.h.