Herwig 7.3.0
|
The storage of the helicity amplitude expression for the matrix element of a hard process. More...
#include <ProductionMatrixElement.h>
Public Member Functions | |
Standard constructors and destructors. | |
ProductionMatrixElement (PDT::Spin in1, PDT::Spin in2, PDT::Spin out) | |
Constructor for 2-1 scattering. | |
ProductionMatrixElement (PDT::Spin in1, PDT::Spin in2, PDT::Spin out1, PDT::Spin out2) | |
Constructor for 2-2 scattering. | |
ProductionMatrixElement (PDT::Spin in1, PDT::Spin in2, PDT::Spin out1, PDT::Spin out2, PDT::Spin out3) | |
Constructor for 2-3 scattering. | |
ProductionMatrixElement (PDT::Spin in1, PDT::Spin in2, PDT::Spin out1, PDT::Spin out2, PDT::Spin out3, PDT::Spin out4) | |
Constructor for 2-4 scattering. | |
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. | |
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. | |
ProductionMatrixElement (PDT::Spin in1, PDT::Spin in2, vector< PDT::Spin > out) | |
Constructor for 2-n scattering. | |
ProductionMatrixElement () | |
Default constructor. | |
Access to the spins of the particles. | |
vector< PDT::Spin > | inspin () |
Get the spins of the incoming particles particle. | |
vector< PDT::Spin > | outspin () |
Get the spins of the outgoing particles. | |
Access to the individual helicity components. | |
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. | |
Complex | operator() (unsigned int in1, unsigned int in2, unsigned int out) const |
Access the helicity components for a 2-1 scattering. | |
Complex & | operator() (unsigned int in1, unsigned int in2, unsigned int out) |
Access the helicity components for a 2-1 scattering. | |
Complex | operator() (unsigned int in1, unsigned int in2, unsigned int out1, unsigned int out2) const |
Access the helicity components for a 2-2 scattering. | |
Complex & | operator() (unsigned int in1, unsigned int in2, unsigned int out1, unsigned int out2) |
Access the helicity components for a 2-2 scattering. | |
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. | |
Complex & | 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. | |
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. | |
Complex & | 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. | |
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. | |
Complex & | 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. | |
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. | |
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) |
Access the helicity components for a 2-6 scattering. | |
Complex | operator() (vector< unsigned int > hel) const |
Access the helicity components for a 2-n scattering. | |
Complex & | operator() (vector< unsigned int > hel) |
Access the helicity components for a 2-n scattering. | |
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. | |
static void | Init () |
Standard Init function used to initialize the interfaces. | |
void | setMESize () |
Set the size of the vector containing the matrix element. | |
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.
Definition at line 34 of file ProductionMatrixElement.h.
Herwig::ProductionMatrixElement::ProductionMatrixElement | ( | PDT::Spin | in1, |
PDT::Spin | in2, | ||
PDT::Spin | out | ||
) |
Constructor for 2-1 scattering.
in1 | \(2S+1\) for the first incoming particle. |
in2 | \(2S+1\) for the second incoming particle. |
out | \(2S+1\) for the outgoing particle. |
Herwig::ProductionMatrixElement::ProductionMatrixElement | ( | PDT::Spin | in1, |
PDT::Spin | in2, | ||
PDT::Spin | out1, | ||
PDT::Spin | out2 | ||
) |
Constructor for 2-2 scattering.
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. |
Herwig::ProductionMatrixElement::ProductionMatrixElement | ( | PDT::Spin | in1, |
PDT::Spin | in2, | ||
PDT::Spin | out1, | ||
PDT::Spin | out2, | ||
PDT::Spin | out3 | ||
) |
Constructor for 2-3 scattering.
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. |
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.
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. |
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.
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. |
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.
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. |
Herwig::ProductionMatrixElement::ProductionMatrixElement | ( | PDT::Spin | in1, |
PDT::Spin | in2, | ||
vector< PDT::Spin > | out | ||
) |
Constructor for 2-n scattering.
in1 | \(2S+1\) for the first incoming particle. |
in2 | \(2S+1\) for the second incoming particle. |
out | A vector containing \(2S+1\) for the outgoing particles. |
|
inline |
Default constructor.
Definition at line 121 of file ProductionMatrixElement.h.
|
inline |
Get the spins of the incoming particles particle.
Definition at line 132 of file ProductionMatrixElement.h.
References _inspin.
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.
in1 | The helicity of the first incoming particle. |
in2 | The helicity of the second incoming particle. |
out | The helicity of the outgoing particle. |
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.
in1 | The helicity of the first incoming particle. |
in2 | The helicity of the second incoming particle. |
out | The helicity of the outgoing particle. |
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.
in1 | The helicity of the first incoming particle. |
in2 | The helicity of the second incoming particle. |
out1 | The helicity of the first outgoing particle. |
out2 | The helicity of the second outgoing particle. |
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.
in1 | The helicity of the first incoming particle. |
in2 | The helicity of the second incoming particle. |
out1 | The helicity of the first outgoing particle. |
out2 | The helicity of the second outgoing particle. |
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.
in1 | The helicity of the first incoming particle. |
in2 | The helicity of the second incoming particle. |
out1 | The helicity of the first outgoing particle. |
out2 | The helicity of the second outgoing particle. |
out3 | The helicity of the third outgoing particle. |
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.
in1 | The helicity of the first incoming particle. |
in2 | The helicity of the second incoming particle. |
out1 | The helicity of the first outgoing particle. |
out2 | The helicity of the second outgoing particle. |
out3 | The helicity of the third outgoing particle. |
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.
in1 | The helicity of the first incoming particle. |
in2 | The helicity of the second incoming particle. |
out1 | The helicity of the first outgoing particle. |
out2 | The helicity of the second outgoing particle. |
out3 | The helicity of the third outgoing particle. |
out4 | The helicity of the fourth outgoing particle. |
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.
in1 | The helicity of the first incoming particle. |
in2 | The helicity of the second incoming particle. |
out1 | The helicity of the first outgoing particle. |
out2 | The helicity of the second outgoing particle. |
out3 | The helicity of the third outgoing particle. |
out4 | The helicity of the fourth outgoing particle. |
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.
in1 | The helicity of the first incoming particle. |
in2 | The helicity of the second incoming particle. |
out1 | The helicity of the first outgoing particle. |
out2 | The helicity of the second outgoing particle. |
out3 | The helicity of the third outgoing particle. |
out4 | The helicity of the fourth outgoing particle. |
out5 | The helicity of the fifth outgoing particle. |
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.
in1 | The helicity of the first incoming particle. |
in2 | The helicity of the second incoming particle. |
out1 | The helicity of the first outgoing particle. |
out2 | The helicity of the second outgoing particle. |
out3 | The helicity of the third outgoing particle. |
out4 | The helicity of the fourth outgoing particle. |
out5 | The helicity of the fifth outgoing particle. |
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.
in1 | The helicity of the first incoming particle. |
in2 | The helicity of the second incoming particle. |
out1 | The helicity of the first outgoing particle. |
out2 | The helicity of the second outgoing particle. |
out3 | The helicity of the third outgoing particle. |
out4 | The helicity of the fourth outgoing particle. |
out5 | The helicity of the fifth outgoing particle. |
out6 | The helicity of the sixth outgoing particle. |
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.
in1 | The helicity of the first incoming particle. |
in2 | The helicity of the second incoming particle. |
out1 | The helicity of the first outgoing particle. |
out2 | The helicity of the second outgoing particle. |
out3 | The helicity of the third outgoing particle. |
out4 | The helicity of the fourth outgoing particle. |
out5 | The helicity of the fifth outgoing particle. |
out6 | The helicity of the sixth outgoing particle. |
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.
hel | The helicities of the incoming and outgoing particles |
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.
hel | The helicities of the incoming and outgoing particles |
|
inline |
Get the spins of the outgoing particles.
Definition at line 138 of file ProductionMatrixElement.h.
References _outspin.
|
mutableprivate |
Constants needed to map the index of the vector to a helicity structure.
Definition at line 413 of file ProductionMatrixElement.h.
|
mutableprivate |
Spin of the incoming particles as 2s+1.
Definition at line 398 of file ProductionMatrixElement.h.
Referenced by inspin().
|
mutableprivate |
Storage of the matrix element, a vector is better for memory usage.
Definition at line 408 of file ProductionMatrixElement.h.
|
mutableprivate |
Number of outgoing particles.
Definition at line 393 of file ProductionMatrixElement.h.
|
mutableprivate |
Spins of the outgoing particles.
Definition at line 403 of file ProductionMatrixElement.h.
Referenced by outspin().