![]() |
ROOT 6.08/07 Reference Guide |
Class describing a generic LorentzVector in the 4D space-time, using the specified coordinate system for the spatial vector part.
The metric used for the LorentzVector is (-,-,-,+). In the case of LorentzVector we don't distinguish the concepts of points and displacement vectors as in the 3D case, since the main use case for 4D Vectors is to describe the kinematics of relativistic particles. A LorentzVector behaves like a DisplacementVector in 4D. The Minkowski components could be viewed as v and t, or for kinematic 4-vectors, as p and E.
Definition at line 54 of file LorentzVector.h.
Public Types | |
typedef DisplacementVector3D< Cartesian3D< Scalar > > | BetaVector |
typedef CoordSystem | CoordinateType |
typedef CoordSystem::Scalar | Scalar |
Public Member Functions | |
LorentzVector () | |
default constructor of an empty vector (Px = Py = Pz = E = 0 ) More... | |
LorentzVector (const Scalar &a, const Scalar &b, const Scalar &c, const Scalar &d) | |
generic constructors from four scalar values. More... | |
template<class Coords > | |
LorentzVector (const LorentzVector< Coords > &v) | |
constructor from a LorentzVector expressed in different coordinates, or using a different Scalar type More... | |
template<class ForeignLorentzVector > | |
LorentzVector (const ForeignLorentzVector &v) | |
Construct from a foreign 4D vector type, for example, HepLorentzVector Precondition: v must implement methods x(), y(), z(), and t() More... | |
Scalar | Beta () const |
Return beta scalar value. More... | |
BetaVector | BoostToCM () const |
The beta vector for the boost that would bring this vector into its center of mass frame (zero momentum) More... | |
template<class Other4Vector > | |
BetaVector | BoostToCM (const Other4Vector &v) const |
The beta vector for the boost that would bring this vector into its center of mass frame (zero momentum) More... | |
Scalar | ColinearRapidity () const |
Rapidity in the direction of travel: atanh (|P|/E)=.5 log[(E+P)/(E-P)]. More... | |
const CoordSystem & | Coordinates () const |
Retrieve a const reference to the coordinates object. More... | |
template<class OtherLorentzVector > | |
Scalar | Dot (const OtherLorentzVector &q) const |
scalar (Dot) product of two LorentzVector vectors (metric is -,-,-,+) Enable the product using any other LorentzVector implementing the x(), y() , y() and t() member functions More... | |
Scalar | E () const |
return 4-th component (time, or energy for a 4-momentum vector) More... | |
Scalar | e () const |
Scalar | energy () const |
Scalar | Et () const |
return the transverse energy \[ e_t = \sqrt{ \frac{E^2 p_{\perp}^2 }{ |p|^2 } } X sign(E) \] More... | |
Scalar | Et2 () const |
return the transverse energy squared \[ e_t = \frac{E^2 p_{\perp}^2 }{ |p|^2 } \] More... | |
Scalar | Eta () const |
pseudorapidity \[ \eta = - \ln { \tan { \frac { \theta} {2} } } \] More... | |
Scalar | eta () const |
Scalar | Gamma () const |
Return Gamma scalar value. More... | |
void | GetCoordinates (Scalar &a, Scalar &b, Scalar &c, Scalar &d) const |
get internal data into 4 Scalar numbers More... | |
void | GetCoordinates (Scalar dest[]) const |
get internal data into an array of 4 Scalar numbers More... | |
template<class IT > | |
void | GetCoordinates (IT begin, IT end) const |
get internal data into 4 Scalars at *begin to *end More... | |
template<class IT > | |
void | GetCoordinates (IT begin) const |
get internal data into 4 Scalars at *begin More... | |
bool | isLightlike (Scalar tolerance=100 *std::numeric_limits< Scalar >::epsilon()) const |
Determine if momentum-energy can represent a massless particle. More... | |
bool | isSpacelike () const |
Determine if momentum-energy is spacelike, and represents a tachyon. More... | |
bool | isTimelike () const |
Determine if momentum-energy can represent a physical massive particle. More... | |
Scalar | M () const |
return magnitude (mass) using the (-,-,-,+) metric. More... | |
Scalar | M2 () const |
return magnitude (mass) squared M2 = T**2 - X**2 - Y**2 - Z**2 (we use -,-,-,+ metric) More... | |
Scalar | mag () const |
Scalar | mag2 () const |
Scalar | mass () const |
Scalar | mass2 () const |
Scalar | Mt () const |
return the transverse mass \[ \sqrt{ m_t^2 = E^2 - p{_z}^2} X sign(E^ - p{_z}^2) \] More... | |
Scalar | mt () const |
Scalar | Mt2 () const |
return the transverse mass squared \[ m_t^2 = E^2 - p{_z}^2 \] More... | |
Scalar | mt2 () const |
bool | operator!= (const LorentzVector &rhs) const |
LorentzVector | operator* (const Scalar &a) const |
product of a LorentzVector by a scalar quantity More... | |
LorentzVector & | operator*= (Scalar a) |
multiplication by a scalar quantity v *= a More... | |
template<class OtherLorentzVector > | |
LorentzVector | operator+ (const OtherLorentzVector &v2) const |
addition of two LorentzVectors (v3 = v1 + v2) Enable the addition with any other LorentzVector More... | |
LorentzVector | operator+ () const |
template<class OtherLorentzVector > | |
LorentzVector & | operator+= (const OtherLorentzVector &q) |
Self addition with another Vector ( v+= q ) Enable the addition with any other LorentzVector. More... | |
template<class OtherLorentzVector > | |
LorentzVector | operator- (const OtherLorentzVector &v2) const |
subtraction of two LorentzVectors (v3 = v1 - v2) Enable the subtraction of any other LorentzVector More... | |
LorentzVector | operator- () const |
Negative of a LorentzVector (q = - v ) More... | |
template<class OtherLorentzVector > | |
LorentzVector & | operator-= (const OtherLorentzVector &q) |
Self subtraction of another Vector from this ( v-= q ) Enable the addition with any other LorentzVector. More... | |
LorentzVector< CoordSystem > | operator/ (const Scalar &a) const |
Divide a LorentzVector by a scalar quantity. More... | |
LorentzVector & | operator/= (Scalar a) |
division by a scalar quantity v /= a More... | |
template<class OtherCoords > | |
LorentzVector & | operator= (const LorentzVector< OtherCoords > &v) |
Assignment operator from a lorentz vector of arbitrary type. More... | |
template<class ForeignLorentzVector > | |
LorentzVector & | operator= (const ForeignLorentzVector &v) |
assignment from any other Lorentz vector implementing x(), y(), z() and t() More... | |
bool | operator== (const LorentzVector &rhs) const |
Exact equality. More... | |
Scalar | P () const |
Scalar | P2 () const |
return the square of the spatial (3D) magnitude ( X**2 + Y**2 + Z**2 ) More... | |
Scalar | Perp2 () const |
return the square of the transverse spatial component ( X**2 + Y**2 ) More... | |
Scalar | perp2 () const |
Scalar | Phi () const |
azimuthal Angle More... | |
Scalar | phi () const |
Scalar | Pt () const |
return the transverse spatial component sqrt ( X**2 + Y**2 ) More... | |
Scalar | pt () const |
Scalar | Px () const |
spatial X component More... | |
Scalar | px () const |
Scalar | Py () const |
spatial Y component More... | |
Scalar | py () const |
Scalar | Pz () const |
spatial Z component More... | |
Scalar | pz () const |
Scalar | R () const |
return the spatial (3D) magnitude ( sqrt(X**2 + Y**2 + Z**2) ) More... | |
Scalar | r () const |
Scalar | Rapidity () const |
Rapidity relative to the Z axis: .5 log [(E+Pz)/(E-Pz)]. More... | |
Scalar | Rho () const |
Scalar | rho () const |
LorentzVector< CoordSystem > & | SetCoordinates (const Scalar src[]) |
Set internal data based on an array of 4 Scalar numbers. More... | |
LorentzVector< CoordSystem > & | SetCoordinates (Scalar a, Scalar b, Scalar c, Scalar d) |
Set internal data based on 4 Scalar numbers. More... | |
template<class IT > | |
LorentzVector< CoordSystem > & | SetCoordinates (IT begin, IT end) |
Set internal data based on 4 Scalars at *begin to *end. More... | |
LorentzVector< CoordSystem > & | SetE (Scalar a) |
Methods setting a Single-component Work only if the component is one of which the vector is represented. More... | |
LorentzVector< CoordSystem > & | SetEta (Scalar a) |
LorentzVector< CoordSystem > & | SetM (Scalar a) |
LorentzVector< CoordSystem > & | SetPhi (Scalar a) |
LorentzVector< CoordSystem > & | SetPt (Scalar a) |
LorentzVector< CoordSystem > & | SetPx (Scalar a) |
LorentzVector< CoordSystem > & | SetPxPyPzE (Scalar xx, Scalar yy, Scalar zz, Scalar ee) |
LorentzVector< CoordSystem > & | SetPy (Scalar a) |
LorentzVector< CoordSystem > & | SetPz (Scalar a) |
LorentzVector< CoordSystem > & | SetXYZT (Scalar xx, Scalar yy, Scalar zz, Scalar tt) |
set the values of the vector from the cartesian components (x,y,z,t) (if the vector is held in another coordinates, like (Pt,eta,phi,m) then (x, y, z, t) are converted to that form) More... | |
Scalar | T () const |
Scalar | t () const |
Scalar | Theta () const |
polar Angle More... | |
Scalar | theta () const |
::ROOT::Math::DisplacementVector3D< Cartesian3D< Scalar > > | Vect () const |
get the spatial components of the Vector in a DisplacementVector based on Cartesian Coordinates More... | |
Scalar | X () const |
Scalar | x () const |
Scalar | Y () const |
Scalar | y () const |
Scalar | Z () const |
Scalar | z () const |
Private Attributes | |
CoordSystem | fCoordinates |
#include <Math/GenVector/LorentzVector.h>
typedef DisplacementVector3D< Cartesian3D<Scalar> > ROOT::Math::LorentzVector< CoordSystem >::BetaVector |
Definition at line 537 of file LorentzVector.h.
typedef CoordSystem ROOT::Math::LorentzVector< CoordSystem >::CoordinateType |
Definition at line 61 of file LorentzVector.h.
typedef CoordSystem::Scalar ROOT::Math::LorentzVector< CoordSystem >::Scalar |
Definition at line 60 of file LorentzVector.h.
|
inline |
default constructor of an empty vector (Px = Py = Pz = E = 0 )
Definition at line 66 of file LorentzVector.h.
|
inline |
generic constructors from four scalar values.
The association between values and coordinate depends on the coordinate system. For PxPyPzE4D,
a | scalar value (Px) |
b | scalar value (Py) |
c | scalar value (Pz) |
d | scalar value (E) |
Definition at line 77 of file LorentzVector.h.
|
inlineexplicit |
constructor from a LorentzVector expressed in different coordinates, or using a different Scalar type
Definition at line 88 of file LorentzVector.h.
|
inlineexplicit |
|
inline |
Return beta scalar value.
Definition at line 587 of file LorentzVector.h.
|
inline |
The beta vector for the boost that would bring this vector into its center of mass frame (zero momentum)
Definition at line 543 of file LorentzVector.h.
|
inline |
The beta vector for the boost that would bring this vector into its center of mass frame (zero momentum)
Definition at line 565 of file LorentzVector.h.
|
inline |
Rapidity in the direction of travel: atanh (|P|/E)=.5 log[(E+P)/(E-P)].
Definition at line 505 of file LorentzVector.h.
|
inline |
Retrieve a const reference to the coordinates object.
Definition at line 157 of file LorentzVector.h.
|
inline |
scalar (Dot) product of two LorentzVector vectors (metric is -,-,-,+) Enable the product using any other LorentzVector implementing the x(), y() , y() and t() member functions
q | any LorentzVector implementing the x(), y() , z() and t() member functions |
Definition at line 377 of file LorentzVector.h.
|
inline |
return 4-th component (time, or energy for a 4-momentum vector)
Definition at line 284 of file LorentzVector.h.
|
inline |
Definition at line 636 of file LorentzVector.h.
|
inline |
Definition at line 651 of file LorentzVector.h.
|
inline |
return the transverse energy
\[ e_t = \sqrt{ \frac{E^2 p_{\perp}^2 }{ |p|^2 } } X sign(E) \]
Definition at line 339 of file LorentzVector.h.
|
inline |
return the transverse energy squared
\[ e_t = \frac{E^2 p_{\perp}^2 }{ |p|^2 } \]
Definition at line 333 of file LorentzVector.h.
|
inline |
pseudorapidity
\[ \eta = - \ln { \tan { \frac { \theta} {2} } } \]
Definition at line 355 of file LorentzVector.h.
|
inline |
Definition at line 641 of file LorentzVector.h.
|
inline |
Return Gamma scalar value.
Definition at line 605 of file LorentzVector.h.
|
inline |
get internal data into 4 Scalar numbers
Definition at line 200 of file LorentzVector.h.
|
inline |
get internal data into an array of 4 Scalar numbers
Definition at line 206 of file LorentzVector.h.
|
inline |
get internal data into 4 Scalars at *begin to *end
Definition at line 214 of file LorentzVector.h.
|
inline |
get internal data into 4 Scalars at *begin
Definition at line 227 of file LorentzVector.h.
|
inline |
Determine if momentum-energy can represent a massless particle.
Definition at line 523 of file LorentzVector.h.
|
inline |
Determine if momentum-energy is spacelike, and represents a tachyon.
Definition at line 533 of file LorentzVector.h.
|
inline |
Determine if momentum-energy can represent a physical massive particle.
Definition at line 516 of file LorentzVector.h.
|
inline |
return magnitude (mass) using the (-,-,-,+) metric.
If M2 is negative (space-like vector) a GenVector_exception is suggested and if continuing, - sqrt( -M2) is returned
Definition at line 296 of file LorentzVector.h.
|
inline |
return magnitude (mass) squared M2 = T**2 - X**2 - Y**2 - Z**2 (we use -,-,-,+ metric)
Definition at line 290 of file LorentzVector.h.
|
inline |
Definition at line 645 of file LorentzVector.h.
|
inline |
Definition at line 644 of file LorentzVector.h.
|
inline |
Definition at line 652 of file LorentzVector.h.
|
inline |
Definition at line 653 of file LorentzVector.h.
|
inline |
return the transverse mass
\[ \sqrt{ m_t^2 = E^2 - p{_z}^2} X sign(E^ - p{_z}^2) \]
Definition at line 327 of file LorentzVector.h.
|
inline |
Definition at line 646 of file LorentzVector.h.
|
inline |
return the transverse mass squared
\[ m_t^2 = E^2 - p{_z}^2 \]
Definition at line 321 of file LorentzVector.h.
|
inline |
Definition at line 647 of file LorentzVector.h.
|
inline |
Definition at line 258 of file LorentzVector.h.
|
inline |
product of a LorentzVector by a scalar quantity
a | scalar quantity of type a |
Definition at line 458 of file LorentzVector.h.
|
inline |
multiplication by a scalar quantity v *= a
Definition at line 440 of file LorentzVector.h.
|
inline |
addition of two LorentzVectors (v3 = v1 + v2) Enable the addition with any other LorentzVector
v2 | any LorentzVector implementing the x(), y() , z() and t() member functions |
Definition at line 414 of file LorentzVector.h.
|
inline |
Definition at line 484 of file LorentzVector.h.
|
inline |
Self addition with another Vector ( v+= q ) Enable the addition with any other LorentzVector.
q | any LorentzVector implementing the x(), y() , z() and t() member functions |
Definition at line 388 of file LorentzVector.h.
|
inline |
subtraction of two LorentzVectors (v3 = v1 - v2) Enable the subtraction of any other LorentzVector
v2 | any LorentzVector implementing the x(), y() , z() and t() member functions |
Definition at line 429 of file LorentzVector.h.
|
inline |
Negative of a LorentzVector (q = - v )
Definition at line 479 of file LorentzVector.h.
|
inline |
Self subtraction of another Vector from this ( v-= q ) Enable the addition with any other LorentzVector.
q | any LorentzVector implementing the x(), y() , z() and t() member functions |
Definition at line 401 of file LorentzVector.h.
|
inline |
Divide a LorentzVector by a scalar quantity.
a | scalar quantity of type a |
Definition at line 469 of file LorentzVector.h.
|
inline |
division by a scalar quantity v /= a
Definition at line 448 of file LorentzVector.h.
|
inline |
Assignment operator from a lorentz vector of arbitrary type.
Definition at line 121 of file LorentzVector.h.
|
inline |
|
inline |
Exact equality.
Definition at line 255 of file LorentzVector.h.
|
inline |
Definition at line 301 of file LorentzVector.h.
|
inline |
return the square of the spatial (3D) magnitude ( X**2 + Y**2 + Z**2 )
Definition at line 305 of file LorentzVector.h.
|
inline |
return the square of the transverse spatial component ( X**2 + Y**2 )
Definition at line 309 of file LorentzVector.h.
|
inline |
Definition at line 643 of file LorentzVector.h.
|
inline |
azimuthal Angle
Definition at line 344 of file LorentzVector.h.
|
inline |
Definition at line 639 of file LorentzVector.h.
|
inline |
return the transverse spatial component sqrt ( X**2 + Y**2 )
Definition at line 314 of file LorentzVector.h.
|
inline |
Definition at line 642 of file LorentzVector.h.
|
inline |
spatial X component
Definition at line 269 of file LorentzVector.h.
|
inline |
Definition at line 633 of file LorentzVector.h.
|
inline |
spatial Y component
Definition at line 274 of file LorentzVector.h.
|
inline |
Definition at line 634 of file LorentzVector.h.
|
inline |
spatial Z component
Definition at line 279 of file LorentzVector.h.
|
inline |
Definition at line 635 of file LorentzVector.h.
|
inline |
return the spatial (3D) magnitude ( sqrt(X**2 + Y**2 + Z**2) )
Definition at line 300 of file LorentzVector.h.
|
inline |
Definition at line 637 of file LorentzVector.h.
|
inline |
Rapidity relative to the Z axis: .5 log [(E+Pz)/(E-Pz)].
Definition at line 493 of file LorentzVector.h.
|
inline |
Definition at line 315 of file LorentzVector.h.
|
inline |
Definition at line 640 of file LorentzVector.h.
|
inline |
Set internal data based on an array of 4 Scalar numbers.
Definition at line 164 of file LorentzVector.h.
|
inline |
Set internal data based on 4 Scalar numbers.
Definition at line 172 of file LorentzVector.h.
|
inline |
Set internal data based on 4 Scalars at *begin to *end.
Definition at line 187 of file LorentzVector.h.
|
inline |
Methods setting a Single-component Work only if the component is one of which the vector is represented.
For example SetE will work for a PxPyPzE Vector but not for a PxPyPzM Vector.
Definition at line 661 of file LorentzVector.h.
|
inline |
Definition at line 662 of file LorentzVector.h.
|
inline |
Definition at line 663 of file LorentzVector.h.
|
inline |
Definition at line 664 of file LorentzVector.h.
|
inline |
Definition at line 665 of file LorentzVector.h.
|
inline |
Definition at line 666 of file LorentzVector.h.
|
inline |
Definition at line 245 of file LorentzVector.h.
|
inline |
Definition at line 667 of file LorentzVector.h.
|
inline |
Definition at line 668 of file LorentzVector.h.
|
inline |
set the values of the vector from the cartesian components (x,y,z,t) (if the vector is held in another coordinates, like (Pt,eta,phi,m) then (x, y, z, t) are converted to that form)
Definition at line 241 of file LorentzVector.h.
|
inline |
Definition at line 285 of file LorentzVector.h.
|
inline |
Definition at line 632 of file LorentzVector.h.
|
inline |
polar Angle
Definition at line 349 of file LorentzVector.h.
|
inline |
Definition at line 638 of file LorentzVector.h.
|
inline |
get the spatial components of the Vector in a DisplacementVector based on Cartesian Coordinates
Definition at line 361 of file LorentzVector.h.
|
inline |
Definition at line 270 of file LorentzVector.h.
|
inline |
Definition at line 629 of file LorentzVector.h.
|
inline |
Definition at line 275 of file LorentzVector.h.
|
inline |
Definition at line 630 of file LorentzVector.h.
|
inline |
Definition at line 280 of file LorentzVector.h.
|
inline |
Definition at line 631 of file LorentzVector.h.
|
private |
Definition at line 672 of file LorentzVector.h.