herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
Herwig::SpinorHelicity::SpinorCurrent< Type, Value > Class Template Reference

Weyl spinor current. More...

#include <SpinorHelicity.h>

Inheritance diagram for Herwig::SpinorHelicity::SpinorCurrent< Type, Value >:

Public Types

typedef SpinorMultiplicationTraits< Value >::ComplexVectorResultType ResultType
 
typedef WeylSpinor< Type, Value > LeftSpinorType
 
typedef WeylSpinorTraits< Type >::BarSpinorTag RightSpinorTag
 
typedef WeylSpinor< RightSpinorTag, Value > RightSpinorType
 

Public Member Functions

 SpinorCurrent (const LeftSpinorType &left, const RightSpinorType &right)
 Construct from two spinors.
 
 operator ResultType () const
 Implicitly convert to complex Lorentz vector.
 
ResultType eval () const
 Return result.
 
SpinorCurrentoperator+= (const SpinorCurrent &other)
 
SpinorCurrentoperator-= (const SpinorCurrent &other)
 
SpinorCurrentoperator*= (double x)
 
SpinorCurrentoperator*= (complex< double > x)
 

Private Member Functions

ResultType evaluate (const WeylSpinor< MinusConjugateSpinorTag, Value > &left, const WeylSpinor< PlusSpinorTag, Value > &right)
 Calculate [p|\gamma^\mu|q>
 
ResultType evaluate (const WeylSpinor< PlusConjugateSpinorTag, Value > &left, const WeylSpinor< MinusSpinorTag, Value > &right)
 Calculate <p|\gamma^\mu|q].
 

Private Attributes

ResultType theResult
 

Detailed Description

template<class Type, class Value>
class Herwig::SpinorHelicity::SpinorCurrent< Type, Value >

Weyl spinor current.

Author
Simon Platzer

Definition at line 331 of file SpinorHelicity.h.

Member Typedef Documentation

◆ LeftSpinorType

template<class Type , class Value >
typedef WeylSpinor<Type,Value> Herwig::SpinorHelicity::SpinorCurrent< Type, Value >::LeftSpinorType

Definition at line 340 of file SpinorHelicity.h.

◆ ResultType

template<class Type , class Value >
typedef SpinorMultiplicationTraits<Value>::ComplexVectorResultType Herwig::SpinorHelicity::SpinorCurrent< Type, Value >::ResultType

Definition at line 339 of file SpinorHelicity.h.

◆ RightSpinorTag

template<class Type , class Value >
typedef WeylSpinorTraits<Type>::BarSpinorTag Herwig::SpinorHelicity::SpinorCurrent< Type, Value >::RightSpinorTag

Definition at line 341 of file SpinorHelicity.h.

◆ RightSpinorType

template<class Type , class Value >
typedef WeylSpinor<RightSpinorTag,Value> Herwig::SpinorHelicity::SpinorCurrent< Type, Value >::RightSpinorType

Definition at line 342 of file SpinorHelicity.h.

Constructor & Destructor Documentation

◆ SpinorCurrent()

template<class Type , class Value >
Herwig::SpinorHelicity::SpinorCurrent< Type, Value >::SpinorCurrent ( const LeftSpinorType left,
const RightSpinorType right 
)
inlineexplicit

Construct from two spinors.

Typedefs break zero products like <p|\gamma^\mu|q>

Definition at line 378 of file SpinorHelicity.h.

Member Function Documentation

◆ eval()

template<class Type , class Value >
ResultType Herwig::SpinorHelicity::SpinorCurrent< Type, Value >::eval ( ) const
inline

Return result.

Definition at line 390 of file SpinorHelicity.h.

Referenced by Herwig::SpinorHelicity::AmplitudeCache< AmplitudeKey >::plusCurrent().

◆ evaluate() [1/2]

template<class Type , class Value >
ResultType Herwig::SpinorHelicity::SpinorCurrent< Type, Value >::evaluate ( const WeylSpinor< MinusConjugateSpinorTag, Value > &  left,
const WeylSpinor< PlusSpinorTag, Value > &  right 
)
inlineprivate

Calculate [p|\gamma^\mu|q>

Definition at line 351 of file SpinorHelicity.h.

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

◆ evaluate() [2/2]

template<class Type , class Value >
ResultType Herwig::SpinorHelicity::SpinorCurrent< Type, Value >::evaluate ( const WeylSpinor< PlusConjugateSpinorTag, Value > &  left,
const WeylSpinor< MinusSpinorTag, Value > &  right 
)
inlineprivate

Calculate <p|\gamma^\mu|q].

Definition at line 363 of file SpinorHelicity.h.

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

◆ operator ResultType()

template<class Type , class Value >
Herwig::SpinorHelicity::SpinorCurrent< Type, Value >::operator ResultType ( ) const
inline

Implicitly convert to complex Lorentz vector.

Definition at line 385 of file SpinorHelicity.h.

◆ operator*=() [1/2]

template<class Type , class Value >
SpinorCurrent & Herwig::SpinorHelicity::SpinorCurrent< Type, Value >::operator*= ( complex< double >  x)
inline

Definition at line 409 of file SpinorHelicity.h.

◆ operator*=() [2/2]

template<class Type , class Value >
SpinorCurrent & Herwig::SpinorHelicity::SpinorCurrent< Type, Value >::operator*= ( double  x)
inline

Definition at line 404 of file SpinorHelicity.h.

◆ operator+=()

template<class Type , class Value >
SpinorCurrent & Herwig::SpinorHelicity::SpinorCurrent< Type, Value >::operator+= ( const SpinorCurrent< Type, Value > &  other)
inline

Definition at line 394 of file SpinorHelicity.h.

◆ operator-=()

template<class Type , class Value >
SpinorCurrent & Herwig::SpinorHelicity::SpinorCurrent< Type, Value >::operator-= ( const SpinorCurrent< Type, Value > &  other)
inline

Definition at line 399 of file SpinorHelicity.h.

Member Data Documentation

◆ theResult

template<class Type , class Value >
ResultType Herwig::SpinorHelicity::SpinorCurrent< Type, Value >::theResult
private

Definition at line 346 of file SpinorHelicity.h.


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