Belle II Software light-2406-ragdoll
|
This class represents an ideal helix in perigee parameterization. More...
#include <Helix.h>
Public Member Functions | |
Helix () | |
Constructor initializing all perigee parameters to zero. | |
Helix (const ROOT::Math::XYZVector &position, const ROOT::Math::XYZVector &momentum, const short int charge, const double bZ) | |
Constructor initializing class with a fit result. | |
Helix (const double &d0, const double &phi0, const double &omega, const double &z0, const double &tanLambda) | |
Constructor initializing class with perigee parameters. | |
void | addRelationTo (const RelationsInterface< BASE > *object, float weight=1.0, const std::string &namedRelation="") const |
Add a relation from this object to another object (with caching). | |
void | addRelationTo (const TObject *object, float weight=1.0, const std::string &namedRelation="") const |
Add a relation from this object to another object (no caching, can be quite slow). | |
void | copyRelations (const RelationsInterface< BASE > *sourceObj) |
Copies all relations of sourceObj (pointing from or to sourceObj) to this object (including weights). | |
template<class TO > | |
RelationVector< TO > | getRelationsTo (const std::string &name="", const std::string &namedRelation="") const |
Get the relations that point from this object to another store array. | |
template<class FROM > | |
RelationVector< FROM > | getRelationsFrom (const std::string &name="", const std::string &namedRelation="") const |
Get the relations that point from another store array to this object. | |
template<class T > | |
RelationVector< T > | getRelationsWith (const std::string &name="", const std::string &namedRelation="") const |
Get the relations between this object and another store array. | |
template<class TO > | |
TO * | getRelatedTo (const std::string &name="", const std::string &namedRelation="") const |
Get the object to which this object has a relation. | |
template<class FROM > | |
FROM * | getRelatedFrom (const std::string &name="", const std::string &namedRelation="") const |
Get the object from which this object has a relation. | |
template<class T > | |
T * | getRelated (const std::string &name="", const std::string &namedRelation="") const |
Get the object to or from which this object has a relation. | |
template<class TO > | |
std::pair< TO *, float > | getRelatedToWithWeight (const std::string &name="", const std::string &namedRelation="") const |
Get first related object & weight of relation pointing to an array. | |
template<class FROM > | |
std::pair< FROM *, float > | getRelatedFromWithWeight (const std::string &name="", const std::string &namedRelation="") const |
Get first related object & weight of relation pointing from an array. | |
template<class T > | |
std::pair< T *, float > | getRelatedWithWeight (const std::string &name="", const std::string &namedRelation="") const |
Get first related object & weight of relation pointing from/to an array. | |
virtual std::string | getName () const |
Return a short name that describes this object, e.g. | |
virtual std::string | getInfoHTML () const |
Return a short summary of this object's contents in HTML format. | |
std::string | getInfo () const |
Return a short summary of this object's contents in raw text format. | |
std::string | getArrayName () const |
Get name of array this object is stored in, or "" if not found. | |
int | getArrayIndex () const |
Returns this object's array index (in StoreArray), or -1 if not found. | |
Getters for perigee helix parameters | |
double | getD0 () const |
Getter for d0, which is the signed distance to the perigee in the r-phi plane. | |
double | getPhi0 () const |
Getter for phi0, which is the azimuth angle of the transverse momentum at the perigee. | |
double | getCosPhi0 () const |
Getter for the cosine of the azimuth angle of travel direction at the perigee. | |
double | getSinPhi0 () const |
Getter for the cosine of the azimuth angle of travel direction at the perigee. | |
double | getOmega () const |
Getter for omega, which is a signed curvature measure of the track. | |
double | getZ0 () const |
Getter for z0, which is the z coordinate of the perigee. | |
double | getTanLambda () const |
Getter for tan lambda, which is the z over two dimensional arc length slope of the track. | |
double | getCotTheta () const |
Getter for cot theta, which is the z over two dimensional arc length slope of the track. | |
Protected Member Functions | |
void | calcArcLength2DAndDrAtXY (const double &x, const double &y, double &arcLength2D, double &dr) const |
Helper method to calculate the signed two dimensional arc length and the signed distance to the circle of a point in the xy projection. | |
double | calcArcLength2DAtDeltaCylindricalRAndDr (const double &deltaCylindricalR, const double &dr) const |
Helper method to calculate the two dimensional arc length from the perigee to a point at cylindrical radius, which also has the distance dr from the circle in the xy projection. | |
TClonesArray * | getArrayPointer () const |
Returns the pointer to the raw DataStore array holding this object (protected since these arrays are easy to misuse). | |
Static Protected Member Functions | |
static double | calcASinXDividedByX (const double &x) |
Implementation of the function asin(x) / x which handles small x values smoothly. | |
static double | calcATanXDividedByX (const double &x) |
Implementation of the function atan(x) / x which handles small x values smoothly. | |
static double | calcDerivativeOfATanXDividedByX (const double &x) |
Implementation of the function d / dx (atan(x) / x) which handles small x values smoothly. | |
Private Member Functions | |
void | setCartesian (const ROOT::Math::XYZVector &position, const ROOT::Math::XYZVector &momentum, const short int charge, const double bZ) |
Cartesian to Perigee conversion. | |
ClassDef (Helix, 2) | |
This class represents an ideal helix in perigee parameterization. | |
Private Attributes | |
Double32_t | m_d0 |
Memory for the signed distance to the perigee. | |
Double32_t | m_phi0 |
Memory for the azimuth angle between the transverse momentum and the x axis, which is in [-pi, pi]. | |
Double32_t | m_omega |
Memory for the curvature of the signed curvature. | |
Double32_t | m_z0 |
Memory for the z coordinate of the perigee. | |
Double32_t | m_tanLambda |
Memory for the slope of the track in the z coordinate over the two dimensional arc length (dz/ds) | |
DataStore::StoreEntry * | m_cacheDataStoreEntry |
Cache of the data store entry to which this object belongs. | |
int | m_cacheArrayIndex |
Cache of the index in the TClonesArray to which this object belongs. | |
Friends | |
std::ostream & | operator<< (std::ostream &output, const Helix &helix) |
Output operator for debugging and the generation of unittest error messages. | |
Getters for cartesian parameters of the perigee | |
double | getPerigeeX () const |
Calculates the x coordinate of the perigee point. | |
double | getPerigeeY () const |
Calculates the y coordinate of the perigee point. | |
double | getPerigeeZ () const |
Calculates the z coordinate of the perigee point. | |
ROOT::Math::XYZVector | getPerigee () const |
Getter for the perigee position. | |
double | getMomentumX (const double bZ) const |
Calculates the x momentum of the particle at the perigee point. | |
double | getMomentumY (const double bZ) const |
Calculates the y momentum of the particle at the perigee point. | |
double | getMomentumZ (const double bZ) const |
Calculates the z momentum of the particle at the perigee point. | |
ROOT::Math::XYZVector | getMomentum (const double bZ) const |
Getter for vector of momentum at the perigee position. | |
ROOT::Math::XYZVector | getDirection () const |
Getter for unit vector of momentum at the perigee position. | |
double | getTransverseMomentum (const double bZ) const |
Getter for the absolute value of the transverse momentum at the perigee. | |
double | getKappa (const double bZ) const |
Getter for kappa, which is charge / transverse momentum or equivalently omega * alpha. | |
short | getChargeSign () const |
Return track charge sign (1, 0 or -1). | |
static double | getAlpha (const double bZ) |
Calculates the alpha value for a given magnetic field in Tesla. | |
Simple extrapolations of the ideal helix | |
double | getArcLength2DAtCylindricalR (const double &cylindricalR) const |
Calculates the transverse travel distance at the point the helix first reaches the given cylindrical radius. | |
double | getArcLength2DAtXY (const double &x, const double &y) const |
Calculates the two dimensional arc length at which the circle in the xy projection is closest to the point. | |
double | getArcLength2DAtNormalPlane (const double &x, const double &y, const double &nX, const double &nY) const |
Calculates the arc length to reach a plane parallel to the z axes. | |
ROOT::Math::XYZVector | getPositionAtArcLength2D (const double &arcLength2D) const |
Calculates the position on the helix at the given two dimensional arc length. | |
ROOT::Math::XYZVector | getTangentialAtArcLength2D (const double &arcLength2D) const |
Calculates the tangential vector to the helix curve at the given two dimensional arc length. | |
ROOT::Math::XYZVector | getUnitTangentialAtArcLength2D (const double &arcLength2D) const |
Calculates the unit tangential vector to the helix curve at the given two dimensional arc length. | |
ROOT::Math::XYZVector | getMomentumAtArcLength2D (const double &arcLength2D, const double &bz) const |
Calculates the momentum vector at the given two dimensional arc length. | |
double | passiveMoveBy (const ROOT::Math::XYZVector &by) |
Moves origin of the coordinate system (passive transformation) by the given vector. | |
double | passiveMoveBy (const double &byX, const double &byY, const double &byZ) |
Moves origin of the coordinate system (passive transformation) orthogonal to the z axis by the given vector. | |
TMatrixD | calcPassiveMoveByJacobian (const ROOT::Math::XYZVector &by, const double expandBelowChi=M_PI/8) const |
Calculate the 5x5 jacobian matrix for the transport of the helix parameters, when moving the origin of the coordinate system to a new location. | |
void | calcPassiveMoveByJacobian (const double &byX, const double &byY, TMatrixD &jacobian, const double expandBelowChi=M_PI/8) const |
Calculate the jacobian matrix for the transport of the helix parameters, when moving the origin of the coordinate system to a new location. | |
void | reverse () |
Reverses the direction of travel of the helix in place. | |
double | calcArcLength2DFromSecantLength (const double &secantLength2D) const |
Helper function to calculate the two dimensional arc length from the length of a secant. | |
double | calcSecantLengthToArcLength2DFactor (const double &secantLength2D) const |
Helper function to calculate the factor between the dimensional secant length and the two dimensional arc length as seen in xy projection of the helix. | |
static double | reversePhi (const double &phi) |
Reverses an azimuthal angle to the opposite direction. | |
This class represents an ideal helix in perigee parameterization.
The used perigee parameters are:
getPerigee().Cross(getMomentum()).Z()
.in that exact order.
Each point on the helix can be adressed by the two dimensional arc length s, which has to be traversed to get to it from the perigee. More precisely the two dimensional arc length means the transverse part of the particles travel distance, hence the arc length of the circle in the xy projection.
If you need different kind of methods / interfaces to the helix please do not hesitate to contact olive.nosp@m.r.fr.nosp@m.ost@d.nosp@m.esy..nosp@m.de Contributions are always welcome.
Helix | ( | ) |
Constructor initializing all perigee parameters to zero.
Definition at line 24 of file Helix.cc.
Helix | ( | const ROOT::Math::XYZVector & | position, |
const ROOT::Math::XYZVector & | momentum, | ||
const short int | charge, | ||
const double | bZ | ||
) |
Constructor initializing class with a fit result.
The given position and momentum 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. It is assumed, that the B-field is homogeneous parallel to the z axis. |
Definition at line 33 of file Helix.cc.
Helix | ( | const double & | d0, |
const double & | phi0, | ||
const double & | omega, | ||
const double & | z0, | ||
const double & | tanLambda | ||
) |
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). |
|
inlineinherited |
Add a relation from this object to another object (with caching).
object | The object to which the relation should point. |
weight | The weight of the relation. |
namedRelation | Additional name for the relation, or "" for the default naming |
Definition at line 142 of file RelationsObject.h.
|
inlineinherited |
Add a relation from this object to another object (no caching, can be quite slow).
object | The object to which the relation should point. |
weight | The weight of the relation. |
namedRelation | Additional name for the relation, or "" for the default naming |
Definition at line 155 of file RelationsObject.h.
|
protected |
Helper method to calculate the signed two dimensional arc length and the signed distance to the circle of a point in the xy projection.
This function is an implementation detail that prevents some code duplication.
x | X coordinate of the point to which to extrapolate | |
y | Y coordinate of the point to which to extrapolate | |
[out] | arcLength2D | The two dimensional arc length from the perigee at which the closest approach is reached |
[out] | dr | Signed distance of the point to circle in the xy projection. |
Definition at line 545 of file Helix.cc.
|
protected |
Helper method to calculate the two dimensional arc length from the perigee to a point at cylindrical radius, which also has the distance dr from the circle in the xy projection.
This function is an implementation detail that prevents some code duplication.
deltaCylindricalR | The absolute distance of the point in question to the perigee in the xy projection |
dr | Signed distance of the point to circle in the xy projection. |
Definition at line 581 of file Helix.cc.
double calcArcLength2DFromSecantLength | ( | const double & | secantLength2D | ) | const |
Helper function to calculate the two dimensional arc length from the length of a secant.
Translates the direct length between two point on the circle in the xy projection to the two dimensional arc length on the circle Behaves smoothly in the limit of vanishing curvature.
Definition at line 426 of file Helix.cc.
|
staticprotected |
Implementation of the function asin(x) / x which handles small x values smoothly.
Definition at line 438 of file Helix.cc.
|
staticprotected |
Implementation of the function atan(x) / x which handles small x values smoothly.
Definition at line 477 of file Helix.cc.
|
staticprotected |
Implementation of the function d / dx (atan(x) / x) which handles small x values smoothly.
Definition at line 509 of file Helix.cc.
void calcPassiveMoveByJacobian | ( | const double & | byX, |
const double & | byY, | ||
TMatrixD & | jacobian, | ||
const double | expandBelowChi = M_PI / 8 |
||
) | const |
Calculate the jacobian matrix for the transport of the helix parameters, when moving the origin of the coordinate system to a new location.
Does not update the helix parameters in any way.
The jacobian matrix is written into the output parameter 'jacobian'. If output parameter is a 5x5 matrix only the derivatives of the 5 helix parameters are written If output parameter is a 6x6 matrix the derivatives of the 5 helix parameters and derivates of the two dimensional arc length are written. The derivatives of the arcLength2D are in the 6th row of the matrix.
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. | |
[out] | jacobian | The jacobian matrix containing the derivatives of the five helix parameters after the move relative the orignal parameters. |
expandBelowChi | Control parameter below, which absolute value of chi an expansion of divergent terms shall be used. This parameter exists for testing the consistency of the expansion with the closed form. In other applications the parameter should remain at its default value. |
Definition at line 309 of file Helix.cc.
TMatrixD calcPassiveMoveByJacobian | ( | const ROOT::Math::XYZVector & | by, |
const double | expandBelowChi = M_PI / 8 |
||
) | const |
Calculate the 5x5 jacobian matrix for the transport of the helix parameters, when moving the origin of the coordinate system to a new location.
Does not update the helix parameters in any way.
by | Vector by which the origin of the coordinate system should be moved. |
expandBelowChi | Control parameter below, which absolute value of chi an expansion of divergent terms shall be used. This parameter exists for testing the consistency of the expansion with the closed form. In other applications the parameter should remain at its default value. |
Definition at line 301 of file Helix.cc.
double calcSecantLengthToArcLength2DFactor | ( | const double & | secantLength2D | ) | const |
Helper function to calculate the factor between the dimensional secant length and the two dimensional arc length as seen in xy projection of the helix.
Definition at line 432 of file Helix.cc.
|
inlineinherited |
Copies all relations of sourceObj (pointing from or to sourceObj) to this object (including weights).
Useful if you want to make a complete copy of a StoreArray object to make modifications to it, but retain all information on linked objects.
Note: this only works if sourceObj inherits from the same base (e.g. RelationsObject), and only for related objects that also inherit from the same base.
Definition at line 170 of file RelationsObject.h.
|
static |
double getArcLength2DAtCylindricalR | ( | const double & | cylindricalR | ) | const |
Calculates the transverse travel distance at the point the helix first reaches the given cylindrical radius.
Gives the two dimensional arc length in the forward direction that is traversed until a certain cylindrical radius is reached. Returns NAN, if the cylindrical radius can not be reached, either because it is to far outside or inside of the perigee.
Forward the result to getPositionAtArcLength2D() or getMomentumAtArcLength2D() in order to extrapolate to the cylinder detector boundaries.
The result always has a positive sign. Hence it refers to the forward direction. Adding a minus sign yields the point at the same cylindrical radius but in the backward direction.
cylindricalR | The cylinder radius to extrapolate to. |
Definition at line 128 of file Helix.cc.
double getArcLength2DAtNormalPlane | ( | const double & | x, |
const double & | y, | ||
const double & | nX, | ||
const double & | nY | ||
) | const |
Calculates the arc length to reach a plane parallel to the z axes.
If there is no intersection with the plane NAN is returned
x | X coordinate of the support point of the plane |
y | Y coordinate of the support point of the plane |
nX | X coordinate of the normal vector of the plane |
nY | Y coordinate of the normal vector of the plane |
Definition at line 149 of file Helix.cc.
double getArcLength2DAtXY | ( | const double & | x, |
const double & | y | ||
) | const |
Calculates the two dimensional arc length at which the circle in the xy projection is closest to the point.
This calculates the dimensional arc length to the closest approach in xy projection. Hence, it only optimizes the distance in x and y. This is sufficent to extrapolate to an axial wire. For stereo wires this is not optimal, since the distance in the z direction also plays a role.
x | X coordinate of the point to which to extrapolate |
y | Y coordinate of the point to which to extrapolate |
Definition at line 141 of file Helix.cc.
|
inlineinherited |
Returns this object's array index (in StoreArray), or -1 if not found.
Definition at line 385 of file RelationsObject.h.
|
inlineinherited |
Get name of array this object is stored in, or "" if not found.
Definition at line 377 of file RelationsObject.h.
|
inlineprotectedinherited |
Returns the pointer to the raw DataStore array holding this object (protected since these arrays are easy to misuse).
Definition at line 418 of file RelationsObject.h.
short getChargeSign | ( | ) | const |
|
inline |
Getter for the cosine of the azimuth angle of travel direction at the perigee.
Definition at line 381 of file Helix.h.
|
inline |
|
inline |
Getter for d0, which is the signed distance to the perigee in the r-phi plane.
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 getPerigee().Cross(getMomentum()).Z()
.
Definition at line 372 of file Helix.h.
ROOT::Math::XYZVector getDirection | ( | ) | const |
Getter for unit vector of momentum at the perigee position.
This is mainly useful cases where curvature is zero (pT is infinite)
|
inlineinherited |
Return a short summary of this object's contents in raw text format.
Returns the contents of getInfoHTML() while translating line-breaks etc.
Definition at line 370 of file RelationsObject.h.
|
inlinevirtualinherited |
Return a short summary of this object's contents in HTML format.
Reimplement this in your own class to provide useful output for display or debugging purposes. For example, you might do something like:
Reimplemented in Particle, Cluster, MCParticle, PIDLikelihood, SoftwareTriggerResult, Track, TrackFitResult, and TRGSummary.
Definition at line 362 of file RelationsObject.h.
double getKappa | ( | const double | bZ | ) | const |
Getter for kappa, which is charge / transverse momentum or equivalently omega * alpha.
Definition at line 104 of file Helix.cc.
ROOT::Math::XYZVector getMomentum | ( | const double | bZ | ) | const |
Getter for vector of momentum at the perigee position.
As we calculate recalculate the momentum from a geometric helix, we need an estimate of the magnetic field along the z-axis to give back the momentum.
bZ | Magnetic field at the perigee. |
Definition at line 89 of file Helix.cc.
ROOT::Math::XYZVector getMomentumAtArcLength2D | ( | const double & | arcLength2D, |
const double & | bz | ||
) | const |
Calculates the momentum vector at the given two dimensional arc length.
arcLength2D | Two dimensional arc length to be traversed. |
bz | Magnetic field strength in the z direction. |
Definition at line 270 of file Helix.cc.
double getMomentumX | ( | const double | bZ | ) | const |
Calculates the x momentum of the particle at the perigee point.
bZ | Z component of the magnetic field in Tesla |
double getMomentumY | ( | const double | bZ | ) | const |
Calculates the y momentum of the particle at the perigee point.
bZ | Z component of the magnetic field in Tesla |
double getMomentumZ | ( | const double | bZ | ) | const |
Calculates the z momentum of the particle at the perigee point.
bZ | Z component of the magnetic field in Tesla |
|
inlinevirtualinherited |
Return a short name that describes this object, e.g.
pi+ for an MCParticle.
Reimplemented in Particle, and MCParticle.
Definition at line 344 of file RelationsObject.h.
|
inline |
ROOT::Math::XYZVector getPerigee | ( | ) | const |
Getter for the perigee position.
Definition at line 69 of file Helix.cc.
double getPerigeeX | ( | ) | const |
Calculates the x coordinate of the perigee point.
double getPerigeeY | ( | ) | const |
Calculates the y coordinate of the perigee point.
double getPerigeeZ | ( | ) | const |
Calculates the z coordinate of the perigee point.
Definition at line 64 of file Helix.cc.
|
inline |
Getter for phi0, which is the azimuth angle of the transverse momentum at the perigee.
getMomentum().Phi() == getPhi0() holds.
Definition at line 378 of file Helix.h.
ROOT::Math::XYZVector getPositionAtArcLength2D | ( | const double & | arcLength2D | ) | const |
Calculates the position on the helix at the given two dimensional arc length.
arcLength2D | Two dimensional arc length to be traversed. |
Definition at line 201 of file Helix.cc.
|
inlineinherited |
Get the object to or from which this object has a relation.
T | The class of objects to or from which the relation points. |
name | The name of the store array to or from which the relation points. If empty the default store array name for class T will be used. If the special name "ALL" is given all store arrays containing objects of type T are considered. |
namedRelation | Additional name for the relation, or "" for the default naming |
Definition at line 278 of file RelationsObject.h.
|
inlineinherited |
Get the object from which this object has a relation.
FROM | The class of objects from which the relation points. |
name | The name of the store array from which the relation points. If empty the default store array name for class FROM will be used. If the special name "ALL" is given all store arrays containing objects of type FROM are considered. |
namedRelation | Additional name for the relation, or "" for the default naming |
Definition at line 263 of file RelationsObject.h.
|
inlineinherited |
Get first related object & weight of relation pointing from an array.
FROM | The class of objects from which the relation points. |
name | The name of the store array from which the relation points. If empty the default store array name for class FROM will be used. If the special name "ALL" is given all store arrays containing objects of type FROM are considered. |
namedRelation | Additional name for the relation, or "" for the default naming |
Definition at line 314 of file RelationsObject.h.
|
inlineinherited |
Get the object to which this object has a relation.
TO | The class of objects to which the relation points. |
name | The name of the store array to which the relation points. If empty the default store array name for class TO will be used. If the special name "ALL" is given all store arrays containing objects of type TO are considered. |
namedRelation | Additional name for the relation, or "" for the default naming |
Definition at line 248 of file RelationsObject.h.
|
inlineinherited |
Get first related object & weight of relation pointing to an array.
TO | The class of objects to which the relation points. |
name | The name of the store array to which the relation points. If empty the default store array name for class TO will be used. If the special name "ALL" is given all store arrays containing objects of type TO are considered. |
namedRelation | Additional name for the relation, or "" for the default naming |
Definition at line 297 of file RelationsObject.h.
|
inlineinherited |
Get first related object & weight of relation pointing from/to an array.
T | The class of objects to or from which the relation points. |
name | The name of the store array to or from which the relation points. If empty the default store array name for class T will be used. If the special name "ALL" is given all store arrays containing objects of type T are considered. |
namedRelation | Additional name for the relation, or "" for the default naming |
Definition at line 331 of file RelationsObject.h.
|
inlineinherited |
Get the relations that point from another store array to this object.
FROM | The class of objects from which the relations point. |
name | The name of the store array from which the relations point. If empty the default store array name for class FROM will be used. If the special name "ALL" is given all store arrays containing objects of type FROM are considered. |
namedRelation | Additional name for the relation, or "" for the default naming |
Definition at line 212 of file RelationsObject.h.
|
inlineinherited |
Get the relations that point from this object to another store array.
TO | The class of objects to which the relations point. |
name | The name of the store array to which the relations point. If empty the default store array name for class TO will be used. If the special name "ALL" is given all store arrays containing objects of type TO are considered. |
namedRelation | Additional name for the relation, or "" for the default naming |
Definition at line 197 of file RelationsObject.h.
|
inlineinherited |
Get the relations between this object and another store array.
Relations in both directions are returned.
T | The class of objects to or from which the relations point. |
name | The name of the store array to or from which the relations point. If empty the default store array name for class T will be used. If the special name "ALL" is given all store arrays containing objects of type T are considered. |
namedRelation | Additional name for the relation, or "" for the default naming |
Definition at line 230 of file RelationsObject.h.
|
inline |
ROOT::Math::XYZVector getTangentialAtArcLength2D | ( | const double & | arcLength2D | ) | const |
Calculates the tangential vector to the helix curve at the given two dimensional arc length.
The tangential vector is the derivative of the position with respect to the two dimensional arc length It is normalised such that the cylindrical radius of the result is 1
getTangentialAtArcLength2D(arcLength2D).Perp() == 1 holds.
arcLength2D | Two dimensional arc length to be traversed. |
Definition at line 245 of file Helix.cc.
|
inline |
double getTransverseMomentum | ( | const double | bZ | ) | const |
ROOT::Math::XYZVector getUnitTangentialAtArcLength2D | ( | const double & | arcLength2D | ) | const |
Calculates the unit tangential vector to the helix curve at the given two dimensional arc length.
arcLength2D | Two dimensional arc length to be traversed. |
Definition at line 261 of file Helix.cc.
|
inline |
double passiveMoveBy | ( | const double & | byX, |
const double & | byY, | ||
const double & | byZ | ||
) |
Moves origin of the coordinate system (passive transformation) orthogonal to the z axis 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. |
Update the parameters inplace. Omega and tan lambda are unchanged
Definition at line 279 of file Helix.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 245 of file Helix.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 119 of file Helix.cc.
|
static |
|
private |
Cartesian to Perigee conversion.
Definition at line 588 of file Helix.cc.
|
friend |
|
mutableprivateinherited |
Cache of the index in the TClonesArray to which this object belongs.
Definition at line 432 of file RelationsObject.h.
|
mutableprivateinherited |
Cache of the data store entry to which this object belongs.
Definition at line 429 of file RelationsObject.h.
|
private |
Memory for the signed distance to the perigee.
The sign is the same as of the z component of getPerigee().Cross(getMomentum()).
|
private |
|
private |
|
private |
|
private |