MarlinTPC  1.2.0
Public Member Functions | Protected Attributes | List of all members
marlintpc::simpleHelix Class Reference

Simple Helix. More...

#include <SimpleHelixTrackModel.h>

Public Member Functions

 simpleHelix (const double, const double, const double, const double, const double, const double *, const double)
 Constructor.
 
 simpleHelix (const double *, const double *, const double)
 Constructor.
 
void dump () const
 Dump helix.
 
double getArcLengthXY (const double *) const
 Get (2D) arc length for given point. More...
 
void getZSDirection (double *) const
 Get ZS direction (cosLambda, sinLambda).
 
void getPosAtArcLength (const double, double *) const
 Get position (on helix) at arc length. More...
 
bool getExpectedPlanePos (const double *, const double, double &, double &, double &, double &, double &) const
 Get expected position (and direction) in plane. More...
 
TMatrixD analyticalHelixJacobian (const double, const double) const
 Get analytical helix propagator (in constant solenoidal magnetic field) More...
 
TMatrixD simplifiedHelixJacobian (const double, const double) const
 Get simplified helix propagator (in constant solenoidal magnetic field) More...
 
TMatrixD curvilinearToPerigeeJacobian () const
 Get transformation from curivilinear to perigee track parameters (at reference point) More...
 
TMatrixD perigeeToILDJacobian () const
 Get transformation from perigee to L3/ILD track parameters (at reference point) More...
 
TMatrixD perigeeToLCIOJacobian () const
 Get transformation from helix to LCIO track parameters (at reference point) More...
 
TMatrixD helixToLCIOJacobian () const
 Get transformation from helix to LCIO track parameters (at reference point) More...
 
void moveTo (const double, const double, const double, double *)
 Change reference point. More...
 
void getStateAt (const double, const double, const double, TMatrixDSym &, TVectorD &, TMatrixDSym &)
 Get state (parameters, covariance matrix) at point. More...
 

Protected Attributes

const double _xref
 X of reference point.
 
const double _yref
 Y of reference point.
 
const double _zref
 Z of reference point.
 
const double _bzc
 Z component of magnetic field (*c)
 
const double _rinv
 1/R
 
const double _phi0
 flight direction at point of closest approach (in XY)
 
const double _dca
 distance of closest approach in (XY)
 
const double _dzds
 dZ/ds
 
const double _z0
 Z position at distance of closest approach.
 
const double _xRelCenter
 XY circle parameter: X position of center / R.
 
const double _yRelCenter
 XY circle parameter: Y position of center / R.
 
const double _eps
 cut off for straight line approximation (|relevant scale / R| < _eps)
 

Detailed Description

Simple Helix.

Utilities for simple helix track model build from perigee parameters, assuming constant magnetic field in Z-direction.

Propagation and transformation jacobians according to Strandlie & Wittek (NIM A 566(2006) 687-698)

Author
C. Kleinwort, DESY (130801)

Member Function Documentation

TMatrixD marlintpc::simpleHelix::analyticalHelixJacobian ( const double  phi1,
const double  ds 
) const

Get analytical helix propagator (in constant solenoidal magnetic field)

For curvilinear track parameters (q/p,lambda,phi,x_t,y_t).

Parameters
[in]phi1azimutal direction at start point
[in]ds(3D) arc length to end point
Returns
(5*5) propagation matrix

References _bzc, _dzds, _rinv, and marlintpc::localHelixAnalyticalJacobian().

TMatrixD marlintpc::simpleHelix::curvilinearToPerigeeJacobian ( ) const

Get transformation from curivilinear to perigee track parameters (at reference point)

(q/p, lambda, phi, x_t, y_t) -> (kappa, theta, phi, epsilon, z_p)

Returns
(5*5) transformation matrix

References _bzc, _dzds, _phi0, and _rinv.

double marlintpc::simpleHelix::getArcLengthXY ( const double *  position) const

Get (2D) arc length for given point.

Arc length from dca to point on circle on intersection with line from circle center to given point

Parameters
[in]position(XY) Position
Returns
(2D) arc length from dca to point on circle

References _eps, _phi0, _rinv, _xref, _xRelCenter, _yref, and _yRelCenter.

Referenced by marlintpc::tp_PixelSegment::tp_PixelSegment().

bool marlintpc::simpleHelix::getExpectedPlanePos ( const double *  point,
const double  measPhi,
double &  xyPos,
double &  zPos,
double &  sArc,
double &  phi,
double &  lambda 
) const

Get expected position (and direction) in plane.

Plane is defined by point and direction in XY and Z axis. Intersection of circle (or straight line) and straight line in XY.

Parameters
[in]pointpoint (XYZ) (defining origin of plane)
[in]measPhimeasurement direction in (XY) plane
[out]xyPosposition in plane along (XY) measurement direction (relative to point).
[out]zPosposition in plane along Z direction (relative to point).
[out]sArcarc-length at intersection
[out]phiphi (flight direction) at intersection
[out]lambdalambda (flight direction) at intersection
Returns
success (intersection exists)

References _dca, _dzds, _eps, _phi0, _rinv, _xref, _xRelCenter, _yref, _yRelCenter, _z0, and _zref.

Referenced by marlintpc::rb_Segment::match().

void marlintpc::simpleHelix::getPosAtArcLength ( const double  sArc,
double *  position 
) const

Get position (on helix) at arc length.

Parameters
[in]sArc(2D) arc length
[out]position(XYZ) Position

References _dca, _dzds, _eps, _phi0, _rinv, _xref, _xRelCenter, _yref, _yRelCenter, _z0, and _zref.

void marlintpc::simpleHelix::getStateAt ( const double  posX,
const double  posY,
const double  posZ,
TMatrixDSym &  refCov,
TVectorD &  newPar,
TMatrixDSym &  newCov 
)

Get state (parameters, covariance matrix) at point.

Parameters
[in]posXpoint (X coordinate)
[in]posYpoint (Y coordinate)
[in]posZpoint (Z coordinate)
[in]refCovcovariance matrix at reference point
[out]newParparameter vector at point
[out]newCovcovariance matrix at point

References _dca, _dzds, _eps, _phi0, _rinv, _xref, _yref, _z0, and _zref.

Referenced by marlintpc::rb_Segment::getLCIOStateAtRefPoint(), marlintpc::tp_PixelSegment::getLCIOStateAtRefPoint(), marlintpc::rb_Segment::match(), marlintpc::tp_PixelSegment::match(), and marlintpc::rb_Segment::rb_Segment().

TMatrixD marlintpc::simpleHelix::helixToLCIOJacobian ( ) const

Get transformation from helix to LCIO track parameters (at reference point)

(rinv, phi0, dca, dzds, z0) -> ( d0, phi0, Omega, z0, tanLambda)

d0 = -dca, phi0 = phi0, omega = -rinv, , z0 = z0, tan(lambda) = dzds

Returns
(5*5) transformation matrix

Referenced by marlintpc::rb_Segment::getLCIOStateAtRefPoint(), and marlintpc::tp_PixelSegment::getLCIOStateAtRefPoint().

void marlintpc::simpleHelix::moveTo ( const double  newRefX,
const double  newRefY,
const double  newRefZ,
double *  newPar 
)

Change reference point.

Parameters
[in]newRefXnew reference point (X coordinate)
[in]newRefYnew reference point (Y coordinate)
[in]newRefZnew reference point (Z coordinate)
[out]newParnew helix parameter array[5]

References _dca, _dzds, _eps, _phi0, _rinv, _xref, _yref, _z0, and _zref.

TMatrixD marlintpc::simpleHelix::perigeeToILDJacobian ( ) const

Get transformation from perigee to L3/ILD track parameters (at reference point)

(kappa, theta, phi, epsilon, z_p) -> (omega, tan(lambda), phi, d0, z0)

omega = -kappa, lambda = pi/2 - theta, d0 = -epsilon, z0 = z_p

Returns
(5*5) transformation matrix

References _dzds.

TMatrixD marlintpc::simpleHelix::perigeeToLCIOJacobian ( ) const

Get transformation from helix to LCIO track parameters (at reference point)

(kappa, theta, phi, epsilon, z_p) -> ( d0, phi0, Omega, z0, tanLambda)

d0 = -epsilon, phi0 = phi, omega = -kappa, , z0 = z_p, lambda = pi/2 - theta

Returns
(5*5) transformation matrix

References _dzds.

TMatrixD marlintpc::simpleHelix::simplifiedHelixJacobian ( const double  phi1,
const double  ds 
) const

Get simplified helix propagator (in constant solenoidal magnetic field)

Parabola with curvilinear track parameters (q/p,lambda,phi,x_t,y_t).

Parameters
[in]phi1azimutal direction at start point
[in]ds(3D) arc length to end point
Returns
(5*5) propagation matrix

References _bzc, and _dzds.


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