ThePEG  1.8.0
Private Attributes | List of all members
ThePEG::Helicity::LorentzSpinor< Value > Class Template Reference

The LorentzSpinor class is designed to store a spinor. More...

#include <LorentzSpinor.h>

Inheritance diagram for ThePEG::Helicity::LorentzSpinor< Value >:
Inheritance graph
[legend]

Public Member Functions

Standard constructors.
 LorentzSpinor (SpinorType t=unknown_spinortype)
 Default zero constructor, optionally specifying t, the type.
 
 LorentzSpinor (complex< Value > a, complex< Value > b, complex< Value > c, complex< Value > d, SpinorType s=unknown_spinortype)
 Constructor with complex numbers specifying the components, optionally specifying s, the type.
 
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.
 
Transformations.
LorentzSpinorBar< Value > bar () const
 Return the barred spinor.
 
LorentzSpinor conjugate () const
 Return the conjugated spinor $u_c=C\bar{u}^T$. More...
 
LorentzSpinorboost (double, double, double)
 Standard Lorentz boost specifying the components of the beta vector.
 
LorentzSpinorboost (const Boost &)
 Standard Lorentz boost specifying the beta vector.
 
LorentzSpinortransform (const SpinHalfLorentzRotation &)
 General Lorentz transformation.
 
LorentzSpinortransform (const LorentzRotation &r)
 General Lorentz transformation.
 
Functions related to type.
SpinorType Type () const
 Return the type of the spinor.
 
Functions to calculate certain currents.
template<typename ValueB >
LorentzVector< complex< typename BinaryOpTraits< Value, ValueB >::MulT > > leftCurrent (const LorentzSpinorBar< ValueB > &fb) const
 Calculate the left-handed current $\bar{f}\gamma^\mu P_Lf$. More...
 
template<typename ValueB >
LorentzVector< complex< typename BinaryOpTraits< Value, ValueB >::MulT > > rightCurrent (const LorentzSpinorBar< ValueB > &fb) const
 Calculate the right-handed current $\bar{f}\gamma^\mu P_Rf$. More...
 
template<typename ValueB >
LorentzVector< complex< typename BinaryOpTraits< Value, ValueB >::MulT > > vectorCurrent (const LorentzSpinorBar< ValueB > &fb) const
 Calculate the vector current $\bar{f}\gamma^\mu f$. More...
 
template<typename ValueB >
LorentzVector< complex< typename BinaryOpTraits< Value, ValueB >::MulT > > generalCurrent (const LorentzSpinorBar< ValueB > &fb, Complex left, Complex right) const
 Calculate a general current with arbitary left and right couplings, i.e. More...
 
Functions to calculate certain scalars.
template<typename ValueB >
complex< typename BinaryOpTraits< Value, ValueB >::MulT > leftScalar (const LorentzSpinorBar< ValueB > &fb) const
 Calculate the left-handed scalar $\bar{f}P_Lf$. More...
 
template<typename ValueB >
complex< typename BinaryOpTraits< Value, ValueB >::MulT > rightScalar (const LorentzSpinorBar< ValueB > &fb) const
 Calculate the right-handed scalar $\bar{f}P_Rf$. More...
 
template<typename ValueB >
complex< typename BinaryOpTraits< Value, ValueB >::MulT > scalar (const LorentzSpinorBar< ValueB > &fb) const
 Calculate the scalar $\bar{f}f$. More...
 
template<typename ValueB >
complex< typename BinaryOpTraits< Value, ValueB >::MulT > pseudoScalar (const LorentzSpinorBar< ValueB > &fb) const
 Calculate the pseudoscalar $\bar{f}\gamma_5f$. More...
 
template<typename ValueB >
complex< typename BinaryOpTraits< Value, ValueB >::MulT > generalScalar (const LorentzSpinorBar< ValueB > &fb, Complex left, Complex right) const
 Calculate a general scalar product with arbitary left and right couplings, i.e. More...
 

Private Attributes

SpinorType _type
 Type of spinor.
 
complex< Value > _spin [4]
 Storage of the components.
 

Detailed Description

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

The LorentzSpinor class is designed to store a spinor.

In addition to storing the components of the spinor, information is stored on the representation of 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 u_spinortype, v_spinortype, unknown_spinortype. 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 unknown_spinortypee 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 LorentzSpinorBar class is also provided to store the barred spinor.

See also
LorentzSpinorBar
Author
Peter Richardson

Definition at line 69 of file LorentzSpinor.h.

Member Function Documentation

◆ conjugate()

template<typename Value>
LorentzSpinor ThePEG::Helicity::LorentzSpinor< 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.

Referenced by ThePEG::Helicity::SpinorWaveFunction::conjugate(), and ThePEG::Helicity::LorentzSpinor< ThePEG::Qty >::setS4().

◆ generalCurrent()

template<typename Value>
template<typename ValueB >
LorentzVector<complex<typename BinaryOpTraits<Value,ValueB>::MulT> > ThePEG::Helicity::LorentzSpinor< Value >::generalCurrent ( const LorentzSpinorBar< ValueB > &  fb,
Complex  left,
Complex  right 
) const
inline

Calculate a general current with arbitary left and right couplings, i.e.

$\bar{f}\gamma^\mu(c_lP_L+c_RP_R)f$

Parameters
fbThe barred spinor.
leftThe left coupling, $c_L$.
rightThe right coupling, $c_R$.

Definition at line 287 of file LorentzSpinor.h.

◆ generalScalar()

template<typename Value>
template<typename ValueB >
complex<typename BinaryOpTraits<Value,ValueB>::MulT> ThePEG::Helicity::LorentzSpinor< Value >::generalScalar ( const LorentzSpinorBar< ValueB > &  fb,
Complex  left,
Complex  right 
) const
inline

Calculate a general scalar product with arbitary left and right couplings, i.e.

$\bar{f}c_lP_L+c_RP_Rf$

Parameters
fbThe barred spinor.
leftThe left coupling, $c_L$.
rightThe right coupling, $c_R$.

Definition at line 359 of file LorentzSpinor.h.

◆ leftCurrent()

template<typename Value>
template<typename ValueB >
LorentzVector<complex<typename BinaryOpTraits<Value,ValueB>::MulT> > ThePEG::Helicity::LorentzSpinor< Value >::leftCurrent ( const LorentzSpinorBar< ValueB > &  fb) const
inline

Calculate the left-handed current $\bar{f}\gamma^\mu P_Lf$.

Parameters
fbThe barred spinor.

Definition at line 225 of file LorentzSpinor.h.

◆ leftScalar()

template<typename Value>
template<typename ValueB >
complex<typename BinaryOpTraits<Value,ValueB>::MulT> ThePEG::Helicity::LorentzSpinor< Value >::leftScalar ( const LorentzSpinorBar< ValueB > &  fb) const
inline

Calculate the left-handed scalar $\bar{f}P_Lf$.

Parameters
fbThe barred spinor.

Definition at line 316 of file LorentzSpinor.h.

◆ pseudoScalar()

template<typename Value>
template<typename ValueB >
complex<typename BinaryOpTraits<Value,ValueB>::MulT> ThePEG::Helicity::LorentzSpinor< Value >::pseudoScalar ( const LorentzSpinorBar< ValueB > &  fb) const
inline

Calculate the pseudoscalar $\bar{f}\gamma_5f$.

Parameters
fbThe barred spinor.

Definition at line 346 of file LorentzSpinor.h.

◆ rightCurrent()

template<typename Value>
template<typename ValueB >
LorentzVector<complex<typename BinaryOpTraits<Value,ValueB>::MulT> > ThePEG::Helicity::LorentzSpinor< Value >::rightCurrent ( const LorentzSpinorBar< ValueB > &  fb) const
inline

Calculate the right-handed current $\bar{f}\gamma^\mu P_Rf$.

Parameters
fbThe barred spinor.

Definition at line 244 of file LorentzSpinor.h.

◆ rightScalar()

template<typename Value>
template<typename ValueB >
complex<typename BinaryOpTraits<Value,ValueB>::MulT> ThePEG::Helicity::LorentzSpinor< Value >::rightScalar ( const LorentzSpinorBar< ValueB > &  fb) const
inline

Calculate the right-handed scalar $\bar{f}P_Rf$.

Parameters
fbThe barred spinor.

Definition at line 326 of file LorentzSpinor.h.

◆ scalar()

template<typename Value>
template<typename ValueB >
complex<typename BinaryOpTraits<Value,ValueB>::MulT> ThePEG::Helicity::LorentzSpinor< Value >::scalar ( const LorentzSpinorBar< ValueB > &  fb) const
inline

Calculate the scalar $\bar{f}f$.

Parameters
fbThe barred spinor.

Definition at line 336 of file LorentzSpinor.h.

◆ vectorCurrent()

template<typename Value>
template<typename ValueB >
LorentzVector<complex<typename BinaryOpTraits<Value,ValueB>::MulT> > ThePEG::Helicity::LorentzSpinor< Value >::vectorCurrent ( const LorentzSpinorBar< ValueB > &  fb) const
inline

Calculate the vector current $\bar{f}\gamma^\mu f$.

Parameters
fbThe barred spinor.

Definition at line 263 of file LorentzSpinor.h.


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