9 #ifndef ThePEG_Lorentz5Vector_H 10 #define ThePEG_Lorentz5Vector_H 15 #include "Lorentz5Vector.fh" 16 #include "ThePEG/Utilities/Maths.h" 17 #include "ThePEG/Utilities/Direction.h" 18 #include "ThePEG/Utilities/UnitIO.h" 19 #include "LorentzRotation.h" 23 template <
typename Value>
202 t()*t() -
mass2())));
273 template <
typename OStream,
typename T,
typename UT>
280 template <
typename IStream,
typename T,
typename UT>
288 template <
typename T,
typename U>
294 template <
typename T>
307 template <
typename U>
317 template <
typename T,
typename U>
330 template <
typename T,
typename U>
340 template <
typename T,
typename U>
350 template <
typename T,
typename U>
360 template <
typename T,
typename U>
369 template <
typename ValueA,
typename ValueB>
375 template <
typename ValueA,
typename ValueB>
381 template <
typename ValueA,
typename ValueB>
387 template <
typename Value>
A 4-component Lorentz vector.
void setRho(Value newRho)
Set new radius.
Value m() const
Magnitude (signed) .
Value2 mass2() const
Mass/invariant length component squared.
Lorentz5Vector()
Constructor giving the null vector.
Value mm
The invariant mass/length member.
Lorentz5Vector< U > MulT
The type resulting from multiplication of the template type with itself.
void ounitstream(OStream &os, const vector< T, Alloc > &v, UT &u)
Ouput a vector of objects with the specified unit.
LorentzVector< Value > & operator=(const LorentzVector< ValueB > &b)
Assignment operator.
Lorentz5Vector< std::complex< typename BinaryOpTraits< T, U >::MulT > > MulT
The type resulting from multiplication of the template type with itself.
The LorentzRotation class combine a SpinOneLorentzRotation and a spin SpinHalfLorentzRotation to prov...
double massError() const
Return the relative inconsistency in the mass component.
BinaryOpTraits< T, U >::MulT MulT
The type resulting from multiplication of the template type with itself.
This is the main namespace within which all identifiers in ThePEG are declared.
Lorentz5Vector(const ThreeVector< Value > &p, Value e)
Constructor giving a 3-Vector and a time component.
Lorentz5Vector(Value x, Value y, Value z, Value t, Value tau)
Constructor giving the components x, y, z, t and invariant length.
Value tau() const
Mass/invariant length component.
Lorentz5Vector(Value x, Value y, Value z, Value t=Value())
Constructor giving the components x, y, z, t.
BinaryOpTraits< T, U >::MulT MulT
The type resulting from multiplication of the template type with itself.
void iunitstream(IStream &is, vector< T, Alloc > &v, UT &u)
Input a vector of objects with the specified unit.
static bool pos()
Return true if the direction is positive.
void rescaleRho()
Rescale spatial component, so that the invariant length/mass of the LorentzVector agrees with the cur...
Value x() const
Component access.
Lorentz5Vector< std::complex< typename BinaryOpTraits< T, U >::MulT > > MulT
The type resulting from multiplication of the template type with itself.
Value minus() const
Returns the negative light-cone component .
Lorentz5Vector(const ThreeVector< Value > &p, Value t, Value tau)
Constructor giving a 3-Vector, a time component and an invariant length.
void setMass(Value a)
Set invariant length/mass.
double relativeError(FloatType x, FloatType y)
Returns (x - y)/(|x| + |y|).
BinaryOpTraits< T, U >::MulT MulT
The type resulting from multiplication of the template type with itself.
Lorentz5Vector(Value m, const ThreeVector< Value > &p)
Constructor giving an invariant length and a 3-Vector component.
contains the LorentzVector class.
const SpinOneLorentzRotation & one() const
The spin-1 transformation.
OUnit< T, UT > ounit(const T &t, const UT &ut)
Helper function creating a OUnit object given an object and a unit.
Lorentz5Vector(const Lorentz5Vector< U > &p)
Construct from value type U convertible to Value.
Value mass() const
Mass/invariant length component.
double energyError() const
Return the relative inconsistency in the energy component.
static bool neg()
Return true if the direction is negative (reversed).
Lorentz5Vector< T > DivT
The type resulting from division of one template type with another.
void rescaleMass()
Set the invariant length/mass member, so that it agrees with the invariant length/mass of the Lorentz...
Value plus() const
Returns the positive light-cone component .
Lorentz5Vector(const LorentzVector< Value > &p)
Copy from HepLorentzVector constructor.
void rescaleEnergy()
Rescale energy, so that the invariant length/mass of the LorentzVector agrees with the current one...
The Lorentz5Vector inherits from the LorentzVector class.
Lorentz5Vector & transform(const LorentzRotation &r)
Perform a Lorentz transformation.
Lorentz5Vector< T > MulT
The type resulting from multiplication of the template type with itself.
Lorentz5Vector(const LorentzVector< Value > &p, Value m)
Constructor giving a LorentzVector and an invariant length.
BinaryOpTraits< Value, Value >::MulT Value2
Template argument typedef.
Lorentz5Vector & operator=(const LorentzVector< Value > &q)
Assignment.
Value dirMinus() const
Return the positive negative light-cone components (depending on the value of Direction<0>.
Value dirPlus() const
Return the positive negative light-cone components (depending on the value of Direction<0>.
Value2 tau2() const
Mass/invariant length component squared.
BinaryOpTraits should be specialized with typdefs called MulT and DivT which gives the type resulting...
void setTau(Value a)
Set invariant length/mass.
BinaryOpTraits< Value, U >::MulT dot(const LorentzVector< U > &a) const
Dot product with metric .
LorentzVector< Value > & transform(const SpinOneLorentzRotation &m)
Rotate the vector. Resets .
Lorentz5Vector< std::complex< typename BinaryOpTraits< T, U >::DivT > > DivT
The type resulting from division of one template type with another.
Lorentz5Vector(Value m)
Constructor giving the invariant length.
IUnit< T, UT > iunit(T &t, const UT &ut)
Helper function creating a IUnit object given an object and a unit.
double rhoError() const
Return the relative inconsistency in the spatial components.