MarlinUtil  1.12.1
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
SimpleHelix Class Reference

Simple helix trajectory. More...

#include <SimpleHelix.h>

Inheritance diagram for SimpleHelix:
Trajectory

Public Member Functions

 SimpleHelix (double d0, double phi0, double omega, double z0, double tanLambda, LCVector3D referencePoint, LCErrorMatrix *errors=0)
 Construct Helix from canonical parameters.
 
virtual LCVector3D getPosition (double s, LCErrorMatrix *errors=0) const
 Position at path length s - s==0 corresponds to P.C.A to the origin. More...
 
virtual LCVector3D getDirection (double s, LCErrorMatrix *errors=0) const
 Direction at path length s, i.e. More...
 
virtual LCErrorMatrix getCovarianceMatrix (double s) const
 Full covariance Matrix of x,y,z,px,py,pz. More...
 
virtual double getPathAt (const LCVector3D position) const
 Pathlength at point on trajectory closest to given position. More...
 
virtual double getRadius () const
 get the radius of the helix.
 
virtual double getIntersectionWithPlane (LCPlane3D p, bool &pointExists) const
 Pathlength at closest intersection point with plane - undefined if pointExists==false.
 
virtual double getIntersectionWithCylinder (const LCCylinder &cylinder, bool &pointExists) const
 Pathlength at closest intersection point with cylinder - undefined if pointExists==false. More...
 
virtual double getStart () const
 Pathlength at the start and end point of the trajectory.
 
virtual double getEnd () const
 
virtual bool setStart (double s)
 Set pathlength at the start and end point of the trajectory. More...
 
virtual bool setEnd (double s)
 
virtual bool setStartEnd (double start, double end)
 
virtual void printProperties ()
 

Protected Member Functions

virtual void init ()
 
virtual double getCentreX () const
 
virtual double getCentreY () const
 
virtual double getWindingLength () const
 
virtual double getPitch ()
 

Protected Attributes

double _d0
 
double _phi0
 
double _omega
 
double _z0
 
double _tanLambda
 
double _helixStart
 
double _helixEnd
 
LCVector3D _reference
 
LCErrorMatrix * _errors
 

Static Protected Attributes

static const char * _names []
 
static const double _a = 2.99792458E-4
 
static const double _pi = M_PI
 

Detailed Description

Simple helix trajectory.

Author
T.Kraemer, DESY
Version
Id:
SimpleHelix.h,v 1.7 2007-06-20 18:47:25 samson Exp

Member Function Documentation

LCErrorMatrix SimpleHelix::getCovarianceMatrix ( double  s) const
virtual

Full covariance Matrix of x,y,z,px,py,pz.

Parameters
spath length

Implements Trajectory.

LCVector3D SimpleHelix::getDirection ( double  s,
LCErrorMatrix *  errors = 0 
) const
virtual

Direction at path length s, i.e.

(dx/ds,dy/ds,dz/ds)

Parameters
spath length
errorsreturn argument - not computed if NULL

Implements Trajectory.

double SimpleHelix::getIntersectionWithCylinder ( const LCCylinder cylinder,
bool &  pointExists 
) const
virtual

Pathlength at closest intersection point with cylinder - undefined if pointExists==false.

Parameters
cylindercylinder object to intersect with

Implements Trajectory.

References LCCylinder::distance(), LCLine3D::distance(), LCCylinder::endPoint(), getPosition(), getRadius(), LCCylinder::length(), LCLine3D::position(), LCLine3D::projectPoint(), LCCylinder::radius(), and LCCylinder::startPoint().

double SimpleHelix::getPathAt ( const LCVector3D  position) const
virtual

Pathlength at point on trajectory closest to given position.

In order to get the distance use for example:
LCVector3D pt = t.getPosition( t.getPathAtClosestPoint( p ) ) ;
double d = LCVector3D( pt - p ).mag() ;

int nSteps = 100;

Implements Trajectory.

References getPosition().

LCVector3D SimpleHelix::getPosition ( double  s,
LCErrorMatrix *  errors = 0 
) const
virtual

Position at path length s - s==0 corresponds to P.C.A to the origin.

Parameters
spath length
errorsreturn argument - not computed if NULL

Implements Trajectory.

Referenced by getIntersectionWithCylinder(), getIntersectionWithPlane(), and getPathAt().

bool SimpleHelix::setStart ( double  s)
virtual

Set pathlength at the start and end point of the trajectory.

Parameters
startpathlength of start point
endpathlength of end point

The documentation for this class was generated from the following files: