thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
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

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. More...
 
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. More...
 
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 () const
 Return the type of the spinor.
 

Private Attributes

SpinorType _type
 Type of spinor.
 
std::array< std::array< complex< Value >, 4 >, 4 > _spin
 Storage of the components.
 

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.

Member Function Documentation

◆ 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.

◆ 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.


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