ThePEG::Helicity::LorentzSpinor< Value > Class Template Reference

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

#include <LorentzSpinor.h>

List of all members.

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$.
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$.
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$.
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$.
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.
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$.
template<typename ValueB>
complex< typename
BinaryOpTraits< Value, ValueB >
::MulT > 
rightScalar (const LorentzSpinorBar< ValueB > &fb) const
 Calculate the right-handed scalar $\bar{f}P_Rf$.
template<typename ValueB>
complex< typename
BinaryOpTraits< Value, ValueB >
::MulT > 
scalar (const LorentzSpinorBar< ValueB > &fb) const
 Calculate the scalar $\bar{f}f$.
template<typename ValueB>
complex< typename
BinaryOpTraits< Value, ValueB >
::MulT > 
pseudoScalar (const LorentzSpinorBar< ValueB > &fb) const
 Calculate the pseudoscalar $\bar{f}\gamma_5f$.
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.

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

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().

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:
fb The barred spinor.

Definition at line 225 of file LorentzSpinor.h.

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:
fb The barred spinor.

Definition at line 244 of file LorentzSpinor.h.

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:
fb The barred spinor.

Definition at line 263 of file LorentzSpinor.h.

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:
fb The barred spinor.
left The left coupling, $c_L$.
right The right coupling, $c_R$.

Definition at line 287 of file LorentzSpinor.h.

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:
fb The barred spinor.

Definition at line 316 of file LorentzSpinor.h.

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:
fb The barred spinor.

Definition at line 326 of file LorentzSpinor.h.

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:
fb The barred spinor.

Definition at line 336 of file LorentzSpinor.h.

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:
fb The barred spinor.

Definition at line 346 of file LorentzSpinor.h.

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:
fb The barred spinor.
left The left coupling, $c_L$.
right The right coupling, $c_R$.

Definition at line 359 of file LorentzSpinor.h.


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

Generated on Thu Apr 29 12:43:26 2010 for ThePEG by  doxygen 1.5.5