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

The LorentzRSSpinor class is designed to store a Rarita-Schwinger spinor for a spin-3/2 particle. More...

#include <LorentzRSSpinor.h>

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

Public Member Functions

Standard constructors.
 LorentzRSSpinor (SpinorType t=SpinorType::unknown)
 Default zero constructor, optionally specifying t, the type.
 
 LorentzRSSpinor (complex< Value > a1, complex< Value > b1, complex< Value > c1, complex< Value > d1, complex< Value > a2, complex< Value > b2, complex< Value > c2, complex< Value > d2, complex< Value > a3, complex< Value > b3, complex< Value > c3, complex< Value > d3, complex< Value > a4, complex< Value > b4, complex< Value > c4, complex< Value > d4, SpinorType t=SpinorType::unknown)
 Constructor with complex numbers specifying the components, optionally specifying t, the type.
 
template<typename U >
 LorentzRSSpinor (const LorentzRSSpinor< U > &other)
 
Access the components.
complex< Value > operator() (int i, int j) const
 Subscript operator to return spinor components.
 
complex< Value > & operator() (int i, int j)
 Set components by index.
 
complex< Value > xs1 () const
 Get first spinor component for the x vector.
 
complex< Value > xs2 () const
 Get second spinor component for the x vector.
 
complex< Value > xs3 () const
 Get third spinor component for the x vector.
 
complex< Value > xs4 () const
 Get fourth spinor component for the x vector.
 
complex< Value > ys1 () const
 Get first spinor component for the y vector.
 
complex< Value > ys2 () const
 Get second spinor component for the y vector.
 
complex< Value > ys3 () const
 Get third spinor component for the y vector.
 
complex< Value > ys4 () const
 Get fourth spinor component for the y vector.
 
complex< Value > zs1 () const
 Get first spinor component for the z vector.
 
complex< Value > zs2 () const
 Get second spinor component for the z vector.
 
complex< Value > zs3 () const
 Get third spinor component for the z vector.
 
complex< Value > zs4 () const
 Get fourth spinor component for the z vector.
 
complex< Value > ts1 () const
 Get first spinor component for the t vector.
 
complex< Value > ts2 () const
 Get second spinor component for the t vector.
 
complex< Value > ts3 () const
 Get third spinor component for the t vector.
 
complex< Value > ts4 () const
 Get fourth spinor component for the t vector.
 
void setXS1 (complex< Value > in)
 Set first spinor component for the x vector.
 
void setXS2 (complex< Value > in)
 Set second spinor component for the x vector.
 
void setXS3 (complex< Value > in)
 Set third spinor component for the x vector.
 
void setXS4 (complex< Value > in)
 Set fourth spinor component for the x vector.
 
void setYS1 (complex< Value > in)
 Set first spinor component for the y vector.
 
void setYS2 (complex< Value > in)
 Set second spinor component for the y vector.
 
void setYS3 (complex< Value > in)
 Set third spinor component for the y vector.
 
void setYS4 (complex< Value > in)
 Set fourth spinor component for the y vector.
 
void setZS1 (complex< Value > in)
 Set first spinor component for the z vector.
 
void setZS2 (complex< Value > in)
 Set second spinor component for the z vector.
 
void setZS3 (complex< Value > in)
 Set third spinor component for the z vector.
 
void setZS4 (complex< Value > in)
 Set fourth spinor component for the z vector.
 
void setTS1 (complex< Value > in)
 Set first spinor component for the t vector.
 
void setTS2 (complex< Value > in)
 Set second spinor component for the t vector.
 
void setTS3 (complex< Value > in)
 Set third spinor component for the t vector.
 
void setTS4 (complex< Value > in)
 Set fourth spinor component for the t vector.
 
Mathematical assignment operators.
template<typename ValueB >
LorentzRSSpinor< Value > & operator+= (const LorentzRSSpinor< ValueB > &a)
 
template<typename ValueB >
LorentzRSSpinor< Value > & operator-= (const LorentzRSSpinor< ValueB > &a)
 
LorentzRSSpinor< Value > & operator*= (double a)
 
LorentzRSSpinor< Value > & operator/= (double a)
 
Arithmetic operators.
LorentzSpinor< Value > dot (const LorentzPolarizationVector &vec) const
 dot product with a polarization vector
 
LorentzSpinor< Value > dot (const LorentzMomentum &invec) const
 dot product with a 4-vector
 
Transformations.
LorentzRSSpinorBar< Value > bar () const
 return the barred spinor
 
LorentzRSSpinorboost (double, double, double)
 Standard Lorentz boost specifying the components of the beta vector.
 
LorentzRSSpinorboost (const Boost &)
 Standard Lorentz boost specifying the beta vector.
 
LorentzRSSpinortransform (const LorentzRotation &)
 General transform.
 

Functions related to type.

SpinorType _type
 Type of spinor.
 
std::array< std::array< complex< Value >, 4 >, 4 > _spin
 Storage of the components.
 
SpinorType Type () const
 Return the type of the spinor.
 
template<typename ValueB >
auto generalScalar (LorentzRSSpinorBar< ValueB > &fbar, Complex left, Complex right) -> decltype(left *fbar(3, 0) *this->ts1())
 Scalar product \(\bar{f}^\alpha(c_LP_L+c_RP_R)f_\alpha\) for general couplings.
 
template<typename ValueB >
auto generalCurrent (LorentzSpinorBar< ValueB > &fbar, Complex left, Complex right) -> LorentzVector< decltype(left *fbar.s1() *this->ts1())>
 Current \(\bar{f}(c_LP_L+c_RP_R)f^\alpha\) for general couplings.
 

Detailed Description

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

The LorentzRSSpinor class is designed to store a Rarita-Schwinger spinor for a spin-3/2 particle.

In addition to storing the components of the spinor information is stored on the type of spinor, for example u or v type.

At the moment only one choice of the Dirac matrix representation is supported. For high-energy calculations the choice made by the HELAS collaboration is more efficient for numerical calculations. In this representation

\[ \gamma_{i=1,2,3}=\left(\begin{array}{cc} 0 & \sigma_i \\ -\sigma_i & 0 \end{array}\right) \quad \gamma_0=\left(\begin{array}{cc} 0 & 1 \\ 1 & 0 \end{array}\right) \quad \gamma_5=\left(\begin{array}{cc} -1 & 0 \\ 0 & 1 \end{array}\right) \]

The type of the spinor is also stored using the SpinorType enumeration. There are three types supported SpinorType::u, SpinorType::v, SpinorType::unknown. This information is intended mainly for use in the case of Majorana particles where matrix elements can be calculated with either u or v type spinors and knowledge of which was used will be needed in order to give the correct correlations. The SpinorType::unknowne is intended for cases where either the spinor for an off-shell line in a matrix element calculation or the information is genuinely unknown.

The LorentzRSSpinorBar class is also provided to store the barred spinor.

See also
HelicityDefinitions
LorentzRSSpinorBar
Author
Peter Richardson

Definition at line 73 of file LorentzRSSpinor.h.

Constructor & Destructor Documentation

◆ LorentzRSSpinor() [1/3]

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

Default zero constructor, optionally specifying t, the type.

Definition at line 82 of file LorentzRSSpinor.h.

◆ LorentzRSSpinor() [2/3]

template<typename Value >
ThePEG::Helicity::LorentzRSSpinor< Value >::LorentzRSSpinor ( complex< Value >  a1,
complex< Value >  b1,
complex< Value >  c1,
complex< Value >  d1,
complex< Value >  a2,
complex< Value >  b2,
complex< Value >  c2,
complex< Value >  d2,
complex< Value >  a3,
complex< Value >  b3,
complex< Value >  c3,
complex< Value >  d3,
complex< Value >  a4,
complex< Value >  b4,
complex< Value >  c4,
complex< Value >  d4,
SpinorType  t = SpinorType::unknown 
)
inline

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

Definition at line 88 of file LorentzRSSpinor.h.

◆ LorentzRSSpinor() [3/3]

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

Definition at line 104 of file LorentzRSSpinor.h.

Member Function Documentation

◆ dot() [1/2]

template<typename Value >
LorentzSpinor< Value > ThePEG::Helicity::LorentzRSSpinor< Value >::dot ( const LorentzMomentum invec) const
inline

dot product with a 4-vector

Definition at line 342 of file LorentzRSSpinor.h.

◆ dot() [2/2]

template<typename Value >
LorentzSpinor< Value > ThePEG::Helicity::LorentzRSSpinor< Value >::dot ( const LorentzPolarizationVector vec) const
inline

dot product with a polarization vector

Definition at line 325 of file LorentzRSSpinor.h.

◆ generalCurrent()

template<typename Value >
template<typename ValueB >
auto ThePEG::Helicity::LorentzRSSpinor< Value >::generalCurrent ( LorentzSpinorBar< ValueB > &  fbar,
Complex  left,
Complex  right 
) -> LorentzVector<decltype(left*fbar.s1()*this->ts1())>
inline

Current \(\bar{f}(c_LP_L+c_RP_R)f^\alpha\) for general couplings.

Parameters
fbarThe barred spinor
leftThe left-handed coupling, \(c_L\).
rightThe right-handed coupling, \(c_R\).

Definition at line 419 of file LorentzRSSpinor.h.

References ThePEG::left(), and ThePEG::right().

◆ generalScalar()

template<typename Value >
template<typename ValueB >
auto ThePEG::Helicity::LorentzRSSpinor< Value >::generalScalar ( LorentzRSSpinorBar< ValueB > &  fbar,
Complex  left,
Complex  right 
) -> decltype(left*fbar(3,0)*this->ts1())
inline

Scalar product \(\bar{f}^\alpha(c_LP_L+c_RP_R)f_\alpha\) for general couplings.

Parameters
fbarThe barred spinor
leftThe left-handed coupling, \(c_L\).
rightThe right-handed coupling, \(c_R\).

Definition at line 395 of file LorentzRSSpinor.h.

References ThePEG::left(), and ThePEG::right().

◆ operator()() [1/2]

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

Set components by index.

Definition at line 121 of file LorentzRSSpinor.h.

◆ operator()() [2/2]

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

Subscript operator to return spinor components.

Definition at line 113 of file LorentzRSSpinor.h.

◆ operator*=()

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

Definition at line 305 of file LorentzRSSpinor.h.

◆ operator+=()

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

Definition at line 290 of file LorentzRSSpinor.h.

◆ operator-=()

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

Definition at line 298 of file LorentzRSSpinor.h.

◆ operator/=()

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

Definition at line 312 of file LorentzRSSpinor.h.

◆ setTS1()

template<typename Value >
void ThePEG::Helicity::LorentzRSSpinor< Value >::setTS1 ( complex< Value >  in)
inline

Set first spinor component for the t vector.

Definition at line 269 of file LorentzRSSpinor.h.

◆ setTS2()

template<typename Value >
void ThePEG::Helicity::LorentzRSSpinor< Value >::setTS2 ( complex< Value >  in)
inline

Set second spinor component for the t vector.

Definition at line 274 of file LorentzRSSpinor.h.

◆ setTS3()

template<typename Value >
void ThePEG::Helicity::LorentzRSSpinor< Value >::setTS3 ( complex< Value >  in)
inline

Set third spinor component for the t vector.

Definition at line 279 of file LorentzRSSpinor.h.

◆ setTS4()

template<typename Value >
void ThePEG::Helicity::LorentzRSSpinor< Value >::setTS4 ( complex< Value >  in)
inline

Set fourth spinor component for the t vector.

Definition at line 284 of file LorentzRSSpinor.h.

◆ setXS1()

template<typename Value >
void ThePEG::Helicity::LorentzRSSpinor< Value >::setXS1 ( complex< Value >  in)
inline

Set first spinor component for the x vector.

Definition at line 209 of file LorentzRSSpinor.h.

◆ setXS2()

template<typename Value >
void ThePEG::Helicity::LorentzRSSpinor< Value >::setXS2 ( complex< Value >  in)
inline

Set second spinor component for the x vector.

Definition at line 214 of file LorentzRSSpinor.h.

◆ setXS3()

template<typename Value >
void ThePEG::Helicity::LorentzRSSpinor< Value >::setXS3 ( complex< Value >  in)
inline

Set third spinor component for the x vector.

Definition at line 219 of file LorentzRSSpinor.h.

◆ setXS4()

template<typename Value >
void ThePEG::Helicity::LorentzRSSpinor< Value >::setXS4 ( complex< Value >  in)
inline

Set fourth spinor component for the x vector.

Definition at line 224 of file LorentzRSSpinor.h.

◆ setYS1()

template<typename Value >
void ThePEG::Helicity::LorentzRSSpinor< Value >::setYS1 ( complex< Value >  in)
inline

Set first spinor component for the y vector.

Definition at line 229 of file LorentzRSSpinor.h.

◆ setYS2()

template<typename Value >
void ThePEG::Helicity::LorentzRSSpinor< Value >::setYS2 ( complex< Value >  in)
inline

Set second spinor component for the y vector.

Definition at line 234 of file LorentzRSSpinor.h.

◆ setYS3()

template<typename Value >
void ThePEG::Helicity::LorentzRSSpinor< Value >::setYS3 ( complex< Value >  in)
inline

Set third spinor component for the y vector.

Definition at line 239 of file LorentzRSSpinor.h.

◆ setYS4()

template<typename Value >
void ThePEG::Helicity::LorentzRSSpinor< Value >::setYS4 ( complex< Value >  in)
inline

Set fourth spinor component for the y vector.

Definition at line 244 of file LorentzRSSpinor.h.

◆ setZS1()

template<typename Value >
void ThePEG::Helicity::LorentzRSSpinor< Value >::setZS1 ( complex< Value >  in)
inline

Set first spinor component for the z vector.

Definition at line 249 of file LorentzRSSpinor.h.

◆ setZS2()

template<typename Value >
void ThePEG::Helicity::LorentzRSSpinor< Value >::setZS2 ( complex< Value >  in)
inline

Set second spinor component for the z vector.

Definition at line 254 of file LorentzRSSpinor.h.

◆ setZS3()

template<typename Value >
void ThePEG::Helicity::LorentzRSSpinor< Value >::setZS3 ( complex< Value >  in)
inline

Set third spinor component for the z vector.

Definition at line 259 of file LorentzRSSpinor.h.

◆ setZS4()

template<typename Value >
void ThePEG::Helicity::LorentzRSSpinor< Value >::setZS4 ( complex< Value >  in)
inline

Set fourth spinor component for the z vector.

Definition at line 264 of file LorentzRSSpinor.h.

◆ ts1()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzRSSpinor< Value >::ts1 ( ) const
inline

Get first spinor component for the t vector.

Definition at line 189 of file LorentzRSSpinor.h.

Referenced by ThePEG::Helicity::RSSpinorWaveFunction::ts1().

◆ ts2()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzRSSpinor< Value >::ts2 ( ) const
inline

Get second spinor component for the t vector.

Definition at line 194 of file LorentzRSSpinor.h.

Referenced by ThePEG::Helicity::RSSpinorWaveFunction::ts2().

◆ ts3()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzRSSpinor< Value >::ts3 ( ) const
inline

Get third spinor component for the t vector.

Definition at line 199 of file LorentzRSSpinor.h.

Referenced by ThePEG::Helicity::RSSpinorWaveFunction::ts3().

◆ ts4()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzRSSpinor< Value >::ts4 ( ) const
inline

Get fourth spinor component for the t vector.

Definition at line 204 of file LorentzRSSpinor.h.

Referenced by ThePEG::Helicity::RSSpinorWaveFunction::ts4().

◆ Type()

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

Return the type of the spinor.

Definition at line 385 of file LorentzRSSpinor.h.

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

◆ xs1()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzRSSpinor< Value >::xs1 ( ) const
inline

Get first spinor component for the x vector.

Definition at line 129 of file LorentzRSSpinor.h.

Referenced by ThePEG::Helicity::RSSpinorWaveFunction::xs1().

◆ xs2()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzRSSpinor< Value >::xs2 ( ) const
inline

Get second spinor component for the x vector.

Definition at line 134 of file LorentzRSSpinor.h.

Referenced by ThePEG::Helicity::RSSpinorWaveFunction::xs2().

◆ xs3()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzRSSpinor< Value >::xs3 ( ) const
inline

Get third spinor component for the x vector.

Definition at line 139 of file LorentzRSSpinor.h.

Referenced by ThePEG::Helicity::RSSpinorWaveFunction::xs3().

◆ xs4()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzRSSpinor< Value >::xs4 ( ) const
inline

Get fourth spinor component for the x vector.

Definition at line 144 of file LorentzRSSpinor.h.

Referenced by ThePEG::Helicity::RSSpinorWaveFunction::xs4().

◆ ys1()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzRSSpinor< Value >::ys1 ( ) const
inline

Get first spinor component for the y vector.

Definition at line 149 of file LorentzRSSpinor.h.

Referenced by ThePEG::Helicity::RSSpinorWaveFunction::ys1().

◆ ys2()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzRSSpinor< Value >::ys2 ( ) const
inline

Get second spinor component for the y vector.

Definition at line 154 of file LorentzRSSpinor.h.

Referenced by ThePEG::Helicity::RSSpinorWaveFunction::ys2().

◆ ys3()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzRSSpinor< Value >::ys3 ( ) const
inline

Get third spinor component for the y vector.

Definition at line 159 of file LorentzRSSpinor.h.

Referenced by ThePEG::Helicity::RSSpinorWaveFunction::ys3().

◆ ys4()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzRSSpinor< Value >::ys4 ( ) const
inline

Get fourth spinor component for the y vector.

Definition at line 164 of file LorentzRSSpinor.h.

Referenced by ThePEG::Helicity::RSSpinorWaveFunction::ys4().

◆ zs1()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzRSSpinor< Value >::zs1 ( ) const
inline

Get first spinor component for the z vector.

Definition at line 169 of file LorentzRSSpinor.h.

Referenced by ThePEG::Helicity::RSSpinorWaveFunction::zs1().

◆ zs2()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzRSSpinor< Value >::zs2 ( ) const
inline

Get second spinor component for the z vector.

Definition at line 174 of file LorentzRSSpinor.h.

Referenced by ThePEG::Helicity::RSSpinorWaveFunction::zs2().

◆ zs3()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzRSSpinor< Value >::zs3 ( ) const
inline

Get third spinor component for the z vector.

Definition at line 179 of file LorentzRSSpinor.h.

Referenced by ThePEG::Helicity::RSSpinorWaveFunction::zs3().

◆ zs4()

template<typename Value >
complex< Value > ThePEG::Helicity::LorentzRSSpinor< Value >::zs4 ( ) const
inline

Get fourth spinor component for the z vector.

Definition at line 184 of file LorentzRSSpinor.h.

Referenced by ThePEG::Helicity::RSSpinorWaveFunction::zs4().

Member Data Documentation

◆ _spin

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

Storage of the components.

Definition at line 441 of file LorentzRSSpinor.h.

◆ _type

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

Type of spinor.

Definition at line 436 of file LorentzRSSpinor.h.


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