herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
Herwig::ProductionMatrixElement Class Reference

The storage of the helicity amplitude expression for the matrix element of a hard process. More...

#include <ProductionMatrixElement.h>

Public Member Functions

RhoDMatrix calculateDMatrix (int, const RhoDMatrix &, const vector< RhoDMatrix > &) const
 Calculate the decay matrix for an incoming particle.
 
RhoDMatrix calculateRhoMatrix (int, const RhoDMatrix &, const RhoDMatrix &, const vector< RhoDMatrix > &) const
 Calculate the rho matrix for a given outgoing particle.
 
double average () const
 Compute the spin averaged matrix element.
 
double average (const RhoDMatrix &in1, const RhoDMatrix &in2) const
 Compute the spin average matrix element.
 
Complex average (const ProductionMatrixElement &me2, const RhoDMatrix &in1, const RhoDMatrix &in2) const
 Compute the spin average matrix element.
 
void reset (const ProductionMatrixElement &x) const
 Reset the matrix element.
 
Standard constructors and destructors.
 ProductionMatrixElement (PDT::Spin in1, PDT::Spin in2, PDT::Spin out)
 Constructor for 2-1 scattering. More...
 
 ProductionMatrixElement (PDT::Spin in1, PDT::Spin in2, PDT::Spin out1, PDT::Spin out2)
 Constructor for 2-2 scattering. More...
 
 ProductionMatrixElement (PDT::Spin in1, PDT::Spin in2, PDT::Spin out1, PDT::Spin out2, PDT::Spin out3)
 Constructor for 2-3 scattering. More...
 
 ProductionMatrixElement (PDT::Spin in1, PDT::Spin in2, PDT::Spin out1, PDT::Spin out2, PDT::Spin out3, PDT::Spin out4)
 Constructor for 2-4 scattering. More...
 
 ProductionMatrixElement (PDT::Spin in1, PDT::Spin in2, PDT::Spin out1, PDT::Spin out2, PDT::Spin out3, PDT::Spin out4, PDT::Spin out5)
 Constructor for 2-5 scattering. More...
 
 ProductionMatrixElement (PDT::Spin in1, PDT::Spin in2, PDT::Spin out1, PDT::Spin out2, PDT::Spin out3, PDT::Spin out4, PDT::Spin out5, PDT::Spin out6)
 Constructor for 2-6 scattering. More...
 
 ProductionMatrixElement (PDT::Spin in1, PDT::Spin in2, vector< PDT::Spin > out)
 Constructor for 2-n scattering. More...
 
 ProductionMatrixElement ()
 Default constructor.
 
Access to the spins of the particles.
vector< PDT::Spininspin ()
 Get the spins of the incoming particles particle. More...
 
vector< PDT::Spinoutspin ()
 Get the spins of the outgoing particles. More...
 
Access to the individual helicity components.
Complex operator() (unsigned int in1, unsigned int in2, unsigned int out) const
 Access the helicity components for a 2-1 scattering. More...
 
Complexoperator() (unsigned int in1, unsigned int in2, unsigned int out)
 Access the helicity components for a 2-1 scattering. More...
 
Complex operator() (unsigned int in1, unsigned int in2, unsigned int out1, unsigned int out2) const
 Access the helicity components for a 2-2 scattering. More...
 
Complexoperator() (unsigned int in1, unsigned int in2, unsigned int out1, unsigned int out2)
 Access the helicity components for a 2-2 scattering. More...
 
Complex operator() (unsigned int in1, unsigned int in2, unsigned int out1, unsigned int out2, unsigned int out3) const
 Access the helicity components for a 2-3 scattering. More...
 
Complexoperator() (unsigned int in1, unsigned int in2, unsigned int out1, unsigned int out2, unsigned int out3)
 Access the helicity components for a 2-3 scattering. More...
 
Complex operator() (unsigned int in1, unsigned int in2, unsigned int out1, unsigned int out2, unsigned int out3, unsigned int out4) const
 Access the helicity components for a 2-4 scattering. More...
 
Complexoperator() (unsigned int in1, unsigned int in2, unsigned int out1, unsigned int out2, unsigned int out3, unsigned int out4)
 Access the helicity components for a 2-4 scattering. More...
 
Complex operator() (unsigned int in1, unsigned int in2, unsigned int out1, unsigned int out2, unsigned int out3, unsigned int out4, unsigned int out5) const
 Access the helicity components for a 2-5 scattering. More...
 
Complexoperator() (unsigned int in1, unsigned int in2, unsigned int out1, unsigned int out2, unsigned int out3, unsigned int out4, unsigned int out5)
 Access the helicity components for a 2-5 scattering. More...
 
Complex operator() (unsigned int in1, unsigned int in2, unsigned int out1, unsigned int out2, unsigned int out3, unsigned int out4, unsigned int out5, unsigned int out6) const
 Access the helicity components for a 2-6 scattering. More...
 
Complexoperator() (unsigned int in1, unsigned int in2, unsigned int out1, unsigned int out2, unsigned int out3, unsigned int out4, unsigned int out5, unsigned int out6)
 Access the helicity components for a 2-6 scattering. More...
 
Complex operator() (vector< unsigned int > hel) const
 Access the helicity components for a 2-n scattering. More...
 
Complexoperator() (vector< unsigned int > hel)
 Access the helicity components for a 2-n scattering. More...
 

Static Public Member Functions

static void Init ()
 Standard Init function used to initialize the interfaces.
 

Private Member Functions

void setMESize ()
 Set the size of the vector containing the matrix element.
 

Private Attributes

unsigned int _nout
 Number of outgoing particles.
 
vector< PDT::Spin_inspin
 Spin of the incoming particles as 2s+1.
 
vector< PDT::Spin_outspin
 Spins of the outgoing particles.
 
vector< Complex_matrixelement
 Storage of the matrix element, a vector is better for memory usage.
 
vector< int > _constants
 Constants needed to map the index of the vector to a helicity structure.
 

Detailed Description

The storage of the helicity amplitude expression for the matrix element of a hard process.

Two incoming particles and an arbitary number of external particles are supported.

See also
DecayMatrixElement
RhoDMatrix
HardVertex
Author
Peter Richardson

Definition at line 34 of file ProductionMatrixElement.h.

Constructor & Destructor Documentation

◆ ProductionMatrixElement() [1/7]

Herwig::ProductionMatrixElement::ProductionMatrixElement ( PDT::Spin  in1,
PDT::Spin  in2,
PDT::Spin  out 
)

Constructor for 2-1 scattering.

Parameters
in1$2S+1$ for the first incoming particle.
in2$2S+1$ for the second incoming particle.
out$2S+1$ for the outgoing particle.

◆ ProductionMatrixElement() [2/7]

Herwig::ProductionMatrixElement::ProductionMatrixElement ( PDT::Spin  in1,
PDT::Spin  in2,
PDT::Spin  out1,
PDT::Spin  out2 
)

Constructor for 2-2 scattering.

Parameters
in1$2S+1$ for the first incoming particle.
in2$2S+1$ for the second incoming particle.
out1$2S+1$ for the first outgoing particle.
out2$2S+1$ for the second outgoing particle.

◆ ProductionMatrixElement() [3/7]

Herwig::ProductionMatrixElement::ProductionMatrixElement ( PDT::Spin  in1,
PDT::Spin  in2,
PDT::Spin  out1,
PDT::Spin  out2,
PDT::Spin  out3 
)

Constructor for 2-3 scattering.

Parameters
in1$2S+1$ for the first incoming particle.
in2$2S+1$ for the second incoming particle.
out1$2S+1$ for the first outgoing particle.
out2$2S+1$ for the second outgoing particle.
out3$2S+1$ for the third outgoing particle.

◆ ProductionMatrixElement() [4/7]

Herwig::ProductionMatrixElement::ProductionMatrixElement ( PDT::Spin  in1,
PDT::Spin  in2,
PDT::Spin  out1,
PDT::Spin  out2,
PDT::Spin  out3,
PDT::Spin  out4 
)

Constructor for 2-4 scattering.

Parameters
in1$2S+1$ for the first incoming particle.
in2$2S+1$ for the second incoming particle.
out1$2S+1$ for the first outgoing particle.
out2$2S+1$ for the second outgoing particle.
out3$2S+1$ for the third outgoing particle.
out4$2S+1$ for the fourth outgoing particle.

◆ ProductionMatrixElement() [5/7]

Herwig::ProductionMatrixElement::ProductionMatrixElement ( PDT::Spin  in1,
PDT::Spin  in2,
PDT::Spin  out1,
PDT::Spin  out2,
PDT::Spin  out3,
PDT::Spin  out4,
PDT::Spin  out5 
)

Constructor for 2-5 scattering.

Parameters
in1$2S+1$ for the first incoming particle.
in2$2S+1$ for the second incoming particle.
out1$2S+1$ for the first outgoing particle.
out2$2S+1$ for the second outgoing particle.
out3$2S+1$ for the third outgoing particle.
out4$2S+1$ for the fourth outgoing particle.
out5$2S+1$ for the fifth outgoing particle.

◆ ProductionMatrixElement() [6/7]

Herwig::ProductionMatrixElement::ProductionMatrixElement ( PDT::Spin  in1,
PDT::Spin  in2,
PDT::Spin  out1,
PDT::Spin  out2,
PDT::Spin  out3,
PDT::Spin  out4,
PDT::Spin  out5,
PDT::Spin  out6 
)

Constructor for 2-6 scattering.

Parameters
in1$2S+1$ for the first incoming particle.
in2$2S+1$ for the second incoming particle.
out1$2S+1$ for the first outgoing particle.
out2$2S+1$ for the second outgoing particle.
out3$2S+1$ for the third outgoing particle.
out4$2S+1$ for the fourth outgoing particle.
out5$2S+1$ for the fifth outgoing particle.
out6$2S+1$ for the sixth outgoing particle.

◆ ProductionMatrixElement() [7/7]

Herwig::ProductionMatrixElement::ProductionMatrixElement ( PDT::Spin  in1,
PDT::Spin  in2,
vector< PDT::Spin out 
)

Constructor for 2-n scattering.

Parameters
in1$2S+1$ for the first incoming particle.
in2$2S+1$ for the second incoming particle.
outA vector containing $2S+1$ for the outgoing particles.

Member Function Documentation

◆ inspin()

vector<PDT::Spin> Herwig::ProductionMatrixElement::inspin ( )
inline

Get the spins of the incoming particles particle.

Returns
A vector containing $2S+1$ for the two incoming particles.

Definition at line 132 of file ProductionMatrixElement.h.

◆ operator()() [1/14]

Complex Herwig::ProductionMatrixElement::operator() ( unsigned int  in1,
unsigned int  in2,
unsigned int  out 
) const

Access the helicity components for a 2-1 scattering.

This method supplies the component but does not allow it to be changed.

Parameters
in1The helicity of the first incoming particle.
in2The helicity of the second incoming particle.
outThe helicity of the outgoing particle.
Returns
The matrix element for the given helicities.

◆ operator()() [2/14]

Complex& Herwig::ProductionMatrixElement::operator() ( unsigned int  in1,
unsigned int  in2,
unsigned int  out 
)

Access the helicity components for a 2-1 scattering.

This method supplies the component and allows it to be changed.

Parameters
in1The helicity of the first incoming particle.
in2The helicity of the second incoming particle.
outThe helicity of the outgoing particle.
Returns
The matrix element for the given helicities.

◆ operator()() [3/14]

Complex Herwig::ProductionMatrixElement::operator() ( unsigned int  in1,
unsigned int  in2,
unsigned int  out1,
unsigned int  out2 
) const

Access the helicity components for a 2-2 scattering.

This method supplies the component but does not allow it to be changed.

Parameters
in1The helicity of the first incoming particle.
in2The helicity of the second incoming particle.
out1The helicity of the first outgoing particle.
out2The helicity of the second outgoing particle.
Returns
The matrix element for the given helicities.

◆ operator()() [4/14]

Complex& Herwig::ProductionMatrixElement::operator() ( unsigned int  in1,
unsigned int  in2,
unsigned int  out1,
unsigned int  out2 
)

Access the helicity components for a 2-2 scattering.

This method supplies the component and allows it to be changed.

Parameters
in1The helicity of the first incoming particle.
in2The helicity of the second incoming particle.
out1The helicity of the first outgoing particle.
out2The helicity of the second outgoing particle.
Returns
The matrix element for the given helicities.

◆ operator()() [5/14]

Complex Herwig::ProductionMatrixElement::operator() ( unsigned int  in1,
unsigned int  in2,
unsigned int  out1,
unsigned int  out2,
unsigned int  out3 
) const

Access the helicity components for a 2-3 scattering.

This method supplies the component but does not allow it to be changed.

Parameters
in1The helicity of the first incoming particle.
in2The helicity of the second incoming particle.
out1The helicity of the first outgoing particle.
out2The helicity of the second outgoing particle.
out3The helicity of the third outgoing particle.
Returns
The matrix element for the given helicities.

◆ operator()() [6/14]

Complex& Herwig::ProductionMatrixElement::operator() ( unsigned int  in1,
unsigned int  in2,
unsigned int  out1,
unsigned int  out2,
unsigned int  out3 
)

Access the helicity components for a 2-3 scattering.

This method supplies the component and allows it to be changed.

Parameters
in1The helicity of the first incoming particle.
in2The helicity of the second incoming particle.
out1The helicity of the first outgoing particle.
out2The helicity of the second outgoing particle.
out3The helicity of the third outgoing particle.
Returns
The matrix element for the given helicities.

◆ operator()() [7/14]

Complex Herwig::ProductionMatrixElement::operator() ( unsigned int  in1,
unsigned int  in2,
unsigned int  out1,
unsigned int  out2,
unsigned int  out3,
unsigned int  out4 
) const

Access the helicity components for a 2-4 scattering.

This method supplies the component but does not allow it to be changed.

Parameters
in1The helicity of the first incoming particle.
in2The helicity of the second incoming particle.
out1The helicity of the first outgoing particle.
out2The helicity of the second outgoing particle.
out3The helicity of the third outgoing particle.
out4The helicity of the fourth outgoing particle.
Returns
The matrix element for the given helicities.

◆ operator()() [8/14]

Complex& Herwig::ProductionMatrixElement::operator() ( unsigned int  in1,
unsigned int  in2,
unsigned int  out1,
unsigned int  out2,
unsigned int  out3,
unsigned int  out4 
)

Access the helicity components for a 2-4 scattering.

This method supplies the component and allows it to be changed.

Parameters
in1The helicity of the first incoming particle.
in2The helicity of the second incoming particle.
out1The helicity of the first outgoing particle.
out2The helicity of the second outgoing particle.
out3The helicity of the third outgoing particle.
out4The helicity of the fourth outgoing particle.
Returns
The matrix element for the given helicities.

◆ operator()() [9/14]

Complex Herwig::ProductionMatrixElement::operator() ( unsigned int  in1,
unsigned int  in2,
unsigned int  out1,
unsigned int  out2,
unsigned int  out3,
unsigned int  out4,
unsigned int  out5 
) const

Access the helicity components for a 2-5 scattering.

This method supplies the component but does not allow it to be changed.

Parameters
in1The helicity of the first incoming particle.
in2The helicity of the second incoming particle.
out1The helicity of the first outgoing particle.
out2The helicity of the second outgoing particle.
out3The helicity of the third outgoing particle.
out4The helicity of the fourth outgoing particle.
out5The helicity of the fifth outgoing particle.
Returns
The matrix element for the given helicities.

◆ operator()() [10/14]

Complex& Herwig::ProductionMatrixElement::operator() ( unsigned int  in1,
unsigned int  in2,
unsigned int  out1,
unsigned int  out2,
unsigned int  out3,
unsigned int  out4,
unsigned int  out5 
)

Access the helicity components for a 2-5 scattering.

This method supplies the component and allows it to be changed.

Parameters
in1The helicity of the first incoming particle.
in2The helicity of the second incoming particle.
out1The helicity of the first outgoing particle.
out2The helicity of the second outgoing particle.
out3The helicity of the third outgoing particle.
out4The helicity of the fourth outgoing particle.
out5The helicity of the fifth outgoing particle.
Returns
The matrix element for the given helicities.

◆ operator()() [11/14]

Complex Herwig::ProductionMatrixElement::operator() ( unsigned int  in1,
unsigned int  in2,
unsigned int  out1,
unsigned int  out2,
unsigned int  out3,
unsigned int  out4,
unsigned int  out5,
unsigned int  out6 
) const

Access the helicity components for a 2-6 scattering.

This method supplies the component but does not allow it to be changed.

Parameters
in1The helicity of the first incoming particle.
in2The helicity of the second incoming particle.
out1The helicity of the first outgoing particle.
out2The helicity of the second outgoing particle.
out3The helicity of the third outgoing particle.
out4The helicity of the fourth outgoing particle.
out5The helicity of the fifth outgoing particle.
out6The helicity of the sixth outgoing particle.
Returns
The matrix element for the given helicities.

◆ operator()() [12/14]

Complex& Herwig::ProductionMatrixElement::operator() ( unsigned int  in1,
unsigned int  in2,
unsigned int  out1,
unsigned int  out2,
unsigned int  out3,
unsigned int  out4,
unsigned int  out5,
unsigned int  out6 
)

Access the helicity components for a 2-6 scattering.

This method supplies the component and allows it to be changed.

Parameters
in1The helicity of the first incoming particle.
in2The helicity of the second incoming particle.
out1The helicity of the first outgoing particle.
out2The helicity of the second outgoing particle.
out3The helicity of the third outgoing particle.
out4The helicity of the fourth outgoing particle.
out5The helicity of the fifth outgoing particle.
out6The helicity of the sixth outgoing particle.
Returns
The matrix element for the given helicities.

◆ operator()() [13/14]

Complex Herwig::ProductionMatrixElement::operator() ( vector< unsigned int >  hel) const

Access the helicity components for a 2-n scattering.

This method supplies the component but does not allow it to be changed.

Parameters
helThe helicities of the incoming and outgoing particles
Returns
The matrix element for the given helicities.

◆ operator()() [14/14]

Complex& Herwig::ProductionMatrixElement::operator() ( vector< unsigned int >  hel)

Access the helicity components for a 2-n scattering.

This method supplies the component and allows it to be changed.

Parameters
helThe helicities of the incoming and outgoing particles
Returns
The matrix element for the given helicities.

◆ outspin()

vector<PDT::Spin> Herwig::ProductionMatrixElement::outspin ( )
inline

Get the spins of the outgoing particles.

Returns
A vector containing $2S+1$ for the outgoing particles.

Definition at line 138 of file ProductionMatrixElement.h.


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