|
MyMarlinTPC
170316
|
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... | |
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)
Definition at line 82 of file SimpleHelixTrackModel.h.
| marlintpc::localHelix::localHelix | ( | const double * | parameters, |
| const double * | refPoint, | ||
| const double | bScale | ||
| ) |
Constructor.
| [in] | parameters | (global) helix parameters (at) |
| [in] | refPoint | reference point |
| [in] | bScale | scale factor for magnetic field (0/1) |
Definition at line 510 of file SimpleHelixTrackModel.cc.
References _bFieldc, _offset, _qbyp, _trackDir, calcLocal(), and getBFieldc().
|
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().
|
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().
| void marlintpc::localHelix::dump | ( | ) | const |
|
private |
Get magnetic field (*c).
| [in] | pos | position |
Definition at line 680 of file SimpleHelixTrackModel.cc.
References _bfac.
Referenced by localHelix(), and propagateTo().
| simpleHelix marlintpc::localHelix::getSimpleHelix | ( | ) | const |
Get simple helix.
Get simple helix in global system at current reference point.
Definition at line 663 of file SimpleHelixTrackModel.cc.
References _bFieldc, _offset, _qbyp, and _trackDir.
Referenced by marlintpc::StepWiseHelixGeneralBrokenLineInterfaceProcessor::processEvent().
| 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.
| [in] | point | target (propagate to PCA) |
| [in] | mstep | maximal step size with constant magnetic field |
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().
|
private |
c * scaling factor (0/1) for magnetic field
Definition at line 91 of file SimpleHelixTrackModel.h.
Referenced by getBFieldc().
|
private |
B-field.
Definition at line 93 of file SimpleHelixTrackModel.h.
Referenced by calcLocal(), dump(), getSimpleHelix(), localHelix(), and propagateTo().
|
private |
(local) cos(lambda)
Definition at line 103 of file SimpleHelixTrackModel.h.
Referenced by calcGlobal(), calcLocal(), and propagateTo().
|
private |
local helix parameter
Definition at line 107 of file SimpleHelixTrackModel.h.
Referenced by calcGlobal(), calcLocal(), and propagateTo().
|
private |
local reference point
Definition at line 109 of file SimpleHelixTrackModel.h.
Referenced by calcGlobal(), calcLocal(), and propagateTo().
|
private |
offset of local system
Definition at line 95 of file SimpleHelixTrackModel.h.
Referenced by calcGlobal(), dump(), getSimpleHelix(), localHelix(), and propagateTo().
|
private |
Q/P = const !
Definition at line 105 of file SimpleHelixTrackModel.h.
Referenced by calcLocal(), dump(), getSimpleHelix(), localHelix(), and propagateTo().
|
private |
rotation to local system
Definition at line 97 of file SimpleHelixTrackModel.h.
Referenced by calcLocal(), dump(), and propagateTo().
|
private |
rotation from local system
Definition at line 99 of file SimpleHelixTrackModel.h.
Referenced by calcGlobal(), calcLocal(), and propagateTo().
|
private |
(global) track direction
Definition at line 101 of file SimpleHelixTrackModel.h.
Referenced by calcGlobal(), calcLocal(), dump(), getSimpleHelix(), localHelix(), and propagateTo().
1.8.13