thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
ThePEG::Helicity::LorentzTensor< Value > Class Template Reference

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>

Inheritance diagram for ThePEG::Helicity::LorentzTensor< Value >:

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.
LorentzTensorboost (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.
 
LorentzTensortransform (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.
 

Detailed Description

template<typename Value>
class ThePEG::Helicity::LorentzTensor< Value >

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.

Author
Peter Richardson

Definition at line 37 of file LorentzTensor.h.

Constructor & Destructor Documentation

◆ LorentzTensor() [1/2]

template<typename Value >
ThePEG::Helicity::LorentzTensor< Value >::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 
)
inline

◆ LorentzTensor() [2/2]

template<typename Value >
ThePEG::Helicity::LorentzTensor< Value >::LorentzTensor ( const LorentzPolarizationVector p,
const LorentzPolarizationVector q 
)
inline

Constructor in terms of two polarization vectors.

Definition at line 66 of file LorentzTensor.h.

Member Function Documentation

◆ boost()

template<typename Value >
LorentzTensor< Value > & ThePEG::Helicity::LorentzTensor< Value >::boost ( const Boost b)
inline

Standard Lorentz boost specifying the beta vector.

Definition at line 267 of file LorentzTensor.h.

◆ conjugate()

template<typename Value >
LorentzTensor< Value > ThePEG::Helicity::LorentzTensor< Value >::conjugate ( )
inline

Return the complex conjugate.

Definition at line 295 of file LorentzTensor.h.

◆ innerProduct()

template<typename Value >
template<typename ValueB >
auto ThePEG::Helicity::LorentzTensor< Value >::innerProduct ( const LorentzTensor< ValueB > &  ten) const -> LorentzTensor<decltype(ten.xx().real()*this->xx().real())>
inline

Inner product with another tensor.

Definition at line 355 of file LorentzTensor.h.

◆ operator()() [1/2]

template<typename Value >
complex< Value > & ThePEG::Helicity::LorentzTensor< Value >::operator() ( int  i,
int  j 
)
inline

Set components by indices.

Definition at line 251 of file LorentzTensor.h.

◆ operator()() [2/2]

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzTensor< Value >::operator() ( int  i,
int  j 
) const
inline

Get components by indices.

Definition at line 243 of file LorentzTensor.h.

◆ operator*=()

template<typename Value >
LorentzTensor< Value > ThePEG::Helicity::LorentzTensor< Value >::operator*= ( Complex  a)
inline

Scaling with a complex number.

Definition at line 309 of file LorentzTensor.h.

◆ operator+()

◆ operator-()

◆ outerProduct()

template<typename Value >
template<typename ValueB >
auto ThePEG::Helicity::LorentzTensor< Value >::outerProduct ( const LorentzTensor< ValueB > &  ten) const -> LorentzTensor<decltype(ten.xx().real()*this->xx().real())>
inline

Outer product with another tensor.

Definition at line 373 of file LorentzTensor.h.

◆ postDot() [1/2]

template<typename Value >
auto ThePEG::Helicity::LorentzTensor< Value >::postDot ( const Lorentz5Momentum vec) const -> LorentzVector<decltype(vec.x()*this->xx())>
inline

Second index dot product with momentum.

Definition at line 450 of file LorentzTensor.h.

◆ postDot() [2/2]

template<typename Value >
template<typename ValueB >
auto ThePEG::Helicity::LorentzTensor< Value >::postDot ( const LorentzVector< complex< ValueB > > &  vec) const -> LorentzVector<decltype(vec.x()*this->xx())>
inline

Second index dot product with polarization vector.

Definition at line 415 of file LorentzTensor.h.

◆ preDot() [1/2]

template<typename Value >
auto ThePEG::Helicity::LorentzTensor< Value >::preDot ( const Lorentz5Momentum vec) const -> LorentzVector<decltype(vec.x()*this->xx())>
inline

First index dot product with momentum.

Definition at line 432 of file LorentzTensor.h.

◆ preDot() [2/2]

template<typename Value >
template<typename ValueB >
auto ThePEG::Helicity::LorentzTensor< Value >::preDot ( const LorentzVector< complex< ValueB > > &  vec) const -> LorentzVector<decltype(vec.x()*this->xx())>
inline

Various dot products.

First index dot product with polarization vector

Definition at line 397 of file LorentzTensor.h.

◆ setTT()

template<typename Value >
void ThePEG::Helicity::LorentzTensor< Value >::setTT ( complex< Value >  a)
inline

Set t,t component.

Definition at line 238 of file LorentzTensor.h.

Referenced by ThePEG::Helicity::epsilon().

◆ setTX()

template<typename Value >
void ThePEG::Helicity::LorentzTensor< Value >::setTX ( complex< Value >  a)
inline

Set t,x component.

Definition at line 178 of file LorentzTensor.h.

◆ setTY()

template<typename Value >
void ThePEG::Helicity::LorentzTensor< Value >::setTY ( complex< Value >  a)
inline

Set t,y component.

Definition at line 198 of file LorentzTensor.h.

◆ setTZ()

template<typename Value >
void ThePEG::Helicity::LorentzTensor< Value >::setTZ ( complex< Value >  a)
inline

Set t,z component.

Definition at line 218 of file LorentzTensor.h.

◆ setXT()

template<typename Value >
void ThePEG::Helicity::LorentzTensor< Value >::setXT ( complex< Value >  a)
inline

Set x,t component.

Definition at line 223 of file LorentzTensor.h.

◆ setXX()

template<typename Value >
void ThePEG::Helicity::LorentzTensor< Value >::setXX ( complex< Value >  a)
inline

Set x,x component.

Definition at line 163 of file LorentzTensor.h.

◆ setXY()

template<typename Value >
void ThePEG::Helicity::LorentzTensor< Value >::setXY ( complex< Value >  a)
inline

Set x,y component.

Definition at line 183 of file LorentzTensor.h.

◆ setXZ()

template<typename Value >
void ThePEG::Helicity::LorentzTensor< Value >::setXZ ( complex< Value >  a)
inline

Set x,z component.

Definition at line 203 of file LorentzTensor.h.

◆ setYT()

template<typename Value >
void ThePEG::Helicity::LorentzTensor< Value >::setYT ( complex< Value >  a)
inline

Set y,t component.

Definition at line 228 of file LorentzTensor.h.

◆ setYX()

template<typename Value >
void ThePEG::Helicity::LorentzTensor< Value >::setYX ( complex< Value >  a)
inline

Set y,x component.

Definition at line 168 of file LorentzTensor.h.

◆ setYY()

template<typename Value >
void ThePEG::Helicity::LorentzTensor< Value >::setYY ( complex< Value >  a)
inline

Set y,y component.

Definition at line 188 of file LorentzTensor.h.

◆ setYZ()

template<typename Value >
void ThePEG::Helicity::LorentzTensor< Value >::setYZ ( complex< Value >  a)
inline

Set y,z component.

Definition at line 208 of file LorentzTensor.h.

◆ setZT()

template<typename Value >
void ThePEG::Helicity::LorentzTensor< Value >::setZT ( complex< Value >  a)
inline

Set z,t component.

Definition at line 233 of file LorentzTensor.h.

◆ setZX()

template<typename Value >
void ThePEG::Helicity::LorentzTensor< Value >::setZX ( complex< Value >  a)
inline

Set z,x component.

Definition at line 173 of file LorentzTensor.h.

◆ setZY()

template<typename Value >
void ThePEG::Helicity::LorentzTensor< Value >::setZY ( complex< Value >  a)
inline

Set z,y component.

Definition at line 193 of file LorentzTensor.h.

◆ setZZ()

template<typename Value >
void ThePEG::Helicity::LorentzTensor< Value >::setZZ ( complex< Value >  a)
inline

Set z,z component.

Definition at line 213 of file LorentzTensor.h.

◆ trace()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzTensor< Value >::trace ( ) const
inline

Trace.

Definition at line 347 of file LorentzTensor.h.

◆ transform()

template<typename Value >
LorentzTensor & ThePEG::Helicity::LorentzTensor< Value >::transform ( const SpinOneLorentzRotation r)
inline

General Lorentz transformation.

Definition at line 274 of file LorentzTensor.h.

Referenced by ThePEG::Helicity::TensorWaveFunction::transform().

◆ tt()

◆ tx()

◆ ty()

◆ tz()

◆ xt()

◆ xx()

◆ xy()

◆ xz()

◆ yt()

◆ yx()

◆ yy()

◆ yz()

◆ zt()

◆ zx()

◆ zy()

◆ zz()

Friends And Related Function Documentation

◆ operator*

template<typename Value >
template<typename T , typename U >
auto operator* ( const LorentzTensor< T > &  t,
const LorentzTensor< U > &  u 
) -> decltype(t.xx()*u.xx())
friend

Scalar product with other tensor.

Definition at line 550 of file LorentzTensor.h.

Member Data Documentation

◆ _tensor

template<typename Value >
std::array<std::array<complex<Value>,4>,4> ThePEG::Helicity::LorentzTensor< Value >::_tensor
private

The components.

Definition at line 470 of file LorentzTensor.h.


The documentation for this class was generated from the following file: