MyMarlinTPC  170316
Public Member Functions | Private Member Functions | Private Attributes | List of all members
marlintpc::localHelix Class Reference

Local Helix. More...

#include <SimpleHelixTrackModel.h>

Public Member Functions

 localHelix (const double *, const double *, const double)
 Constructor. More...
 
void dump () const
 Dump helix. More...
 
TMatrixD propagateTo (const double *, const double)
 Propagate stepwise (close) to point. More...
 
simpleHelix getSimpleHelix () const
 Get simple helix. More...
 

Private Member Functions

gear::Vector3D getBFieldc (const double *) const
 Get magnetic field (*c). More...
 
void calcLocal ()
 Calculate local parameters. More...
 
void calcGlobal ()
 Calculate global parameters. More...
 

Private Attributes

double _bfac
 c * scaling factor (0/1) for magnetic field More...
 
gear::Vector3D _bFieldc
 B-field. More...
 
TVectorD _offset
 offset of local system More...
 
TMatrixD _rotation
 rotation to local system More...
 
TMatrixD _rotInv
 rotation from local system More...
 
gear::Vector3D _trackDir
 (global) track direction More...
 
double _cosLambda
 (local) cos(lambda) More...
 
double _qbyp
 Q/P = const ! More...
 
double _localPar [5]
 local helix parameter More...
 
double _localRef [3]
 local reference point More...
 

Detailed Description

Local Helix.

Utilities for local helix track model build from perigee parameters and magnetic field at the PCA (point of closest approach) to the reference point, assuming constant magnetic field in arbitrary direction.

In a local system a simple helix is used. The offset of the local system is the PCA of the track (to the reference point) and the directions are (p,n,h), h is the direction of the magnetic field, n = h x t / |h x t| with track direction t and p = n x h. The bending plane is defined by p and n and p is the local track direction at the PCA in this plane.

Implemented is a stepwise propagation in a changing (only locally constant) magnetic field.

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

Author
C. Kleinwort, DESY (131112)

Definition at line 82 of file SimpleHelixTrackModel.h.

Constructor & Destructor Documentation

◆ localHelix()

marlintpc::localHelix::localHelix ( const double *  parameters,
const double *  refPoint,
const double  bScale 
)

Constructor.

Parameters
[in]parameters(global) helix parameters (at)
[in]refPointreference point
[in]bScalescale factor for magnetic field (0/1)

Definition at line 510 of file SimpleHelixTrackModel.cc.

References _bFieldc, _offset, _qbyp, _trackDir, calcLocal(), and getBFieldc().

Member Function Documentation

◆ calcGlobal()

void marlintpc::localHelix::calcGlobal ( )
private

Calculate global parameters.

Calculate global from local parameters and magnetic field at PCA

Definition at line 562 of file SimpleHelixTrackModel.cc.

References _cosLambda, _localPar, _localRef, _offset, _rotInv, and _trackDir.

Referenced by propagateTo().

◆ calcLocal()

void marlintpc::localHelix::calcLocal ( )
private

Calculate local parameters.

Calculate local from global parameters and magnetic field at PCA

Definition at line 532 of file SimpleHelixTrackModel.cc.

References _bFieldc, _cosLambda, _localPar, _localRef, _qbyp, _rotation, _rotInv, and _trackDir.

Referenced by localHelix(), and propagateTo().

◆ dump()

void marlintpc::localHelix::dump ( ) const

Dump helix.

Definition at line 577 of file SimpleHelixTrackModel.cc.

References _bFieldc, _offset, _qbyp, _rotation, and _trackDir.

◆ getBFieldc()

Vector3D marlintpc::localHelix::getBFieldc ( const double *  pos) const
private

Get magnetic field (*c).

Parameters
[in]posposition
Returns
Bfield*c (* scale factor)

Definition at line 680 of file SimpleHelixTrackModel.cc.

References _bfac.

Referenced by localHelix(), and propagateTo().

◆ getSimpleHelix()

simpleHelix marlintpc::localHelix::getSimpleHelix ( ) const

Get simple helix.

Get simple helix in global system at current reference point.

Returns
simple helix

Definition at line 663 of file SimpleHelixTrackModel.cc.

References _bFieldc, _offset, _qbyp, and _trackDir.

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

◆ propagateTo()

TMatrixD marlintpc::localHelix::propagateTo ( const double *  point,
const double  mstep 
)

Propagate stepwise (close) to point.

Stepwise propagation in a changing (only locally constant) magnetic field. Reference point is changed to (PCA of) target.

Parameters
[in]pointtarget (propagate to PCA)
[in]mstepmaximal step size with constant magnetic field
Returns
analytical propagation jacobian

Definition at line 595 of file SimpleHelixTrackModel.cc.

References _bFieldc, _cosLambda, _localPar, _localRef, _offset, _qbyp, _rotation, _rotInv, _trackDir, calcGlobal(), calcLocal(), getBFieldc(), and marlintpc::localHelixAnalyticalJacobian().

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

Member Data Documentation

◆ _bfac

double marlintpc::localHelix::_bfac
private

c * scaling factor (0/1) for magnetic field

Definition at line 91 of file SimpleHelixTrackModel.h.

Referenced by getBFieldc().

◆ _bFieldc

gear::Vector3D marlintpc::localHelix::_bFieldc
private

B-field.

Definition at line 93 of file SimpleHelixTrackModel.h.

Referenced by calcLocal(), dump(), getSimpleHelix(), localHelix(), and propagateTo().

◆ _cosLambda

double marlintpc::localHelix::_cosLambda
private

(local) cos(lambda)

Definition at line 103 of file SimpleHelixTrackModel.h.

Referenced by calcGlobal(), calcLocal(), and propagateTo().

◆ _localPar

double marlintpc::localHelix::_localPar[5]
private

local helix parameter

Definition at line 107 of file SimpleHelixTrackModel.h.

Referenced by calcGlobal(), calcLocal(), and propagateTo().

◆ _localRef

double marlintpc::localHelix::_localRef[3]
private

local reference point

Definition at line 109 of file SimpleHelixTrackModel.h.

Referenced by calcGlobal(), calcLocal(), and propagateTo().

◆ _offset

TVectorD marlintpc::localHelix::_offset
private

offset of local system

Definition at line 95 of file SimpleHelixTrackModel.h.

Referenced by calcGlobal(), dump(), getSimpleHelix(), localHelix(), and propagateTo().

◆ _qbyp

double marlintpc::localHelix::_qbyp
private

Q/P = const !

Definition at line 105 of file SimpleHelixTrackModel.h.

Referenced by calcLocal(), dump(), getSimpleHelix(), localHelix(), and propagateTo().

◆ _rotation

TMatrixD marlintpc::localHelix::_rotation
private

rotation to local system

Definition at line 97 of file SimpleHelixTrackModel.h.

Referenced by calcLocal(), dump(), and propagateTo().

◆ _rotInv

TMatrixD marlintpc::localHelix::_rotInv
private

rotation from local system

Definition at line 99 of file SimpleHelixTrackModel.h.

Referenced by calcGlobal(), calcLocal(), and propagateTo().

◆ _trackDir

gear::Vector3D marlintpc::localHelix::_trackDir
private

(global) track direction

Definition at line 101 of file SimpleHelixTrackModel.h.

Referenced by calcGlobal(), calcLocal(), dump(), getSimpleHelix(), localHelix(), and propagateTo().


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