MyMarlinTPC  170316
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. More...
 
 simpleHelix (const double *, const double *, const double)
 Constructor. More...
 
void dump () const
 Dump helix. More...
 
double getArcLengthXY (const double *) const
 Get (2D) arc length for given point. More...
 
void getZSDirection (double *) const
 Get ZS direction (cosLambda, sinLambda). More...
 
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. More...
 
const double _yref
 Y of reference point. More...
 
const double _zref
 Z of reference point. More...
 
const double _bzc
 Z component of magnetic field (*c) More...
 
const double _rinv
 1/R More...
 
const double _phi0
 flight direction at point of closest approach (in XY) More...
 
const double _dca
 distance of closest approach in (XY) More...
 
const double _dzds
 dZ/ds More...
 
const double _z0
 Z position at distance of closest approach. More...
 
const double _xRelCenter
 XY circle parameter: X position of center / R. More...
 
const double _yRelCenter
 XY circle parameter: Y position of center / R. More...
 
const double _eps
 cut off for straight line approximation (|relevent scale / R| < _eps) More...
 

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)

Definition at line 22 of file SimpleHelixTrackModel.h.

Constructor & Destructor Documentation

◆ simpleHelix() [1/2]

marlintpc::simpleHelix::simpleHelix ( const double  rinv,
const double  phi0,
const double  dca,
const double  dzds,
const double  z0,
const double *  refPoint,
const double  Bzc 
)

Constructor.

Definition at line 125 of file SimpleHelixTrackModel.cc.

◆ simpleHelix() [2/2]

marlintpc::simpleHelix::simpleHelix ( const double *  parameters,
const double *  refPoint,
const double  Bzc 
)

Constructor.

Definition at line 132 of file SimpleHelixTrackModel.cc.

Member Function Documentation

◆ analyticalHelixJacobian()

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

Definition at line 255 of file SimpleHelixTrackModel.cc.

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

Referenced by marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::processEvent().

◆ curvilinearToPerigeeJacobian()

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

Definition at line 294 of file SimpleHelixTrackModel.cc.

References _bzc, _dzds, _phi0, and _rinv.

Referenced by marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::processEvent(), and marlintpc::StepWiseHelixGeneralBrokenLineInterfaceProcessor::processEvent().

◆ dump()

void marlintpc::simpleHelix::dump ( ) const

Dump helix.

Definition at line 139 of file SimpleHelixTrackModel.cc.

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

◆ getArcLengthXY()

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

Definition at line 153 of file SimpleHelixTrackModel.cc.

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

Referenced by marlintpc::pb_Seed::_fitSeed(), marlintpc::rb_Segment::fitSegment(), marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::processEvent(), marlintpc::StepWiseHelixGeneralBrokenLineInterfaceProcessor::processEvent(), and marlintpc::tp_PixelSegment::tp_PixelSegment().

◆ getExpectedPlanePos()

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)

Definition at line 207 of file SimpleHelixTrackModel.cc.

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

Referenced by marlintpc::rb_Segment::match(), marlintpc::RowBasedPadPulseRoadSearchProcessor::processEvent(), and marlintpc::pb_Seed::roadSearch().

◆ getPosAtArcLength()

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

Definition at line 179 of file SimpleHelixTrackModel.cc.

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

Referenced by marlintpc::StepWiseHelixGeneralBrokenLineInterfaceProcessor::processEvent().

◆ getStateAt()

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

Definition at line 444 of file SimpleHelixTrackModel.cc.

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().

◆ getZSDirection()

void marlintpc::simpleHelix::getZSDirection ( double *  direction) const

Get ZS direction (cosLambda, sinLambda).

Definition at line 167 of file SimpleHelixTrackModel.cc.

References _dzds.

◆ helixToLCIOJacobian()

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

Definition at line 384 of file SimpleHelixTrackModel.cc.

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

◆ moveTo()

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]

Definition at line 403 of file SimpleHelixTrackModel.cc.

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

◆ perigeeToILDJacobian()

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

Definition at line 345 of file SimpleHelixTrackModel.cc.

References _dzds.

◆ perigeeToLCIOJacobian()

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

Definition at line 364 of file SimpleHelixTrackModel.cc.

References _dzds.

Referenced by marlintpc::SimpleHelixGeneralBrokenLineInterfaceProcessor::processEvent(), and marlintpc::StepWiseHelixGeneralBrokenLineInterfaceProcessor::processEvent().

◆ simplifiedHelixJacobian()

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

Definition at line 277 of file SimpleHelixTrackModel.cc.

References _bzc, and _dzds.

Member Data Documentation

◆ _bzc

const double marlintpc::simpleHelix::_bzc
protected

Z component of magnetic field (*c)

Definition at line 48 of file SimpleHelixTrackModel.h.

Referenced by analyticalHelixJacobian(), curvilinearToPerigeeJacobian(), and simplifiedHelixJacobian().

◆ _dca

const double marlintpc::simpleHelix::_dca
protected

distance of closest approach in (XY)

Definition at line 54 of file SimpleHelixTrackModel.h.

Referenced by dump(), getExpectedPlanePos(), getPosAtArcLength(), getStateAt(), and moveTo().

◆ _dzds

const double marlintpc::simpleHelix::_dzds
protected

◆ _eps

const double marlintpc::simpleHelix::_eps
protected

cut off for straight line approximation (|relevent scale / R| < _eps)

Definition at line 64 of file SimpleHelixTrackModel.h.

Referenced by getArcLengthXY(), getExpectedPlanePos(), getPosAtArcLength(), getStateAt(), and moveTo().

◆ _phi0

const double marlintpc::simpleHelix::_phi0
protected

flight direction at point of closest approach (in XY)

Definition at line 52 of file SimpleHelixTrackModel.h.

Referenced by curvilinearToPerigeeJacobian(), dump(), getArcLengthXY(), getExpectedPlanePos(), getPosAtArcLength(), getStateAt(), and moveTo().

◆ _rinv

const double marlintpc::simpleHelix::_rinv
protected

◆ _xref

const double marlintpc::simpleHelix::_xref
protected

X of reference point.

Definition at line 42 of file SimpleHelixTrackModel.h.

Referenced by dump(), getArcLengthXY(), getExpectedPlanePos(), getPosAtArcLength(), getStateAt(), and moveTo().

◆ _xRelCenter

const double marlintpc::simpleHelix::_xRelCenter
protected

XY circle parameter: X position of center / R.

Definition at line 60 of file SimpleHelixTrackModel.h.

Referenced by dump(), getArcLengthXY(), getExpectedPlanePos(), and getPosAtArcLength().

◆ _yref

const double marlintpc::simpleHelix::_yref
protected

Y of reference point.

Definition at line 44 of file SimpleHelixTrackModel.h.

Referenced by dump(), getArcLengthXY(), getExpectedPlanePos(), getPosAtArcLength(), getStateAt(), and moveTo().

◆ _yRelCenter

const double marlintpc::simpleHelix::_yRelCenter
protected

XY circle parameter: Y position of center / R.

Definition at line 62 of file SimpleHelixTrackModel.h.

Referenced by dump(), getArcLengthXY(), getExpectedPlanePos(), and getPosAtArcLength().

◆ _z0

const double marlintpc::simpleHelix::_z0
protected

Z position at distance of closest approach.

Definition at line 58 of file SimpleHelixTrackModel.h.

Referenced by dump(), getExpectedPlanePos(), getPosAtArcLength(), getStateAt(), and moveTo().

◆ _zref

const double marlintpc::simpleHelix::_zref
protected

Z of reference point.

Definition at line 46 of file SimpleHelixTrackModel.h.

Referenced by dump(), getExpectedPlanePos(), getPosAtArcLength(), getStateAt(), and moveTo().


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