ThePEG
2.2.1
|
The Lorentz5Vector inherits from the LorentzVector
class.
More...
#include <Lorentz5Vector.h>
Public Types | |
using | Value2 = decltype(sqr(std::declval< Value >())) |
Template argument typedef. More... | |
Public Member Functions | |
Lorentz5Vector & | transform (const LorentzRotation &r) |
Perform a Lorentz transformation. | |
Value | x () const |
Component access. | |
Value | y () const |
Value | z () const |
Value | t () const |
Constructors and destructor. | |
Lorentz5Vector () | |
Constructor giving the null vector. | |
Lorentz5Vector (Value m) | |
Constructor giving the invariant length. | |
Lorentz5Vector (Value x, Value y, Value z, Value t=Value()) | |
Constructor giving the components x, y, z, t. More... | |
Lorentz5Vector (Value x, Value y, Value z, Value t, Value tau) | |
Constructor giving the components x, y, z, t and invariant length. More... | |
Lorentz5Vector (const ThreeVector< Value > &p, Value e) | |
Constructor giving a 3-Vector and a time component. More... | |
Lorentz5Vector (Value m, const ThreeVector< Value > &p) | |
Constructor giving an invariant length and a 3-Vector component. More... | |
Lorentz5Vector (const ThreeVector< Value > &p, Value t, Value tau) | |
Constructor giving a 3-Vector, a time component and an invariant length. More... | |
Lorentz5Vector (const LorentzVector< Value > &p, Value m) | |
Constructor giving a LorentzVector and an invariant length. More... | |
Lorentz5Vector (const LorentzVector< Value > &p) | |
Copy from HepLorentzVector constructor. More... | |
template<class U > | |
Lorentz5Vector (const Lorentz5Vector< U > &p) | |
Construct from value type U convertible to Value. | |
Assignment and set functions. | |
void | setTau (Value a) |
Set invariant length/mass. | |
void | setMass (Value a) |
Set invariant length/mass. | |
Lorentz5Vector & | operator= (const LorentzVector< Value > &q) |
Assignment. More... | |
Rescale functions to make consistent. | |
void | rescaleEnergy () |
Rescale energy, so that the invariant length/mass of the LorentzVector agrees with the current one. | |
void | rescaleRho () |
Rescale spatial component, so that the invariant length/mass of the LorentzVector agrees with the current one. | |
void | rescaleMass () |
Set the invariant length/mass member, so that it agrees with the invariant length/mass of the LorentzVector. | |
Check consistency. | |
double | massError () const |
Return the relative inconsistency in the mass component. | |
double | energyError () const |
Return the relative inconsistency in the energy component. | |
double | rhoError () const |
Return the relative inconsistency in the spatial components. | |
Access components. | |
Value2 | mass2 () const |
Mass/invariant length component squared. More... | |
Value2 | tau2 () const |
Mass/invariant length component squared. More... | |
Value | mass () const |
Mass/invariant length component. More... | |
Value | tau () const |
Mass/invariant length component. More... | |
Value | dirPlus () const |
Return the positive negative light-cone components (depending on the value of Direction<0>. | |
Value | dirMinus () const |
Return the positive negative light-cone components (depending on the value of Direction<0>. | |
Public Member Functions inherited from ThePEG::LorentzVector< Value > | |
template<typename ValueB > | |
LorentzVector< Value > & | operator= (const LorentzVector< ValueB > &b) |
Assignment operator. | |
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 . | |
Value2 | m2 (const LorentzVector< Value > &a) const |
Squared magnitude with another vector. | |
Value | m () const |
Magnitude (signed) . | |
Value2 | mt2 () const |
Transverse mass squared . | |
Value | mt () const |
Transverse mass (signed) . | |
Value2 | perp2 () const |
Squared transverse component of the spatial vector . | |
Value | perp () const |
Transverse component of the spatial vector . | |
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). | |
double | eta () const |
Pseudorapidity of spatial part. | |
double | angle (const LorentzVector< Value > &w) const |
Spatial angle with another vector. | |
double | rapidity () const |
Rapidity . | |
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: . | |
Boost | findBoostToCM () const |
Boost from reference frame into this vector's rest frame: . | |
Value | plus () const |
Returns the positive light-cone component . | |
Value | minus () const |
Returns the negative light-cone component . | |
bool | isNear (const LorentzVector< Value > &w, double epsilon) const |
Are two vectors nearby, using Euclidean measure ? | |
LorentzVector< Value > & | transform (const SpinOneLorentzRotation &m) |
Rotate the vector. Resets . | |
LorentzVector< Value > & | operator*= (const SpinOneLorentzRotation &m) |
Rotate the vector. Resets . | |
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. More... | |
LorentzVector< Value > & | boost (Boost b, double gamma=-1.) |
Apply boost. More... | |
LorentzVector< Value > & | rotateX (double phi) |
Apply rotation around the x-axis. More... | |
LorentzVector< Value > & | rotateY (double phi) |
Apply rotation around the y-axis. More... | |
LorentzVector< Value > & | rotateZ (double phi) |
Apply rotation around the z-axis. More... | |
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. More... | |
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) | |
Value | x () const |
Value | y () const |
Value | z () const |
Value | t () const |
Value | e () const |
void | setX (Value x) |
void | setY (Value y) |
void | setZ (Value z) |
void | setT (Value t) |
void | setE (Value e) |
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. | |
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 Attributes | |
Value | mm |
The invariant mass/length member. More... | |
The Lorentz5Vector inherits from the LorentzVector
class.
It is templated on the type of the member variables. The Lorentz5Vector
class is a LorentzVector
with an extra member for the invariant length/mass of the vector. Note that an object of the Lorentz5Vector
class may be internally inconsistent in that the invariant length/mass of the LorentzVector
class need not be the same as the member variable representing the invariant length/mass. The degree of inconsistency can be accessed with the massError()
, energyError()
and rhoError()
methods and an object can be made consistent using the rescaleMass()
, rescaleEnergy()
or rescaleRho()
methods.
Definition at line 42 of file Lorentz5Vector.h.
using ThePEG::Lorentz5Vector< Value >::Value2 = decltype(sqr(std::declval<Value>())) |
Template argument typedef.
Definition at line 47 of file Lorentz5Vector.h.
|
inline |
Constructor giving the components x, y, z, t.
The invariant length is set to LorentzVector::mag().
Definition at line 77 of file Lorentz5Vector.h.
|
inline |
Constructor giving the components x, y, z, t and invariant length.
May result in an inconsistent Lorentz5Vector.
Definition at line 84 of file Lorentz5Vector.h.
|
inline |
Constructor giving a 3-Vector and a time component.
The invariant length is set to LorentzVector::mag().
Definition at line 91 of file Lorentz5Vector.h.
|
inline |
Constructor giving an invariant length and a 3-Vector component.
The time component is set to the corresponding value.
Definition at line 98 of file Lorentz5Vector.h.
|
inline |
Constructor giving a 3-Vector, a time component and an invariant length.
May result in an inconsistent Lorentz5Vector.
Definition at line 105 of file Lorentz5Vector.h.
|
inline |
Constructor giving a LorentzVector and an invariant length.
May result in an inconsistent Lorentz5Vector.
Definition at line 112 of file Lorentz5Vector.h.
|
inline |
Copy from HepLorentzVector constructor.
The invariant length is set to LorentzVector::mag().
Definition at line 119 of file Lorentz5Vector.h.
|
inline |
Mass/invariant length component.
m() gives the same calculated from the LorentzVector
Definition at line 224 of file Lorentz5Vector.h.
Referenced by ThePEG::ParticleTraits< PType >::iCharge(), ThePEG::iunitstream(), ThePEG::Helicity::WaveFunctionBase::mass(), ThePEG::Particle::mass(), ThePEG::HepMCTraitsBase< HepMC::GenEvent, HepMC::GenParticle, HepMC::GenParticle *, HepMC::GenVertex, HepMC::GenVertex *, HepMC::Polarization, HepMC::PdfInfo >::newParticle(), ThePEG::ounitstream(), and ThePEG::Lorentz5Vector< Length >::tau().
|
inline |
Mass/invariant length component squared.
m2() gives the same calculated from the LorentzVector
Definition at line 212 of file Lorentz5Vector.h.
Referenced by ThePEG::Lorentz5Vector< Length >::energyError(), ThePEG::Lorentz5Vector< Length >::massError(), ThePEG::Particle::perpmass2(), ThePEG::Lorentz5Vector< Length >::rescaleEnergy(), ThePEG::Lorentz5Vector< Length >::rescaleRho(), ThePEG::Lorentz5Vector< Length >::rhoError(), and ThePEG::Lorentz5Vector< Length >::tau2().
|
inline |
Assignment.
The invariant length is kept fixed. May result in an inconsistent Lorentz5Vector.
Definition at line 146 of file Lorentz5Vector.h.
|
inline |
Mass/invariant length component.
m() gives the same calculated from the LorentzVector
Definition at line 231 of file Lorentz5Vector.h.
|
inline |
Mass/invariant length component squared.
m2() gives the same calculated from the LorentzVector
Definition at line 218 of file Lorentz5Vector.h.
|
private |
The invariant mass/length member.
Definition at line 268 of file Lorentz5Vector.h.
Referenced by ThePEG::Lorentz5Vector< Length >::mass(), ThePEG::Lorentz5Vector< Length >::mass2(), ThePEG::Lorentz5Vector< Length >::rescaleMass(), ThePEG::Lorentz5Vector< Length >::setMass(), and ThePEG::Lorentz5Vector< Length >::setTau().