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.
BinaryOpTraits< Value, U >::MulT dot(const LorentzVector< U > &a) const
Dot product with metric .
void setRho(Value newRho)
Set new radius.
Value m() const
Magnitude (signed) .
double massError() const
Return the relative inconsistency in the mass component.
Lorentz5Vector()
Constructor giving the null vector.
double energyError() const
Return the relative inconsistency in the energy component.
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.
const SpinOneLorentzRotation & one() const
The spin-1 transformation.
The LorentzRotation class combine a SpinOneLorentzRotation and a spin SpinHalfLorentzRotation to prov...
double rhoError() const
Return the relative inconsistency in the spatial components.
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.
Lorentz5Vector(Value x, Value y, Value z, Value t=Value())
Constructor giving the components x, y, z, t.
Value2 tau2() const
Mass/invariant length component squared.
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.
Value dirPlus() const
Return the positive negative light-cone components (depending on the value of Direction<0>.
void rescaleRho()
Rescale spatial component, so that the invariant length/mass of the LorentzVector agrees with the cur...
Lorentz5Vector< std::complex< typename BinaryOpTraits< T, U >::MulT > > MulT
The type resulting from multiplication of the template type with itself.
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.
Value plus() const
Returns the positive light-cone component .
double relativeError(FloatType x, FloatType y)
Returns (x - y)/(|x| + |y|).
Value mass() const
Mass/invariant length component.
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.
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.
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...
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...
Value x() const
Component access.
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.
Value tau() const
Mass/invariant length component.
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>.
Value2 mass2() 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.
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.
Value minus() const
Returns the negative light-cone component .
IUnit< T, UT > iunit(T &t, const UT &ut)
Helper function creating a IUnit object given an object and a unit.