ThePEG 2.3.0
|
The LorentzTensor class is designed to implement the storage of a complex tensor to be used to representation the wavefunction of a spin-2 particle. More...
#include <LorentzTensor.h>
Public Member Functions | |
Standard constructors and destructors. | |
LorentzTensor ()=default | |
Default zero constructor. | |
LorentzTensor (complex< Value > xx, complex< Value > xy, complex< Value > xz, complex< Value > xt, complex< Value > yx, complex< Value > yy, complex< Value > yz, complex< Value > yt, complex< Value > zx, complex< Value > zy, complex< Value > zz, complex< Value > zt, complex< Value > tx, complex< Value > ty, complex< Value > tz, complex< Value > tt) | |
Constructor specifyign all components. | |
LorentzTensor (const LorentzPolarizationVector &p, const LorentzPolarizationVector &q) | |
Constructor in terms of two polarization vectors. | |
Access individual components. | |
complex< Value > | xx () const |
Get x,x component. | |
complex< Value > | yx () const |
Get y,x component. | |
complex< Value > | zx () const |
Get z,x component. | |
complex< Value > | tx () const |
Get t,x component. | |
complex< Value > | xy () const |
Get x,y component. | |
complex< Value > | yy () const |
Get y,y component. | |
complex< Value > | zy () const |
Get z,y component. | |
complex< Value > | ty () const |
Get t,y component. | |
complex< Value > | xz () const |
Get x,z component. | |
complex< Value > | yz () const |
Get y,z component. | |
complex< Value > | zz () const |
Get z,z component. | |
complex< Value > | tz () const |
Get t,z component. | |
complex< Value > | xt () const |
Get x,t component. | |
complex< Value > | yt () const |
Get y,t component. | |
complex< Value > | zt () const |
Get z,t component. | |
complex< Value > | tt () const |
Get t,t component. | |
void | setXX (complex< Value > a) |
Set x,x component. | |
void | setYX (complex< Value > a) |
Set y,x component. | |
void | setZX (complex< Value > a) |
Set z,x component. | |
void | setTX (complex< Value > a) |
Set t,x component. | |
void | setXY (complex< Value > a) |
Set x,y component. | |
void | setYY (complex< Value > a) |
Set y,y component. | |
void | setZY (complex< Value > a) |
Set z,y component. | |
void | setTY (complex< Value > a) |
Set t,y component. | |
void | setXZ (complex< Value > a) |
Set x,z component. | |
void | setYZ (complex< Value > a) |
Set y,z component. | |
void | setZZ (complex< Value > a) |
Set z,z component. | |
void | setTZ (complex< Value > a) |
Set t,z component. | |
void | setXT (complex< Value > a) |
Set x,t component. | |
void | setYT (complex< Value > a) |
Set y,t component. | |
void | setZT (complex< Value > a) |
Set z,t component. | |
void | setTT (complex< Value > a) |
Set t,t component. | |
complex< Value > | operator() (int i, int j) const |
Get components by indices. | |
complex< Value > & | operator() (int i, int j) |
Set components by indices. | |
Transformations. | |
LorentzTensor & | boost (double, double, double) |
Standard Lorentz boost specifying the components of the beta vector. | |
LorentzTensor< Value > & | boost (const Boost &b) |
Standard Lorentz boost specifying the beta vector. | |
LorentzTensor & | transform (const SpinOneLorentzRotation &r) |
General Lorentz transformation. | |
LorentzTensor< Value > | conjugate () |
Return the complex conjugate. | |
Arithmetic operators. | |
std::array< std::array< complex< Value >, 4 >, 4 > | _tensor |
The components. | |
LorentzTensor< Value > | operator*= (Complex a) |
Scaling with a complex number. | |
LorentzTensor< Value > | operator+ (const LorentzTensor< Value > &in) const |
Addition. | |
LorentzTensor< Value > | operator- (const LorentzTensor< Value > &in) const |
Subtraction. | |
complex< Value > | trace () const |
Trace. | |
template<typename ValueB > | |
auto | innerProduct (const LorentzTensor< ValueB > &ten) const -> LorentzTensor< decltype(ten.xx().real() *this->xx().real())> |
Inner product with another tensor. | |
template<typename ValueB > | |
auto | outerProduct (const LorentzTensor< ValueB > &ten) const -> LorentzTensor< decltype(ten.xx().real() *this->xx().real())> |
Outer product with another tensor. | |
template<typename ValueB > | |
auto | preDot (const LorentzVector< complex< ValueB > > &vec) const -> LorentzVector< decltype(vec.x() *this->xx())> |
Various dot products. | |
template<typename ValueB > | |
auto | postDot (const LorentzVector< complex< ValueB > > &vec) const -> LorentzVector< decltype(vec.x() *this->xx())> |
Second index dot product with polarization vector. | |
auto | preDot (const Lorentz5Momentum &vec) const -> LorentzVector< decltype(vec.x() *this->xx())> |
First index dot product with momentum. | |
auto | postDot (const Lorentz5Momentum &vec) const -> LorentzVector< decltype(vec.x() *this->xx())> |
Second index dot product with momentum. | |
template<typename T , typename U > | |
auto | operator* (const LorentzTensor< T > &t, const LorentzTensor< U > &u) -> decltype(t.xx() *u.xx()) |
Scalar product with other tensor. | |
The LorentzTensor class is designed to implement the storage of a complex tensor to be used to representation the wavefunction of a spin-2 particle.
At the moment it only implements the storage of the tensor components but it is envisaged that it will be extended to include boost methods etc.
Definition at line 37 of file LorentzTensor.h.
|
inline |
Constructor specifyign all components.
Definition at line 51 of file LorentzTensor.h.
References ThePEG::Helicity::LorentzTensor< Value >::tt(), ThePEG::Helicity::LorentzTensor< Value >::tx(), ThePEG::Helicity::LorentzTensor< Value >::ty(), ThePEG::Helicity::LorentzTensor< Value >::tz(), ThePEG::Helicity::LorentzTensor< Value >::xt(), ThePEG::Helicity::LorentzTensor< Value >::xx(), ThePEG::Helicity::LorentzTensor< Value >::xy(), ThePEG::Helicity::LorentzTensor< Value >::xz(), ThePEG::Helicity::LorentzTensor< Value >::yt(), ThePEG::Helicity::LorentzTensor< Value >::yx(), ThePEG::Helicity::LorentzTensor< Value >::yy(), ThePEG::Helicity::LorentzTensor< Value >::yz(), ThePEG::Helicity::LorentzTensor< Value >::zt(), ThePEG::Helicity::LorentzTensor< Value >::zx(), ThePEG::Helicity::LorentzTensor< Value >::zy(), and ThePEG::Helicity::LorentzTensor< Value >::zz().
|
inline |
Constructor in terms of two polarization vectors.
Definition at line 66 of file LorentzTensor.h.
|
inline |
Standard Lorentz boost specifying the beta vector.
Definition at line 267 of file LorentzTensor.h.
|
inline |
Return the complex conjugate.
Definition at line 295 of file LorentzTensor.h.
|
inline |
Inner product with another tensor.
Definition at line 355 of file LorentzTensor.h.
|
inline |
Set components by indices.
Definition at line 251 of file LorentzTensor.h.
|
inline |
Get components by indices.
Definition at line 243 of file LorentzTensor.h.
|
inline |
Scaling with a complex number.
Definition at line 309 of file LorentzTensor.h.
|
inline |
Addition.
Definition at line 327 of file LorentzTensor.h.
References ThePEG::Helicity::LorentzTensor< Value >::tt(), ThePEG::Helicity::LorentzTensor< Value >::tx(), ThePEG::Helicity::LorentzTensor< Value >::ty(), ThePEG::Helicity::LorentzTensor< Value >::tz(), ThePEG::Helicity::LorentzTensor< Value >::xt(), ThePEG::Helicity::LorentzTensor< Value >::xx(), ThePEG::Helicity::LorentzTensor< Value >::xy(), ThePEG::Helicity::LorentzTensor< Value >::xz(), ThePEG::Helicity::LorentzTensor< Value >::yt(), ThePEG::Helicity::LorentzTensor< Value >::yx(), ThePEG::Helicity::LorentzTensor< Value >::yy(), ThePEG::Helicity::LorentzTensor< Value >::yz(), ThePEG::Helicity::LorentzTensor< Value >::zt(), ThePEG::Helicity::LorentzTensor< Value >::zx(), ThePEG::Helicity::LorentzTensor< Value >::zy(), and ThePEG::Helicity::LorentzTensor< Value >::zz().
|
inline |
Subtraction.
Definition at line 337 of file LorentzTensor.h.
References ThePEG::Helicity::LorentzTensor< Value >::tt(), ThePEG::Helicity::LorentzTensor< Value >::tx(), ThePEG::Helicity::LorentzTensor< Value >::ty(), ThePEG::Helicity::LorentzTensor< Value >::tz(), ThePEG::Helicity::LorentzTensor< Value >::xt(), ThePEG::Helicity::LorentzTensor< Value >::xx(), ThePEG::Helicity::LorentzTensor< Value >::xy(), ThePEG::Helicity::LorentzTensor< Value >::xz(), ThePEG::Helicity::LorentzTensor< Value >::yt(), ThePEG::Helicity::LorentzTensor< Value >::yx(), ThePEG::Helicity::LorentzTensor< Value >::yy(), ThePEG::Helicity::LorentzTensor< Value >::yz(), ThePEG::Helicity::LorentzTensor< Value >::zt(), ThePEG::Helicity::LorentzTensor< Value >::zx(), ThePEG::Helicity::LorentzTensor< Value >::zy(), and ThePEG::Helicity::LorentzTensor< Value >::zz().
|
inline |
Outer product with another tensor.
Definition at line 373 of file LorentzTensor.h.
|
inline |
Second index dot product with momentum.
Definition at line 450 of file LorentzTensor.h.
|
inline |
Second index dot product with polarization vector.
Definition at line 415 of file LorentzTensor.h.
|
inline |
First index dot product with momentum.
Definition at line 432 of file LorentzTensor.h.
|
inline |
Various dot products.
First index dot product with polarization vector
Definition at line 397 of file LorentzTensor.h.
|
inline |
Set t,t component.
Definition at line 238 of file LorentzTensor.h.
Referenced by ThePEG::Helicity::epsilon().
|
inline |
Set t,x component.
Definition at line 178 of file LorentzTensor.h.
|
inline |
Set t,y component.
Definition at line 198 of file LorentzTensor.h.
|
inline |
Set t,z component.
Definition at line 218 of file LorentzTensor.h.
|
inline |
Set x,t component.
Definition at line 223 of file LorentzTensor.h.
|
inline |
Set x,x component.
Definition at line 163 of file LorentzTensor.h.
|
inline |
Set x,y component.
Definition at line 183 of file LorentzTensor.h.
|
inline |
Set x,z component.
Definition at line 203 of file LorentzTensor.h.
|
inline |
Set y,t component.
Definition at line 228 of file LorentzTensor.h.
|
inline |
Set y,x component.
Definition at line 168 of file LorentzTensor.h.
|
inline |
Set y,y component.
Definition at line 188 of file LorentzTensor.h.
|
inline |
Set y,z component.
Definition at line 208 of file LorentzTensor.h.
|
inline |
Set z,t component.
Definition at line 233 of file LorentzTensor.h.
|
inline |
Set z,x component.
Definition at line 173 of file LorentzTensor.h.
|
inline |
Set z,y component.
Definition at line 193 of file LorentzTensor.h.
|
inline |
Set z,z component.
Definition at line 213 of file LorentzTensor.h.
|
inline |
Trace.
Definition at line 347 of file LorentzTensor.h.
|
inline |
General Lorentz transformation.
Definition at line 274 of file LorentzTensor.h.
Referenced by ThePEG::Helicity::TensorWaveFunction::transform().
|
inline |
Get t,t component.
Definition at line 158 of file LorentzTensor.h.
Referenced by ThePEG::Helicity::LorentzTensor< Value >::LorentzTensor(), ThePEG::Helicity::LorentzTensor< Value >::operator+(), ThePEG::Helicity::LorentzTensor< Value >::operator-(), and ThePEG::Helicity::TensorWaveFunction::tt().
|
inline |
Get t,x component.
Definition at line 98 of file LorentzTensor.h.
Referenced by ThePEG::Helicity::LorentzTensor< Value >::LorentzTensor(), ThePEG::Helicity::LorentzTensor< Value >::operator+(), ThePEG::Helicity::LorentzTensor< Value >::operator-(), and ThePEG::Helicity::TensorWaveFunction::tx().
|
inline |
Get t,y component.
Definition at line 118 of file LorentzTensor.h.
Referenced by ThePEG::Helicity::LorentzTensor< Value >::LorentzTensor(), ThePEG::Helicity::LorentzTensor< Value >::operator+(), ThePEG::Helicity::LorentzTensor< Value >::operator-(), and ThePEG::Helicity::TensorWaveFunction::ty().
|
inline |
Get t,z component.
Definition at line 138 of file LorentzTensor.h.
Referenced by ThePEG::Helicity::LorentzTensor< Value >::LorentzTensor(), ThePEG::Helicity::LorentzTensor< Value >::operator+(), ThePEG::Helicity::LorentzTensor< Value >::operator-(), and ThePEG::Helicity::TensorWaveFunction::tz().
|
inline |
Get x,t component.
Definition at line 143 of file LorentzTensor.h.
Referenced by ThePEG::Helicity::LorentzTensor< Value >::LorentzTensor(), ThePEG::Helicity::LorentzTensor< Value >::operator+(), ThePEG::Helicity::LorentzTensor< Value >::operator-(), and ThePEG::Helicity::TensorWaveFunction::xt().
|
inline |
Get x,x component.
Definition at line 84 of file LorentzTensor.h.
Referenced by ThePEG::Helicity::LorentzTensor< Value >::LorentzTensor(), ThePEG::Helicity::LorentzTensor< Value >::operator+(), ThePEG::Helicity::LorentzTensor< Value >::operator-(), and ThePEG::Helicity::TensorWaveFunction::xx().
|
inline |
Get x,y component.
Definition at line 103 of file LorentzTensor.h.
Referenced by ThePEG::Helicity::LorentzTensor< Value >::LorentzTensor(), ThePEG::Helicity::LorentzTensor< Value >::operator+(), ThePEG::Helicity::LorentzTensor< Value >::operator-(), and ThePEG::Helicity::TensorWaveFunction::xy().
|
inline |
Get x,z component.
Definition at line 123 of file LorentzTensor.h.
Referenced by ThePEG::Helicity::LorentzTensor< Value >::LorentzTensor(), ThePEG::Helicity::LorentzTensor< Value >::operator+(), ThePEG::Helicity::LorentzTensor< Value >::operator-(), and ThePEG::Helicity::TensorWaveFunction::xz().
|
inline |
Get y,t component.
Definition at line 148 of file LorentzTensor.h.
Referenced by ThePEG::Helicity::LorentzTensor< Value >::LorentzTensor(), ThePEG::Helicity::LorentzTensor< Value >::operator+(), ThePEG::Helicity::LorentzTensor< Value >::operator-(), and ThePEG::Helicity::TensorWaveFunction::yt().
|
inline |
Get y,x component.
Definition at line 89 of file LorentzTensor.h.
Referenced by ThePEG::Helicity::LorentzTensor< Value >::LorentzTensor(), ThePEG::Helicity::LorentzTensor< Value >::operator+(), ThePEG::Helicity::LorentzTensor< Value >::operator-(), and ThePEG::Helicity::TensorWaveFunction::yx().
|
inline |
Get y,y component.
Definition at line 108 of file LorentzTensor.h.
Referenced by ThePEG::Helicity::LorentzTensor< Value >::LorentzTensor(), ThePEG::Helicity::LorentzTensor< Value >::operator+(), ThePEG::Helicity::LorentzTensor< Value >::operator-(), and ThePEG::Helicity::TensorWaveFunction::yy().
|
inline |
Get y,z component.
Definition at line 128 of file LorentzTensor.h.
Referenced by ThePEG::Helicity::LorentzTensor< Value >::LorentzTensor(), ThePEG::Helicity::LorentzTensor< Value >::operator+(), ThePEG::Helicity::LorentzTensor< Value >::operator-(), and ThePEG::Helicity::TensorWaveFunction::yz().
|
inline |
Get z,t component.
Definition at line 153 of file LorentzTensor.h.
Referenced by ThePEG::Helicity::LorentzTensor< Value >::LorentzTensor(), ThePEG::Helicity::LorentzTensor< Value >::operator+(), ThePEG::Helicity::LorentzTensor< Value >::operator-(), and ThePEG::Helicity::TensorWaveFunction::zt().
|
inline |
Get z,x component.
Definition at line 93 of file LorentzTensor.h.
Referenced by ThePEG::Helicity::LorentzTensor< Value >::LorentzTensor(), ThePEG::Helicity::LorentzTensor< Value >::operator+(), ThePEG::Helicity::LorentzTensor< Value >::operator-(), and ThePEG::Helicity::TensorWaveFunction::zx().
|
inline |
Get z,y component.
Definition at line 113 of file LorentzTensor.h.
Referenced by ThePEG::Helicity::LorentzTensor< Value >::LorentzTensor(), ThePEG::Helicity::LorentzTensor< Value >::operator+(), ThePEG::Helicity::LorentzTensor< Value >::operator-(), and ThePEG::Helicity::TensorWaveFunction::zy().
|
inline |
Get z,z component.
Definition at line 133 of file LorentzTensor.h.
Referenced by ThePEG::Helicity::LorentzTensor< Value >::LorentzTensor(), ThePEG::Helicity::LorentzTensor< Value >::operator+(), ThePEG::Helicity::LorentzTensor< Value >::operator-(), and ThePEG::Helicity::TensorWaveFunction::zz().
|
friend |
Scalar product with other tensor.
Definition at line 550 of file LorentzTensor.h.
|
private |
The components.
Definition at line 470 of file LorentzTensor.h.