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

The LorentzSpinorBar class implements the storage of a barred LorentzSpinor. More...

#include <LorentzSpinorBar.h>

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

Public Member Functions

Standard constructors.
 LorentzSpinorBar (SpinorType t=SpinorType::unknown)
 Default zero constructor, optionally specifying t, the type.
 
 LorentzSpinorBar (complex< Value > a, complex< Value > b, complex< Value > c, complex< Value > d, SpinorType t=SpinorType::unknown)
 Constructor with complex numbers specifying the components, optionally specifying t, the type.
 
template<typename U >
 LorentzSpinorBar (const LorentzSpinorBar< U > &other)
 
Access the components.
complex< Value > operator[] (int i) const
 Subscript operator to return spinor components.
 
complex< Value > operator() (int i) const
 Subscript operator to return spinor components.
 
complex< Value > & operator() (int i)
 Set components by index.
 
complex< Value > & operator[] (int i)
 Set components by index.
 
complex< Value > s1 () const
 Get first component.
 
complex< Value > s2 () const
 Get second component.
 
complex< Value > s3 () const
 Get third component.
 
complex< Value > s4 () const
 Get fourth component.
 
void setS1 (complex< Value > in)
 Set first component.
 
void setS2 (complex< Value > in)
 Set second component.
 
void setS3 (complex< Value > in)
 Set third component.
 
void setS4 (complex< Value > in)
 Set fourth component.
 
Mathematical assignment operators.
template<typename ValueB >
LorentzSpinorBar< Value > & operator+= (const LorentzSpinorBar< ValueB > &a)
 
template<typename ValueB >
LorentzSpinorBar< Value > & operator-= (const LorentzSpinorBar< ValueB > &a)
 
LorentzSpinorBar< Value > & operator*= (double a)
 
LorentzSpinorBar< Value > & operator/= (double a)
 
Transformations.
LorentzSpinor< Value > bar () const
 Return the barred spinor.
 
LorentzSpinorBar conjugate () const
 Return the conjugated spinor \(u_c=C\bar{u}^T\).
 
LorentzSpinorBarboost (double, double, double)
 Standard Lorentz boost specifying the components of the beta vector.
 
LorentzSpinorBarboost (const Boost &)
 Standard Lorentz boost specifying the beta vector.
 
LorentzSpinorBartransform (const SpinHalfLorentzRotation &)
 General Lorentz transformation.
 
LorentzSpinorBartransform (const LorentzRotation &r)
 General Lorentz transformation.
 
Functions related to type.
SpinorType Type () const
 Return the type of the spinor.
 
Functions to apply the projection operator
template<typename ValueB >
auto projectionOperator (const LorentzVector< ValueB > &p, const ValueB &m) const -> LorentzSpinorBar< decltype(m *Value())>
 Apply \(p\!\!\!\!\!\not\,\,\,+m\).
 
LorentzSpinorBar helicityProjectionOperator (const Complex &gL, const Complex &gR) const
 Apply \(g^LP_L+g^RP_R\).
 

Functions to apply the slash operator

SpinorType _type
 Type of spinor.
 
std::array< complex< Value >, 4 > _spin
 Storage of the components.
 
template<typename ValueB >
auto slash (const LorentzVector< ValueB > &p) const -> LorentzSpinorBar< decltype(p.t() *Value())>
 Apply \(p\!\!\!\!\!\not\).
 
template<typename ValueB >
auto slash (const LorentzVector< complex< ValueB > > &p) const -> LorentzSpinor< decltype(ValueB() *Value())>
 Apply \(p\!\!\!\!\!\not\).
 

Detailed Description

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

The LorentzSpinorBar class implements the storage of a barred LorentzSpinor.

The design is based on that of the LorentzSpinor class where the details of the implemented are discussed in more detail.

See also
LorentzSpinor
Author
Peter Richardson

Definition at line 35 of file LorentzSpinorBar.h.

Constructor & Destructor Documentation

◆ LorentzSpinorBar() [1/3]

template<typename Value >
ThePEG::Helicity::LorentzSpinorBar< Value >::LorentzSpinorBar ( SpinorType  t = SpinorType::unknown)
inline

Default zero constructor, optionally specifying t, the type.

Definition at line 43 of file LorentzSpinorBar.h.

◆ LorentzSpinorBar() [2/3]

template<typename Value >
ThePEG::Helicity::LorentzSpinorBar< Value >::LorentzSpinorBar ( complex< Value >  a,
complex< Value >  b,
complex< Value >  c,
complex< Value >  d,
SpinorType  t = SpinorType::unknown 
)
inline

Constructor with complex numbers specifying the components, optionally specifying t, the type.

Definition at line 49 of file LorentzSpinorBar.h.

◆ LorentzSpinorBar() [3/3]

template<typename Value >
template<typename U >
ThePEG::Helicity::LorentzSpinorBar< Value >::LorentzSpinorBar ( const LorentzSpinorBar< U > &  other)
inline

Definition at line 55 of file LorentzSpinorBar.h.

Member Function Documentation

◆ conjugate()

template<typename Value >
LorentzSpinorBar ThePEG::Helicity::LorentzSpinorBar< Value >::conjugate ( ) const

Return the conjugated spinor \(u_c=C\bar{u}^T\).

This operation transforms u-spinors to v-spinors and vice-versa and is required when dealing with majorana particles.

◆ helicityProjectionOperator()

◆ operator()() [1/2]

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

Set components by index.

Definition at line 81 of file LorentzSpinorBar.h.

◆ operator()() [2/2]

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

Subscript operator to return spinor components.

Definition at line 73 of file LorentzSpinorBar.h.

◆ operator*=()

template<typename Value >
LorentzSpinorBar< Value > & ThePEG::Helicity::LorentzSpinorBar< Value >::operator*= ( double  a)
inline

Definition at line 149 of file LorentzSpinorBar.h.

◆ operator+=()

template<typename Value >
template<typename ValueB >
LorentzSpinorBar< Value > & ThePEG::Helicity::LorentzSpinorBar< Value >::operator+= ( const LorentzSpinorBar< ValueB > &  a)
inline

Definition at line 138 of file LorentzSpinorBar.h.

◆ operator-=()

template<typename Value >
template<typename ValueB >
LorentzSpinorBar< Value > & ThePEG::Helicity::LorentzSpinorBar< Value >::operator-= ( const LorentzSpinorBar< ValueB > &  a)
inline

Definition at line 144 of file LorentzSpinorBar.h.

◆ operator/=()

template<typename Value >
LorentzSpinorBar< Value > & ThePEG::Helicity::LorentzSpinorBar< Value >::operator/= ( double  a)
inline

Definition at line 154 of file LorentzSpinorBar.h.

◆ operator[]() [1/2]

template<typename Value >
complex< Value > & ThePEG::Helicity::LorentzSpinorBar< Value >::operator[] ( int  i)
inline

Set components by index.

Definition at line 89 of file LorentzSpinorBar.h.

◆ operator[]() [2/2]

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzSpinorBar< Value >::operator[] ( int  i) const
inline

Subscript operator to return spinor components.

Definition at line 65 of file LorentzSpinorBar.h.

◆ projectionOperator()

template<typename Value >
template<typename ValueB >
auto ThePEG::Helicity::LorentzSpinorBar< Value >::projectionOperator ( const LorentzVector< ValueB > &  p,
const ValueB &  m 
) const -> LorentzSpinorBar<decltype(m*Value())>
inline

Apply \(p\!\!\!\!\!\not\,\,\,+m\).

Definition at line 214 of file LorentzSpinorBar.h.

◆ s1()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzSpinorBar< Value >::s1 ( ) const
inline

Get first component.

Definition at line 97 of file LorentzSpinorBar.h.

Referenced by ThePEG::Helicity::SpinorBarWaveFunction::s1().

◆ s2()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzSpinorBar< Value >::s2 ( ) const
inline

Get second component.

Definition at line 102 of file LorentzSpinorBar.h.

Referenced by ThePEG::Helicity::SpinorBarWaveFunction::s2().

◆ s3()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzSpinorBar< Value >::s3 ( ) const
inline

Get third component.

Definition at line 107 of file LorentzSpinorBar.h.

Referenced by ThePEG::Helicity::SpinorBarWaveFunction::s3().

◆ s4()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzSpinorBar< Value >::s4 ( ) const
inline

Get fourth component.

Definition at line 112 of file LorentzSpinorBar.h.

Referenced by ThePEG::Helicity::SpinorBarWaveFunction::s4().

◆ setS1()

template<typename Value >
void ThePEG::Helicity::LorentzSpinorBar< Value >::setS1 ( complex< Value >  in)
inline

Set first component.

Definition at line 117 of file LorentzSpinorBar.h.

Referenced by ThePEG::Helicity::LorentzSpinorBar< Value >::helicityProjectionOperator().

◆ setS2()

template<typename Value >
void ThePEG::Helicity::LorentzSpinorBar< Value >::setS2 ( complex< Value >  in)
inline

Set second component.

Definition at line 122 of file LorentzSpinorBar.h.

Referenced by ThePEG::Helicity::LorentzSpinorBar< Value >::helicityProjectionOperator().

◆ setS3()

template<typename Value >
void ThePEG::Helicity::LorentzSpinorBar< Value >::setS3 ( complex< Value >  in)
inline

Set third component.

Definition at line 127 of file LorentzSpinorBar.h.

Referenced by ThePEG::Helicity::LorentzSpinorBar< Value >::helicityProjectionOperator().

◆ setS4()

template<typename Value >
void ThePEG::Helicity::LorentzSpinorBar< Value >::setS4 ( complex< Value >  in)
inline

Set fourth component.

Definition at line 132 of file LorentzSpinorBar.h.

Referenced by ThePEG::Helicity::LorentzSpinorBar< Value >::helicityProjectionOperator().

◆ slash() [1/2]

template<typename Value >
template<typename ValueB >
auto ThePEG::Helicity::LorentzSpinorBar< Value >::slash ( const LorentzVector< complex< ValueB > > &  p) const -> LorentzSpinor<decltype(ValueB()*Value())>
inline

Apply \(p\!\!\!\!\!\not\).

Definition at line 272 of file LorentzSpinorBar.h.

◆ slash() [2/2]

template<typename Value >
template<typename ValueB >
auto ThePEG::Helicity::LorentzSpinorBar< Value >::slash ( const LorentzVector< ValueB > &  p) const -> LorentzSpinorBar<decltype(p.t()*Value())>
inline

Apply \(p\!\!\!\!\!\not\).

Definition at line 252 of file LorentzSpinorBar.h.

◆ transform()

template<typename Value >
LorentzSpinorBar & ThePEG::Helicity::LorentzSpinorBar< Value >::transform ( const LorentzRotation r)
inline

General Lorentz transformation.

Definition at line 192 of file LorentzSpinorBar.h.

References ThePEG::LorentzRotation::half().

◆ Type()

template<typename Value >
SpinorType ThePEG::Helicity::LorentzSpinorBar< Value >::Type ( ) const
inline

Return the type of the spinor.

Definition at line 203 of file LorentzSpinorBar.h.

Referenced by ThePEG::Helicity::SpinorBarWaveFunction::dimensionedWf().

Member Data Documentation

◆ _spin

template<typename Value >
std::array<complex<Value>,4> ThePEG::Helicity::LorentzSpinorBar< Value >::_spin
private

Storage of the components.

Definition at line 298 of file LorentzSpinorBar.h.

◆ _type

template<typename Value >
SpinorType ThePEG::Helicity::LorentzSpinorBar< Value >::_type
private

Type of spinor.

Definition at line 293 of file LorentzSpinorBar.h.


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