ThePEG 2.3.0
|
A 4-component Lorentz vector. More...
#include <LorentzVector.h>
Public Member Functions | |
Constructors. | |
LorentzVector () | |
LorentzVector (Value x, Value y, Value z, Value t) | |
LorentzVector (const ThreeVector< Value > &v, Value t) | |
template<typename U > | |
LorentzVector (const LorentzVector< U > &v) | |
template<typename ValueB > | |
LorentzVector< Value > & | operator= (const LorentzVector< ValueB > &b) |
Assignment operator. | |
Component access methods. | |
Value | x () const |
Value | y () const |
Value | z () const |
Value | t () const |
Value | e () const |
Component set methods. | |
void | setX (Value x) |
void | setY (Value y) |
void | setZ (Value z) |
void | setT (Value t) |
void | setE (Value e) |
ThreeVector< Value > | vect () const |
Access to the 3-component part. | |
operator ThreeVector< Value > () const | |
Cast to the 3-component part. | |
void | setVect (const ThreeVector< Value > &p) |
Set the 3-component part. | |
LorentzVector< Value > | conjugate () const |
The complex conjugate vector. | |
Value2 | m2 () const |
Squared magnitude \(x^\mu\,x_\mu=t^2 - \vec{x}^2\). | |
Value2 | m2 (const LorentzVector< Value > &a) const |
Squared magnitude with another vector. | |
Value | m () const |
Magnitude (signed) \(\pm\sqrt{|t^2 - \vec{x}^2|}\). | |
Value2 | mt2 () const |
Transverse mass squared \(t^2-z^2\). | |
Value | mt () const |
Transverse mass (signed) \(\pm\sqrt{|t^2 - z^2|}\). | |
Value2 | perp2 () const |
Squared transverse component of the spatial vector \(x^2+y^2\). | |
Value | perp () const |
Transverse component of the spatial vector \(\pm\sqrt{x^2 + y^2}\). | |
template<typename U > | |
Value2 | perp2 (const ThreeVector< U > &p) const |
Squared transverse component of the spatial vector with respect to the given axis. | |
template<typename U > | |
Value | perp (const ThreeVector< U > &p) const |
Transverse component of the spatial vector with respect to the given axis. | |
Value2 | et2 () const |
Transverse energy squared. | |
Value | et () const |
Transverse energy (signed). | |
Value2 | et2 (const ThreeVector< double > &v) const |
Transverse energy squared with respect to the given axis. | |
Value | et (const ThreeVector< double > &v) const |
Transverse energy with respect to the given axis (signed). | |
Spherical coordinates for the spatial part. | |
Value2 | rho2 () const |
Radius squared. | |
Value | rho () const |
Radius. | |
void | setRho (Value newRho) |
Set new radius. | |
double | theta () const |
Polar angle. | |
double | cosTheta () const |
Cosine of the polar angle. | |
double | phi () const |
Azimuthal angle. | |
double | eta () const |
Pseudorapidity of spatial part. | |
double | angle (const LorentzVector< Value > &w) const |
Spatial angle with another vector. | |
double | rapidity () const |
Rapidity \(\frac{1}{2}\ln\frac{t+z}{t-z} \). | |
double | rapidity (const Axis &ref) const |
Rapidity with respect to another vector. | |
Boost | boostVector () const |
Boost from reference frame into this vector's rest frame: \(\frac{\vec{x}}{t}\). | |
Boost | findBoostToCM () const |
Boost from reference frame into this vector's rest frame: \(-\frac{\vec{x}}{t}\). | |
Value | plus () const |
Returns the positive light-cone component \(t + z\). | |
Value | minus () const |
Returns the negative light-cone component \(t - z\). | |
bool | isNear (const LorentzVector< Value > &w, double epsilon) const |
Are two vectors nearby, using Euclidean measure \(t^2 + |\vec{x}|^2\)? | |
LorentzVector< Value > & | transform (const SpinOneLorentzRotation &m) |
Rotate the vector. Resets \(x^\mu\rightarrow\mathsf{M}^\mu_\nu x^\nu\). | |
LorentzVector< Value > & | operator*= (const SpinOneLorentzRotation &m) |
Rotate the vector. Resets \(x^\mu\rightarrow\mathsf{M}^\mu_\nu x^\nu\). | |
template<typename U > | |
auto | dot (const LorentzVector< U > &a) const -> decltype(this->t() *a.t()) |
Dot product with metric \((+,-,-,-)\). | |
LorentzVector< Value > & | boost (double bx, double by, double bz, double gamma=-1.) |
Apply boost. | |
LorentzVector< Value > & | boost (Boost b, double gamma=-1.) |
Apply boost. | |
LorentzVector< Value > & | rotateX (double phi) |
Apply rotation around the x-axis. | |
LorentzVector< Value > & | rotateY (double phi) |
Apply rotation around the y-axis. | |
LorentzVector< Value > & | rotateZ (double phi) |
Apply rotation around the z-axis. | |
LorentzVector< Value > & | rotateUz (const Axis &axis) |
Rotate the reference frame to a new z-axis. | |
template<typename U > | |
LorentzVector< Value > & | rotate (double angle, const ThreeVector< U > &axis) |
Apply a rotation. | |
Mathematical assignment operators. | |
LorentzVector< Complex > & | operator+= (const LorentzVector< complex< QtyDouble > > &a) |
template<typename ValueB > | |
LorentzVector< Value > & | operator+= (const LorentzVector< ValueB > &a) |
LorentzVector< Complex > & | operator-= (const LorentzVector< complex< QtyDouble > > &a) |
template<typename ValueB > | |
LorentzVector< Value > & | operator-= (const LorentzVector< ValueB > &a) |
LorentzVector< Value > & | operator*= (double a) |
LorentzVector< Value > & | operator/= (double a) |
Private Types | |
using | Value2 = decltype(sqr(std::declval< Value >())) |
Value squared. | |
Private Attributes | |
Vector components | |
Value | theX |
Value | theY |
Value | theZ |
Value | theT |
A 4-component Lorentz vector.
It can be created with any unit type as template parameter. All basic mathematical operations are supported, as well as a subset of the CLHEP LorentzVector functionality.
Definition at line 43 of file LorentzVector.h.
|
private |
Value squared.
Definition at line 47 of file LorentzVector.h.
|
inline |
Definition at line 52 of file LorentzVector.h.
|
inline |
Definition at line 55 of file LorentzVector.h.
|
inline |
Definition at line 58 of file LorentzVector.h.
|
inline |
Definition at line 62 of file LorentzVector.h.
|
inline |
Spatial angle with another vector.
Definition at line 253 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::vect().
Referenced by ThePEG::LorentzVector< Value >::rotate().
|
inline |
Apply boost.
b | Three-vector giving the boost. |
gamma | Optional gamma parameter for higher numerical accuracy. The user has to ensure consistency. If not given, it will be calculated as \(\gamma=1/\sqrt{1-\beta^2}\). |
Definition at line 381 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::boost().
|
inline |
Apply boost.
bx | Component x of the boost. |
by | Component y of the boost. |
bz | Component z of the boost. |
gamma | Optional gamma parameter for higher numerical accuracy. The user has to ensure consistency. If not given, it will be calculated as \(\gamma=1/\sqrt{1-\beta^2}\). |
Definition at line 354 of file LorentzVector.h.
Referenced by ThePEG::LorentzVector< Value >::boost().
|
inline |
Boost from reference frame into this vector's rest frame: \(\frac{\vec{x}}{t}\).
Definition at line 283 of file LorentzVector.h.
References ERROR_IF, ThePEG::LorentzVector< Value >::m2(), ThePEG::LorentzVector< Value >::rho2(), and ThePEG::LorentzVector< Value >::vect().
Referenced by ThePEG::dirBoostVector(), and ThePEG::LorentzVector< Value >::findBoostToCM().
|
inline |
The complex conjugate vector.
Definition at line 113 of file LorentzVector.h.
|
inline |
Cosine of the polar angle.
Definition at line 230 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::rho().
Referenced by ThePEG::dirCosTheta().
|
inline |
Dot product with metric \((+,-,-,-)\).
Definition at line 334 of file LorentzVector.h.
Referenced by ThePEG::LorentzVector< Value >::isNear().
|
inline |
Definition at line 83 of file LorentzVector.h.
|
inline |
Transverse energy (signed).
Definition at line 181 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::et2().
|
inline |
Transverse energy with respect to the given axis (signed).
Definition at line 196 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::et2().
|
inline |
Transverse energy squared.
Definition at line 174 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::vect().
Referenced by ThePEG::LorentzVector< Value >::et().
|
inline |
Transverse energy squared with respect to the given axis.
Definition at line 188 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::vect().
|
inline |
Pseudorapidity of spatial part.
Definition at line 244 of file LorentzVector.h.
References ThePEG::Constants::epsilon, ThePEG::LorentzVector< Value >::m(), ThePEG::LorentzVector< Value >::perp(), ThePEG::LorentzVector< Value >::rho(), and ThePEG::ZERO.
|
inline |
Boost from reference frame into this vector's rest frame: \(-\frac{\vec{x}}{t}\).
Definition at line 299 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::boostVector().
|
inline |
Are two vectors nearby, using Euclidean measure \(t^2 + |\vec{x}|^2\)?
Definition at line 310 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::dot(), ThePEG::sqr(), and ThePEG::LorentzVector< Value >::vect().
Referenced by ThePEG::SpinInfo::isNear().
|
inline |
Magnitude (signed) \(\pm\sqrt{|t^2 - \vec{x}^2|}\).
Definition at line 131 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::m2().
Referenced by ThePEG::LorentzVector< Value >::eta(), ThePEG::Particle::lifeTime(), ThePEG::LorentzVector< Value >::operator*=(), ThePEG::Lorentz5Vector< Value >::rescaleMass(), and ThePEG::LorentzVector< Value >::transform().
|
inline |
Squared magnitude \(x^\mu\,x_\mu=t^2 - \vec{x}^2\).
Definition at line 119 of file LorentzVector.h.
References ThePEG::sqr().
Referenced by ThePEG::LorentzVector< Value >::boostVector(), ThePEG::LorentzVector< Value >::m(), ThePEG::Helicity::WaveFunctionBase::m2(), and ThePEG::LorentzVector< Value >::rapidity().
|
inline |
Squared magnitude with another vector.
Definition at line 125 of file LorentzVector.h.
References ThePEG::sqr().
|
inline |
Returns the negative light-cone component \(t - z\).
Definition at line 307 of file LorentzVector.h.
Referenced by ThePEG::Lorentz5Vector< Value >::dirMinus(), ThePEG::dirMinus(), ThePEG::Lorentz5Vector< Value >::dirPlus(), ThePEG::dirPlus(), and ThePEG::Particle::Pminus().
|
inline |
Transverse mass (signed) \(\pm\sqrt{|t^2 - z^2|}\).
Definition at line 141 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::mt2().
|
inline |
Transverse mass squared \(t^2-z^2\).
Definition at line 138 of file LorentzVector.h.
Referenced by ThePEG::LorentzVector< Value >::mt().
|
inline |
Cast to the 3-component part.
Definition at line 102 of file LorentzVector.h.
|
inline |
Rotate the vector. Resets \(x^\mu\rightarrow\mathsf{M}^\mu_\nu x^\nu\).
Definition at line 327 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::m(), and ThePEG::LorentzVector< Value >::transform().
|
inline |
Definition at line 521 of file LorentzVector.h.
|
inline |
Definition at line 487 of file LorentzVector.h.
|
inline |
Definition at line 496 of file LorentzVector.h.
|
inline |
Definition at line 504 of file LorentzVector.h.
|
inline |
Definition at line 513 of file LorentzVector.h.
|
inline |
Definition at line 529 of file LorentzVector.h.
|
inline |
Assignment operator.
Definition at line 68 of file LorentzVector.h.
Referenced by ThePEG::Lorentz5Vector< Value >::operator=().
|
inline |
Transverse component of the spatial vector \(\pm\sqrt{x^2 + y^2}\).
Definition at line 151 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::perp2().
Referenced by ThePEG::LorentzVector< Value >::eta(), and ThePEG::LorentzVector< Value >::theta().
|
inline |
Transverse component of the spatial vector with respect to the given axis.
Definition at line 168 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::vect().
|
inline |
Squared transverse component of the spatial vector \(x^2+y^2\).
Definition at line 148 of file LorentzVector.h.
References ThePEG::sqr().
Referenced by ThePEG::LorentzVector< Value >::perp(), ThePEG::Particle::perpmass2(), and ThePEG::LorentzVector< Value >::rapidity().
|
inline |
Squared transverse component of the spatial vector with respect to the given axis.
Definition at line 158 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::vect().
|
inline |
Azimuthal angle.
Definition at line 238 of file LorentzVector.h.
Referenced by ThePEG::LorentzVector< Value >::rotateX(), ThePEG::LorentzVector< Value >::rotateY(), and ThePEG::LorentzVector< Value >::rotateZ().
|
inline |
Returns the positive light-cone component \(t + z\).
Definition at line 305 of file LorentzVector.h.
Referenced by ThePEG::Lorentz5Vector< Value >::dirMinus(), ThePEG::dirMinus(), ThePEG::Lorentz5Vector< Value >::dirPlus(), ThePEG::dirPlus(), and ThePEG::Particle::Pplus().
|
inline |
Rapidity \(\frac{1}{2}\ln\frac{t+z}{t-z} \).
Definition at line 259 of file LorentzVector.h.
References ThePEG::Constants::epsilon, ERROR_IF, ThePEG::LorentzVector< Value >::m2(), ThePEG::LorentzVector< Value >::perp2(), ThePEG::sqr(), and ThePEG::ZERO.
|
inline |
Rapidity with respect to another vector.
Definition at line 268 of file LorentzVector.h.
References ThePEG::Constants::epsilon, ERROR_IF, ThePEG::LorentzVector< Value >::m2(), ThePEG::ThreeVector< Value >::mag2(), ThePEG::LorentzVector< Value >::perp2(), ThePEG::sqr(), ThePEG::LorentzVector< Value >::vect(), and ThePEG::ZERO.
|
inline |
Radius.
Definition at line 208 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::rho2().
Referenced by ThePEG::LorentzVector< Value >::cosTheta(), ThePEG::Particle::eta(), ThePEG::LorentzVector< Value >::eta(), and ThePEG::LorentzVector< Value >::setRho().
|
inline |
Radius squared.
Definition at line 205 of file LorentzVector.h.
References ThePEG::sqr().
Referenced by ThePEG::LorentzVector< Value >::boostVector(), and ThePEG::LorentzVector< Value >::rho().
|
inline |
Apply a rotation.
angle | Rotation angle in radians. |
axis | Rotation axis. |
Definition at line 456 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::angle(), and ThePEG::ThreeVector< Value >::mag().
|
inline |
Rotate the reference frame to a new z-axis.
Definition at line 430 of file LorentzVector.h.
References ThePEG::ThreeVector< Value >::unit().
|
inline |
Apply rotation around the x-axis.
phi | Angle in radians. |
Definition at line 390 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::phi().
|
inline |
Apply rotation around the y-axis.
phi | Angle in radians. |
Definition at line 404 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::phi().
|
inline |
Apply rotation around the z-axis.
phi | Angle in radians. |
Definition at line 418 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::phi().
|
inline |
Definition at line 92 of file LorentzVector.h.
|
inline |
Set new radius.
Definition at line 211 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::rho().
Referenced by ThePEG::Lorentz5Vector< Value >::rescaleRho().
|
inline |
Definition at line 91 of file LorentzVector.h.
|
inline |
Set the 3-component part.
Definition at line 105 of file LorentzVector.h.
Referenced by ThePEG::Particle::set3Momentum(), and ThePEG::Particle::setLifeLength().
|
inline |
Definition at line 88 of file LorentzVector.h.
|
inline |
Definition at line 89 of file LorentzVector.h.
|
inline |
Definition at line 90 of file LorentzVector.h.
|
inline |
Definition at line 82 of file LorentzVector.h.
|
inline |
Polar angle.
Definition at line 223 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::perp().
Referenced by ThePEG::dirTheta().
|
inline |
Rotate the vector. Resets \(x^\mu\rightarrow\mathsf{M}^\mu_\nu x^\nu\).
Definition at line 321 of file LorentzVector.h.
References ThePEG::LorentzVector< Value >::m().
Referenced by ThePEG::LorentzVector< Value >::operator*=(), ThePEG::Helicity::VectorWaveFunction::transform(), and ThePEG::Lorentz5Vector< Value >::transform().
|
inline |
Access to the 3-component part.
Definition at line 97 of file LorentzVector.h.
Referenced by ThePEG::LorentzVector< Value >::angle(), ThePEG::LorentzVector< Value >::boostVector(), ThePEG::LorentzVector< Value >::et2(), ThePEG::LorentzVector< Value >::isNear(), ThePEG::LorentzVector< complex< double > >::operator ThreeVector< complex< double > >(), ThePEG::LorentzVector< Value >::perp(), ThePEG::LorentzVector< Value >::perp2(), and ThePEG::LorentzVector< Value >::rapidity().
|
inline |
Definition at line 79 of file LorentzVector.h.
|
inline |
Definition at line 80 of file LorentzVector.h.
|
inline |
Definition at line 81 of file LorentzVector.h.
|
private |
Definition at line 544 of file LorentzVector.h.
|
private |
Definition at line 541 of file LorentzVector.h.
|
private |
Definition at line 542 of file LorentzVector.h.
|
private |
Definition at line 543 of file LorentzVector.h.