![]() |
Belle II Software
release-06-01-15
|
Utility for propagation of a particle along helix. More...
#include <HelixSwimmer.h>
Public Member Functions | |
HelixSwimmer () | |
default constructor | |
void | set (const TVector3 &position, const TVector3 &momentum, double charge, double Bz) |
Sets the helix. More... | |
void | setTransformation (const TRotation &rotation, const TVector3 &translation) |
Sets transformation from the frame in which helix is constructed to module local frame. More... | |
void | moveReferencePosition (double length) |
Moves reference position along helix by length. More... | |
TVector3 | getPosition (double length) const |
Returns particle position at given length. More... | |
TVector3 | getDirection (double length) const |
Returns particle direction at given length. More... | |
double | getDistanceToPlane (const TVector3 &point, const TVector3 &normal) const |
Returns the distance along helix to the nearest intersection with a plane nearly parallel to z axis. More... | |
Private Member Functions | |
double | shortestDistance (double cosAlpha, double phi) const |
Returns shortest distance. More... | |
double | withinSingleTurn (double t) const |
Returns helix length within a single turn. More... | |
Private Attributes | |
double | m_R = 0 |
helix radius | |
double | m_xc = 0 |
helix axis position in x | |
double | m_yc = 0 |
helix axis position in y | |
double | m_omega = 0 |
angular speed [1/cm] | |
double | m_kz = 0 |
slope in z | |
double | m_phi0 = 0 |
phi of reference position | |
double | m_z0 = 0 |
z of reference position | |
double | m_T0 = 0 |
helix length of single turn | |
double & | x0 = m_xc |
x of reference position for zero magnetic field | |
double & | y0 = m_yc |
y of reference position for zero magnetic field | |
double & | z0 = m_z0 |
z of reference position for zero magnetic field | |
double & | kx = m_R |
direction in x for zero magnetic field | |
double & | ky = m_phi0 |
direction in y for zero magnetic field | |
double & | kz = m_kz |
direction in z for zero magnetic field | |
TRotation | m_rotationInv |
inverse of rotation matrix | |
TVector3 | m_translation |
translation vector | |
Utility for propagation of a particle along helix.
Helix representation here differs from the official one. Running parameter is the signed distance along helix measured from the reference position. Negative distance means propagating back in time.
Definition at line 29 of file HelixSwimmer.h.
TVector3 getDirection | ( | double | length | ) | const |
Returns particle direction at given length.
length | distance along helix measured from the reference position |
Definition at line 79 of file HelixSwimmer.cc.
double getDistanceToPlane | ( | const TVector3 & | point, |
const TVector3 & | normal | ||
) | const |
Returns the distance along helix to the nearest intersection with a plane nearly parallel to z axis.
point | point on the plane |
normal | plane normal |
Definition at line 92 of file HelixSwimmer.cc.
TVector3 getPosition | ( | double | length | ) | const |
Returns particle position at given length.
length | distance along helix measured from the reference position |
Definition at line 67 of file HelixSwimmer.cc.
void moveReferencePosition | ( | double | length | ) |
Moves reference position along helix by length.
length | distance along helix measured from current reference position |
Definition at line 55 of file HelixSwimmer.cc.
void set | ( | const TVector3 & | position, |
const TVector3 & | momentum, | ||
double | charge, | ||
double | Bz | ||
) |
Sets the helix.
position | particle position (= default reference position) |
momentum | particle momentum |
charge | particle charge in units of elementary charge |
Bz | magnetic field z-component (we assume other two are negligible) |
Definition at line 24 of file HelixSwimmer.cc.
void setTransformation | ( | const TRotation & | rotation, |
const TVector3 & | translation | ||
) |
Sets transformation from the frame in which helix is constructed to module local frame.
Transformation is: inverse translation first then inverse rotation
rotation | rotation matrix |
translation | translation vector |
Definition at line 49 of file HelixSwimmer.cc.
|
inlineprivate |
Returns shortest distance.
cosAlpha | cosine of alpha |
phi | phi of plane |
Definition at line 123 of file HelixSwimmer.h.
|
inlineprivate |
Returns helix length within a single turn.
t | helix length |
Definition at line 134 of file HelixSwimmer.h.