Belle II Software development
|
Utility for propagation of a particle along helix. More...
#include <HelixSwimmer.h>
Public Member Functions | |
HelixSwimmer () | |
default constructor | |
void | set (const ROOT::Math::XYZPoint &position, const ROOT::Math::XYZVector &momentum, double charge, double Bz) |
Sets the helix. | |
void | setTransformation (const ROOT::Math::Transform3D &transform) |
Sets transformation from the frame in which helix is constructed (nominal frame) to module local frame. | |
void | moveReferencePosition (double length) |
Moves reference position along helix by length. | |
ROOT::Math::XYZPoint | getPosition (double length) const |
Returns particle position at given length. | |
ROOT::Math::XYZVector | getDirection (double length) const |
Returns particle direction at given length. | |
double | getDistanceToPlane (const ROOT::Math::XYZPoint &point, const ROOT::Math::XYZVector &normal) const |
Returns the distance along helix to the nearest intersection with the plane nearly parallel to z axis. | |
Private Member Functions | |
double | shortestDistance (double cosAlpha, double phi) const |
Returns shortest distance. | |
double | withinSingleTurn (double t) const |
Returns helix length within a single turn. | |
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 | |
ROOT::Math::Transform3D | m_transformInv |
transformation from nominal to local frame | |
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 30 of file HelixSwimmer.h.
|
inline |
XYZVector getDirection | ( | double | length | ) | const |
Returns particle direction at given length.
length | distance along helix measured from the reference position |
Definition at line 75 of file HelixSwimmer.cc.
double getDistanceToPlane | ( | const ROOT::Math::XYZPoint & | point, |
const ROOT::Math::XYZVector & | normal | ||
) | const |
Returns the distance along helix to the nearest intersection with the plane nearly parallel to z axis.
point | point on the plane |
normal | plane normal |
Definition at line 88 of file HelixSwimmer.cc.
XYZPoint getPosition | ( | double | length | ) | const |
Returns particle position at given length.
length | distance along helix measured from the reference position |
Definition at line 63 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 51 of file HelixSwimmer.cc.
void set | ( | const ROOT::Math::XYZPoint & | position, |
const ROOT::Math::XYZVector & | 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 26 of file HelixSwimmer.cc.
|
inline |
Sets transformation from the frame in which helix is constructed (nominal frame) to module local frame.
transform | transformation from local to nominal frame |
Definition at line 53 of file HelixSwimmer.h.
|
inlineprivate |
Returns shortest distance.
cosAlpha | cosine of alpha |
phi | phi of plane |
Definition at line 121 of file HelixSwimmer.h.
|
inlineprivate |
Returns helix length within a single turn.
t | helix length |
Definition at line 132 of file HelixSwimmer.h.
|
private |
direction in x for zero magnetic field
Definition at line 112 of file HelixSwimmer.h.
|
private |
direction in y for zero magnetic field
Definition at line 113 of file HelixSwimmer.h.
|
private |
direction in z for zero magnetic field
Definition at line 114 of file HelixSwimmer.h.
|
private |
slope in z
Definition at line 104 of file HelixSwimmer.h.
|
private |
angular speed [1/cm]
Definition at line 103 of file HelixSwimmer.h.
|
private |
phi of reference position
Definition at line 105 of file HelixSwimmer.h.
|
private |
helix radius
Definition at line 100 of file HelixSwimmer.h.
|
private |
helix length of single turn
Definition at line 107 of file HelixSwimmer.h.
|
private |
transformation from nominal to local frame
Definition at line 116 of file HelixSwimmer.h.
|
private |
helix axis position in x
Definition at line 101 of file HelixSwimmer.h.
|
private |
helix axis position in y
Definition at line 102 of file HelixSwimmer.h.
|
private |
z of reference position
Definition at line 106 of file HelixSwimmer.h.
|
private |
x of reference position for zero magnetic field
Definition at line 109 of file HelixSwimmer.h.
|
private |
y of reference position for zero magnetic field
Definition at line 110 of file HelixSwimmer.h.
|
private |
z of reference position for zero magnetic field
Definition at line 111 of file HelixSwimmer.h.