AmpGen 2.1
Loading...
Searching...
No Matches
Spin

Detailed Description

These objects are combined using a vertex to form a generalised current that can be used to compute the angular momentum components of the transition matrix.
In general, these objects are only described for decays of the type \( 1\to 2 \), with more complex structures constructed from such quasi two-body decays (see Isobar model), but more general amplitudes can also be defined.

Namespaces

namespace  AmpGen::Vertex
 Namespace that contains the base class for vertices, Vertex::Base, as well as the implementations of specific spin couplings and some helper functions such as the orbital operators.
 

Classes

struct  AmpGen::Vertex::Base
 Base class for all spin vertices. More...
 
struct  AmpGen::Vertex::S_SS_S
 \( S = S_1 S_2 \) More...
 
struct  AmpGen::Vertex::S_VV_S
 \( S = g_{\mu\nu} V_1^\mu V_2^{\nu} \) More...
 
struct  AmpGen::Vertex::S_VV_S1
 \( S = S_{\mu\nu} V_1^\mu V_2^{\nu} \) More...
 
struct  AmpGen::Vertex::S_VV_P
 \( S = \varepsilon_{\alpha\beta\mu\nu} P^{\alpha} L^{\beta} V_1^{\mu} V_2^{\nu} \) More...
 
struct  AmpGen::Vertex::S_VV_D
 \( S = L_{\mu\nu} V_1^\mu V_2^\nu \) More...
 
struct  AmpGen::Vertex::S_VS_P
 \( S = L_{\mu} V_1^{\mu} S_2 \) More...
 
struct  AmpGen::Vertex::S_TV_P
 \( S = L^{\mu} T_{\mu\nu} V^{\nu} \) More...
 
struct  AmpGen::Vertex::S_TV_D
 \( S = \varepsilon_{\mu\nu\alpha\beta} T^{\mu\gamma} L_{\gamma}^{\nu} P^{\alpha} V^{\beta} \) More...
 
struct  AmpGen::Vertex::S_TS_D
 \( S = T^{\mu\nu} L_{\mu\nu}\) More...
 
struct  AmpGen::Vertex::S_TT_S
 \( S = T_1^{\mu\nu} T_{2\mu\nu}\) More...
 
struct  AmpGen::Vertex::V_SS_P
 \( V^{\mu} = L^{\mu} S_1 S_2 \) More...
 
struct  AmpGen::Vertex::V_VS_S
 \( V^{\mu} = S^{\mu\nu} V_{1\nu} S_2 \) More...
 

Macros

#define DECLARE_VERTEX(NAME)
 Macro to declare a vertex.
 

Functions

Tensor AmpGen::Orbital_PWave (const Tensor &p, const Tensor &q)
 Helper function that computes the \(L=1\) orbital momentum operator.
 
Tensor AmpGen::Orbital_DWave (const Tensor &p, const Tensor &q)
 Helper function that computes the \(L=2\) orbital momentum operator.
 
Tensor AmpGen::Spin1Projector (const Tensor &p)
 Helper function that computes the projection operator onto a spin one state.
 
Tensor AmpGen::Spin2Projector (const Tensor &p)
 Helper function that computes the projection operator onto a spin one state.
 
Tensor AmpGen::Spin1hProjector (const Tensor &B)
 Helper function that projects a spinor.
 
double AmpGen::CG (const double &j1, const double &m1, const double &j2, const double &m2, const double &J, const double &M)
 
Calculates the Clebsch-Gordan coefficient for (j1 m1 j2 m2 | J M), the expansion coefficients in
 
TransformSequence AmpGen::wickTransform (const Tensor &P, const Particle &p, const int &ve=1, DebugSymbols *db=nullptr)
 Generates a wick transform sequence that aligns tensor P (four-vector) to the +/- ve z-axis, then boosts to the rest frame.
 

Macro Definition Documentation

◆ DECLARE_VERTEX

#define DECLARE_VERTEX ( NAME)
Value:
struct NAME : public Base { \
NAME(){ DEBUG("Constructing vertex"); } \
virtual Tensor operator()(const Tensor& P, const Tensor& Q, const Tensor& V1, const Tensor& V2, DebugSymbols* db = 0 ) override; \
static std::string _id; \
}
#define DEBUG(X)
Used for printing verbose debugging messages, only if DEBUGLEVEL is defined.
Definition MsgService.h:66

Definition at line 26 of file Vertex.h.

Function Documentation

◆ CG()

double AmpGen::CG ( const double & j1,
const double & m1,
const double & j2,
const double & m2,
const double & J,
const double & M )

◆ Orbital_DWave()

Tensor AmpGen::Orbital_DWave ( const Tensor & p,
const Tensor & q )


Helper function that computes the \(L=2\) orbital momentum operator, which is given by

\[ L_{\mu\nu} = L_{\mu}L_{\nu} - \frac{L^2}{3} S_{\mu\nu}, \]

where \( L_{\mu} \) is the Orbital_PWave operator and \( S_{\mu\nu} \) is the Spin1Projector.

◆ Orbital_PWave()

Tensor AmpGen::Orbital_PWave ( const Tensor & p,
const Tensor & q )

Helper function that computes the \(L=1\) orbital momentum operator, which is given by

\[ L_{\mu} = q_{\mu} - p_{\mu} \frac{p_{\nu}q^{\nu}}{ p^2 }, \]

where \( p \) is total momentum and \( q \) is the momentum difference between the two particles in the state.

◆ Spin1hProjector()

Tensor AmpGen::Spin1hProjector ( const Tensor & B)

Helper function that projects out a spin-half state

\[ S_{ab} = \frac{1}{2m}\left( {p\!\!\!/} + m I \right) \]

◆ Spin1Projector()

Tensor AmpGen::Spin1Projector ( const Tensor & p)

Helper function that projects some lorentz object onto the momentum \(p_\mu \) of state, and is given by

\[ S_{\mu\nu} = g_{\mu\nu} - \frac{p_{\mu}p_{\nu}}{p^2}. \]

◆ Spin2Projector()

Tensor AmpGen::Spin2Projector ( const Tensor & p)

Helper function that projects some lorentz object onto the momentum \(p_\mu \) of state, and is given by

\[ S_{\mu\nu\alpha\beta} = \frac{1}{2}\left( S_{\mu\alpha} S_{\nu\beta} + S_{\mu\beta}S_{\nu\alpha} \right) - \frac{1}{3} S_{\mu\nu} S_{\alpha\beta}, \]

where \( S_{\mu\nu} \) is the spin-one projection operator (see Spin1Projector).

◆ wickTransform()

TransformSequence AmpGen::wickTransform ( const Tensor & P,
const Particle & p,
const int & ve = 1,
DebugSymbols * db = nullptr )

The mass may be seperately specified. The parameter ve specifies whether the initial Euler rotation is to the +/- z-axis. In the case where ve =-1, a second rotation is applied about the x-axis that aligns P to the +ve z-axis. This ensures that singly and doubly primed helicity frames remain orthonormal.