|
HepMC3 event record library
|
Generic 4-vector.
Interpretation of its content depends on accessors used: it's much simpler to do this than to distinguish between space and momentum vectors via the type system (especially given the need for backward compatibility with HepMC2). Be sensible and don't call energy functions on spatial vectors! To avoid duplication, most definitions are only implemented on the spatial function names, with the energy-momentum functions as aliases.
This is not intended to be a fully featured 4-vector, but does contain the majority of common non-boosting functionality, as well as a few support operations on 4-vectors.
The implementations in this class are fully inlined.
Definition at line 35 of file FourVector.h.
#include <FourVector.h>
Public Member Functions | |
| FourVector () | |
| Default constructor. | |
| FourVector (double xx, double yy, double zz, double ee) | |
| Sets all FourVector fields. | |
| FourVector (const FourVector &v) | |
| Copy constructor. | |
Component accessors | |
| void | set (double x1, double x2, double x3, double x4) |
| Set all FourVector fields, in order x,y,z,t. | |
| double | x () const |
| x-component of position/displacement | |
| void | set_x (double xx) |
| Set x-component of position/displacement. | |
| void | setX (double xx) |
| double | y () const |
| y-component of position/displacement | |
| void | set_y (double yy) |
| Set y-component of position/displacement. | |
| void | setY (double yy) |
| double | z () const |
| z-component of position/displacement | |
| void | set_z (double zz) |
| Set z-component of position/displacement. | |
| void | setZ (double zz) |
| double | t () const |
| Time component of position/displacement. | |
| void | set_t (double tt) |
| Set time component of position/displacement. | |
| void | setT (double tt) |
| double | px () const |
| x-component of momentum | |
| void | set_px (double pxx) |
| Set x-component of momentum. | |
| void | setPx (double pxx) |
| double | py () const |
| y-component of momentum | |
| void | set_py (double pyy) |
| Set y-component of momentum. | |
| void | setPy (double pyy) |
| double | pz () const |
| z-component of momentum | |
| void | set_pz (double pzz) |
| Set z-component of momentum. | |
| void | setPz (double pzz) |
| double | e () const |
| Energy component of momentum. | |
| void | set_e (double ee) |
| Set energy component of momentum. | |
| void | setE (double ee) |
Computed properties | |
| double | length2 () const |
| Squared magnitude of (x, y, z) 3-vector. | |
| double | length () const |
| Magnitude of spatial (x, y, z) 3-vector. | |
| double | perp2 () const |
| Squared magnitude of (x, y) vector. | |
| double | perp () const |
| Magnitude of (x, y) vector. | |
| double | interval () const |
| Spacetime invariant interval s^2 = t^2 - x^2 - y^2 - z^2. | |
| double | p3mod2 () const |
| Squared magnitude of p3 = (px, py, pz) vector. | |
| double | p3mod () const |
| Magnitude of p3 = (px, py, pz) vector. | |
| double | pt2 () const |
| Squared transverse momentum px^2 + py^2. | |
| double | pt () const |
| Transverse momentum. | |
| double | m2 () const |
| Squared invariant mass m^2 = E^2 - px^2 - py^2 - pz^2. | |
| double | m () const |
| Invariant mass. Returns -sqrt(-m) if e^2 - P^2 is negative. | |
| double | phi () const |
| Azimuthal angle. | |
| double | theta () const |
| Polar angle w.r.t. z direction. | |
| double | eta () const |
| Pseudorapidity. | |
| double | rap () const |
| Rapidity. | |
| double | abs_eta () const |
| Absolute pseudorapidity. | |
| double | abs_rap () const |
| Absolute rapidity. | |
| double | pseudoRapidity () const |
Comparisons to another FourVector | |
| bool | is_zero () const |
| Check if the length of this vertex is zero. | |
| double | delta_phi (const FourVector &v) const |
| Signed azimuthal angle separation in [-pi, pi]. | |
| double | delta_eta (const FourVector &v) const |
| Pseudorapidity separation. | |
| double | delta_rap (const FourVector &v) const |
| Rapidity separation. | |
| double | delta_r2_eta (const FourVector &v) const |
| R_eta^2-distance separation dR^2 = dphi^2 + deta^2. | |
| double | delta_r_eta (const FourVector &v) const |
| R_eta-distance separation dR = sqrt(dphi^2 + deta^2). | |
| double | delta_r2_rap (const FourVector &v) const |
| R_rap^2-distance separation dR^2 = dphi^2 + drap^2. | |
| double | delta_r_rap (const FourVector &v) const |
| R-rap-distance separation dR = sqrt(dphi^2 + drap^2). | |
Operators | |
| double | m_v1 |
| px or x. Interpretation depends on accessors used | |
| double | m_v2 |
| py or y. Interpretation depends on accessors used | |
| double | m_v3 |
| pz or z. Interpretation depends on accessors used | |
| double | m_v4 |
| e or t. Interpretation depends on accessors used | |
| bool | operator== (const FourVector &rhs) const |
| Equality. | |
| bool | operator!= (const FourVector &rhs) const |
| Inequality. | |
| FourVector | operator+ (const FourVector &rhs) const |
| Arithmetic operator +. | |
| FourVector | operator- (const FourVector &rhs) const |
| Arithmetic operator -. | |
| FourVector | operator* (const double rhs) const |
| Arithmetic operator * by scalar. | |
| FourVector | operator/ (const double rhs) const |
| Arithmetic operator / by scalar. | |
| void | operator+= (const FourVector &rhs) |
| Arithmetic operator +=. | |
| void | operator-= (const FourVector &rhs) |
| Arithmetic operator -=. | |
| void | operator*= (const double rhs) |
| Arithmetic operator *= by scalar. | |
| void | operator/= (const double rhs) |
| Arithmetic operator /= by scalar. | |
| static const FourVector & | ZERO_VECTOR () |
| Static null FourVector = (0,0,0,0). | |
|
inline |
|
inline |
Sets all FourVector fields.
Definition at line 42 of file FourVector.h.
|
inline |
Copy constructor.
Definition at line 45 of file FourVector.h.
References FourVector(), m_v1, m_v2, m_v3, and m_v4.
|
inline |
|
inline |
|
inline |
Pseudorapidity separation.
Definition at line 186 of file FourVector.h.
References eta(), and FourVector().
|
inline |
Signed azimuthal angle separation in [-pi, pi].
Definition at line 177 of file FourVector.h.
References FourVector(), M_PI, and phi().
|
inline |
R_eta^2-distance separation dR^2 = dphi^2 + deta^2.
Definition at line 192 of file FourVector.h.
References delta_eta(), delta_phi(), and FourVector().
|
inline |
R_rap^2-distance separation dR^2 = dphi^2 + drap^2.
Definition at line 202 of file FourVector.h.
References delta_phi(), delta_rap(), and FourVector().
|
inline |
R_eta-distance separation dR = sqrt(dphi^2 + deta^2).
Definition at line 197 of file FourVector.h.
References delta_r2_eta(), and FourVector().
|
inline |
R-rap-distance separation dR = sqrt(dphi^2 + drap^2).
Definition at line 207 of file FourVector.h.
References delta_r2_rap(), and FourVector().
|
inline |
Rapidity separation.
Definition at line 189 of file FourVector.h.
References FourVector(), and rap().
|
inline |
|
inline |
|
inline |
Spacetime invariant interval s^2 = t^2 - x^2 - y^2 - z^2.
Definition at line 133 of file FourVector.h.
|
inline |
|
inline |
Magnitude of spatial (x, y, z) 3-vector.
Definition at line 127 of file FourVector.h.
References length2().
|
inline |
Squared magnitude of (x, y, z) 3-vector.
Definition at line 125 of file FourVector.h.
|
inline |
Invariant mass. Returns -sqrt(-m) if e^2 - P^2 is negative.
Definition at line 146 of file FourVector.h.
References m2().
|
inline |
Squared invariant mass m^2 = E^2 - px^2 - py^2 - pz^2.
Definition at line 144 of file FourVector.h.
References interval().
|
inline |
|
inline |
Arithmetic operator * by scalar.
Definition at line 233 of file FourVector.h.
References FourVector(), t(), x(), y(), and z().
|
inline |
|
inline |
Arithmetic operator +.
Definition at line 225 of file FourVector.h.
References FourVector(), t(), x(), y(), and z().
|
inline |
|
inline |
Arithmetic operator -.
Definition at line 229 of file FourVector.h.
References FourVector(), t(), x(), y(), and z().
|
inline |
|
inline |
Arithmetic operator / by scalar.
Definition at line 237 of file FourVector.h.
References FourVector(), t(), x(), y(), and z().
|
inline |
|
inline |
Equality.
Definition at line 218 of file FourVector.h.
References FourVector(), t(), x(), y(), and z().
|
inline |
Magnitude of p3 = (px, py, pz) vector.
Definition at line 138 of file FourVector.h.
References length().
|
inline |
Squared magnitude of p3 = (px, py, pz) vector.
Definition at line 136 of file FourVector.h.
References length2().
|
inline |
|
inline |
Squared magnitude of (x, y) vector.
Definition at line 129 of file FourVector.h.
|
inline |
|
inline |
Same as eta()
Definition at line 165 of file FourVector.h.
References eta().
|
inline |
|
inline |
Squared transverse momentum px^2 + py^2.
Definition at line 140 of file FourVector.h.
References perp2().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Set all FourVector fields, in order x,y,z,t.
Definition at line 53 of file FourVector.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Set time component of position/displacement.
Definition at line 85 of file FourVector.h.
References m_v4.
|
inline |
Set x-component of position/displacement.
Definition at line 64 of file FourVector.h.
References m_v1.
|
inline |
Set y-component of position/displacement.
Definition at line 71 of file FourVector.h.
References m_v2.
|
inline |
Set z-component of position/displacement.
Definition at line 78 of file FourVector.h.
References m_v3.
|
inline |
Definition at line 116 of file FourVector.h.
References set_e().
|
inline |
Definition at line 95 of file FourVector.h.
References set_px().
|
inline |
Definition at line 102 of file FourVector.h.
References set_py().
|
inline |
Definition at line 109 of file FourVector.h.
References set_pz().
|
inline |
Definition at line 87 of file FourVector.h.
References set_t().
|
inline |
Definition at line 66 of file FourVector.h.
References set_x().
|
inline |
Definition at line 73 of file FourVector.h.
References set_y().
|
inline |
Definition at line 80 of file FourVector.h.
References set_z().
|
inline |
Time component of position/displacement.
Definition at line 83 of file FourVector.h.
References m_v4.
|
inline |
Polar angle w.r.t. z direction.
Definition at line 151 of file FourVector.h.
|
inline |
|
inline |
|
inline |
|
inlinestatic |
Static null FourVector = (0,0,0,0).
Definition at line 274 of file FourVector.h.
References FourVector().
|
private |
px or x. Interpretation depends on accessors used
Definition at line 282 of file FourVector.h.
|
private |
py or y. Interpretation depends on accessors used
Definition at line 283 of file FourVector.h.
|
private |
pz or z. Interpretation depends on accessors used
Definition at line 284 of file FourVector.h.
|
private |
e or t. Interpretation depends on accessors used
Definition at line 285 of file FourVector.h.