Belle II Software
release-08-01-10
|
This class represents an ideal helix in perigee parameterization including the covariance matrix of the 5 perigee parameters. More...
#include <UncertainHelix.h>
Public Member Functions | |
UncertainHelix () | |
Default constuctor initialising all members to zero. | |
UncertainHelix (const ROOT::Math::XYZVector &position, const ROOT::Math::XYZVector &momentum, const short int charge, const double bZ, const TMatrixDSym &cartesianCovariance, const double pValue) | |
Constructor initializing class with fit result. More... | |
UncertainHelix (const double &d0, const double &phi0, const double &omega, const double &z0, const double &tanLambda, const TMatrixDSym &covariance, const double pValue) | |
Constructor initializing class with perigee parameters. More... | |
TMatrixDSym | getCartesianCovariance (const double bZ_tesla=1.5) const |
Getter for the position and momentum covariance matrix. More... | |
double | getPValue () const |
Getter for Chi2 Probability of the track fit. | |
const TMatrixDSym & | getCovariance () const |
Getter for covariance matrix of perigee parameters in matrix form. | |
void | reverse () |
Reverses the direction of travel of the helix in place. More... | |
double | passiveMoveBy (const ROOT::Math::XYZVector &by) |
Moves origin of the coordinate system (passive transformation) by the given vector. More... | |
double | passiveMoveBy (const double &byX, const double &byY, const double &byZ) |
Moves origin of the coordinate system (passive transformation) by the given vector. More... | |
const HepPoint3D & | center (void) const |
returns position of helix center(z = 0.); | |
const HepPoint3D & | pivot (void) const |
returns pivot position. | |
const HepPoint3D & | pivot (const HepPoint3D &newPivot) |
Sets pivot position. | |
double | radius (void) const |
returns radious of helix. | |
HepPoint3D | x (double dPhi=0.) const |
returns position after rotating angle dPhi in phi direction. More... | |
double * | x (double dPhi, double p[3]) const |
returns position after rotating angle dPhi in phi direction. More... | |
HepPoint3D | x (double dPhi, HepSymMatrix &Ex) const |
returns position and convariance matrix(Ex) after rotation. | |
Hep3Vector | direction (double dPhi=0.) const |
returns direction vector after rotating angle dPhi in phi direction. | |
Hep3Vector | momentum (double dPhi=0.) const |
returns momentum vector after rotating angle dPhi in phi direction. | |
Hep3Vector | momentum (double dPhi, HepSymMatrix &Em) const |
returns momentum vector after rotating angle dPhi in phi direction. | |
HepLorentzVector | momentum (double dPhi, double mass) const |
returns 4momentum vector after rotating angle dPhi in phi direction. | |
HepLorentzVector | momentum (double dPhi, double mass, HepSymMatrix &Em) const |
returns 4momentum vector after rotating angle dPhi in phi direction. | |
HepLorentzVector | momentum (double dPhi, double mass, HepPoint3D &x, HepSymMatrix &Emx) const |
returns 4momentum vector after rotating angle dPhi in phi direction. | |
double | dr (void) const |
Return helix parameter dr. | |
double | phi0 (void) const |
Return helix parameter phi0. | |
double | kappa (void) const |
Return helix parameter kappa. | |
double | dz (void) const |
Return helix parameter dz. | |
double | tanl (void) const |
Return helix parameter tangent lambda. | |
double | curv (void) const |
Return curvature of helix. | |
double | sinPhi0 (void) const |
Return sin phi0. | |
double | cosPhi0 (void) const |
Return cos phi0. | |
const HepVector & | a (void) const |
Returns helix parameters. | |
const HepVector & | a (const HepVector &newA) |
Sets helix parameters. | |
const HepSymMatrix & | Ea (void) const |
Returns error matrix. | |
const HepSymMatrix & | Ea (const HepSymMatrix &newdA) |
Sets helix paramters and error matrix. | |
void | set (const HepPoint3D &pivot, const HepVector &a, const HepSymMatrix &Ea) |
Sets helix pivot position, parameters, and error matrix. | |
void | ignoreErrorMatrix (void) |
Unsets error matrix. More... | |
double | bFieldZ (double bz) |
Sets/returns z componet of the magnetic field. More... | |
double | bFieldZ (void) const |
Returns z componet of the magnetic field. | |
HepMatrix | delApDelA (const HepVector &ap) const |
DAp/DA. | |
HepMatrix | delXDelA (double phi) const |
DX/DA. | |
HepMatrix | delMDelA (double phi) const |
DM/DA. | |
HepMatrix | del4MDelA (double phi, double mass) const |
DM4/DA. | |
HepMatrix | del4MXDelA (double phi, double mass) const |
DMX4/DA. | |
Static Public Member Functions | |
static void | set_limits (const HepVector &a_min, const HepVector &a_max) |
set limit for parameter "a" | |
static bool | set_exception (bool) |
set exception | |
static bool | set_print (bool) |
Set print option for debugging. | |
Static Public Attributes | |
static const double | ConstantAlpha = 222.376063 |
Constant alpha for uniform field. | |
Private Member Functions | |
ClassDef (UncertainHelix, 2) | |
represents an ideal helix in perigee parameterization including covariance matrix | |
void | updateCache (void) |
updateCache | |
void | checkValid (void) |
Check whether helix parameters is valid or not. More... | |
void | debugPrint (void) const |
Print the helix parameters to stdout. | |
void | debugHelix (void) const |
Debug Helix. | |
Private Attributes | |
TMatrixDSym | m_covariance |
5x5 covariance of the perigee parameters. | |
Double32_t | m_pValue |
Chi2 Probability of the fit. | |
bool | m_matrixValid |
True: matrix valid, False: matrix not valid. | |
bool | m_helixValid |
True: helix valid, False: helix not valid. | |
double | m_bField |
Magnetic field, assuming uniform Bz in the unit of kG. | |
double | m_alpha |
10000.0/(speed of light)/B. | |
HepPoint3D | m_pivot |
Pivot. | |
HepVector | m_a |
Helix parameter. | |
HepSymMatrix | m_Ea |
Error of the helix parameter. | |
HepPoint3D | m_center |
Cache of the center position of Helix. | |
double | m_cp |
Cache of the cos phi0. | |
double | m_sp |
Cache of the sin phi0. | |
double | m_pt |
Cache of the pt. | |
double | m_r |
Cache of the r. | |
double | m_ac [5] |
Cache of the helix parameter. | |
Static Private Attributes | |
static HepVector | ms_amin |
minimum limit of Helix parameter a | |
static HepVector | ms_amax |
maxiimum limit of Helix parameter a | |
static bool | ms_check_range |
Check the helix parameter's range. | |
static bool | ms_print_debug |
Debug option flag. | |
static bool | ms_throw_exception |
Throw exception flag. | |
static const std::string | invalidhelix |
String "Invalid Helix". | |
This class represents an ideal helix in perigee parameterization including the covariance matrix of the 5 perigee parameters.
The used perigee parameters are:
getPerigee().Cross(getMomentum()).Z()
.in that exact order.
It may also store a p-value obtained from the fit of the helix.
Definition at line 36 of file UncertainHelix.h.
UncertainHelix | ( | const ROOT::Math::XYZVector & | position, |
const ROOT::Math::XYZVector & | momentum, | ||
const short int | charge, | ||
const double | bZ, | ||
const TMatrixDSym & | cartesianCovariance, | ||
const double | pValue | ||
) |
Constructor initializing class with fit result.
The given position, momentum and their covariance matrix are extrapolated to the perigee assuming a homogeneous magnetic field in the z direction.
position | Position of the track at the perigee. |
momentum | Momentum of the track at the perigee. |
charge | Charge of the particle. |
bZ | Magnetic field to be used for the calculation of the curvature; |
cartesianCovariance | 6x6 Covariance matrix for position and momentum of the track at the perigee. |
pValue | p-value of the fit. It is assumed, that the B-field is parallel to the z-Axis. |
Definition at line 24 of file UncertainHelix.cc.
UncertainHelix | ( | const double & | d0, |
const double & | phi0, | ||
const double & | omega, | ||
const double & | z0, | ||
const double & | tanLambda, | ||
const TMatrixDSym & | covariance, | ||
const double | pValue | ||
) |
Constructor initializing class with perigee parameters.
d0 | The signed distance from the origin to the perigee. The sign is positive (negative), if the angle from the xy perigee position vector to the transverse momentum vector is +pi/2 (-pi/2). d0 has the same sign as getPosition().Cross(getMomentum()).Z() . |
phi0 | The angle between the transverse momentum and the x axis and in [-pi, pi] |
omega | The signed curvature of the track where the sign is given by the charge of the particle |
z0 | The z coordinate of the perigee. |
tanLambda | The slope of the track in the sz plane (dz/ds) |
covariance | 5x5 Covariance matrix for the five helix parameters. Indices correspond to the order d0, phi0, omega, z0, tanLambda. |
pValue | p-value of the Helix fit |
Definition at line 98 of file UncertainHelix.cc.
|
inlineinherited |
Sets/returns z componet of the magnetic field.
[in] | bz | z-component of the magnetic field. |
Definition at line 473 of file Helix.h.
|
privateinherited |
Check whether helix parameters is valid or not.
Sets m_helixValid.
Definition at line 895 of file Helix.cc.
TMatrixDSym getCartesianCovariance | ( | const double | bZ_tesla = 1.5 | ) | const |
Getter for the position and momentum covariance matrix.
bZ_tesla | Magnetic field to be used for the calculation from the curvature; |
Definition at line 113 of file UncertainHelix.cc.
|
inherited |
double passiveMoveBy | ( | const double & | byX, |
const double & | byY, | ||
const double & | byZ | ||
) |
Moves origin of the coordinate system (passive transformation) by the given vector.
Updates the helix inplace.
byX | X displacement by which the origin of the coordinate system should be moved. |
byY | Y displacement by which the origin of the coordinate system should be moved. |
byZ | Z displacement by which the origin of the coordinate system should be moved. |
Definition at line 198 of file UncertainHelix.cc.
|
inline |
Moves origin of the coordinate system (passive transformation) by the given vector.
Updates the helix inplace.
by | Vector by which the origin of the coordinate system should be moved. |
Definition at line 117 of file UncertainHelix.h.
void reverse | ( | ) |
Reverses the direction of travel of the helix in place.
The same points that are located on the helix stay are the same after the transformation, but have the opposite two dimensional arc length associated to them. The momentum at each point is reversed. The charge sign is changed to its opposite by this transformation.
Definition at line 182 of file UncertainHelix.cc.
|
inherited |
returns position after rotating angle dPhi in phi direction.
x = x0 + dr * cos(phi0) + (alpha / kappa) * (cos(phi0) - cos(phi0+phi)) y = y0 + dr * sin(phi0) + (alpha / kappa) * (sin(phi0) - sin(phi0+phi)) z = z0 + dz - (alpha / kappa) * tan(lambda) * phi
|
inherited |
returns position after rotating angle dPhi in phi direction.
x = x0 + dr * cos(phi0) + (alpha / kappa) * (cos(phi0) - cos(phi0+phi)) y = y0 + dr * sin(phi0) + (alpha / kappa) * (sin(phi0) - sin(phi0+phi)) z = z0 + dz - (alpha / kappa) * tan(lambda) * phi