ThePEG
2.2.1
|
The LorentzRSSpinor class is designed to store a Rarita-Schwinger spinor for a spin-3/2 particle. More...
#include <LorentzRSSpinor.h>
Public Member Functions | |
template<typename ValueB > | |
auto | generalScalar (LorentzRSSpinorBar< ValueB > &fbar, Complex left, Complex right) -> decltype(left *fbar(3, 0) *this->ts1()) |
Scalar product for general couplings. More... | |
template<typename ValueB > | |
auto | generalCurrent (LorentzSpinorBar< ValueB > &fbar, Complex left, Complex right) -> LorentzVector< decltype(left *fbar.s1() *this->ts1())> |
Current 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 | |
LorentzRSSpinor & | boost (double, double, double) |
Standard Lorentz boost specifying the components of the beta vector. | |
LorentzRSSpinor & | boost (const Boost &) |
Standard Lorentz boost specifying the beta vector. | |
LorentzRSSpinor & | transform (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. | |
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
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.
Definition at line 73 of file LorentzRSSpinor.h.
|
inline |
Current for general couplings.
fbar | The barred spinor |
left | The left-handed coupling, . |
right | The right-handed coupling, . |
Definition at line 419 of file LorentzRSSpinor.h.
|
inline |
Scalar product for general couplings.
fbar | The barred spinor |
left | The left-handed coupling, . |
right | The right-handed coupling, . |
Definition at line 395 of file LorentzRSSpinor.h.