Herwig
7.1.5

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 21 scattering. More...  
ProductionMatrixElement (PDT::Spin in1, PDT::Spin in2, PDT::Spin out1, PDT::Spin out2)  
Constructor for 22 scattering. More...  
ProductionMatrixElement (PDT::Spin in1, PDT::Spin in2, PDT::Spin out1, PDT::Spin out2, PDT::Spin out3)  
Constructor for 23 scattering. More...  
ProductionMatrixElement (PDT::Spin in1, PDT::Spin in2, PDT::Spin out1, PDT::Spin out2, PDT::Spin out3, PDT::Spin out4)  
Constructor for 24 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 25 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 26 scattering. More...  
ProductionMatrixElement (PDT::Spin in1, PDT::Spin in2, vector< PDT::Spin > out)  
Constructor for 2n scattering. More...  
ProductionMatrixElement ()  
Default constructor.  
Access to the spins of the particles.  
vector< PDT::Spin >  inspin () 
Get the spins of the incoming particles particle. More...  
vector< PDT::Spin >  outspin () 
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 21 scattering. More...  
Complex &  operator() (unsigned int in1, unsigned int in2, unsigned int out) 
Access the helicity components for a 21 scattering. More...  
Complex  operator() (unsigned int in1, unsigned int in2, unsigned int out1, unsigned int out2) const 
Access the helicity components for a 22 scattering. More...  
Complex &  operator() (unsigned int in1, unsigned int in2, unsigned int out1, unsigned int out2) 
Access the helicity components for a 22 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 23 scattering. More...  
Complex &  operator() (unsigned int in1, unsigned int in2, unsigned int out1, unsigned int out2, unsigned int out3) 
Access the helicity components for a 23 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 24 scattering. More...  
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 24 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 25 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) 
Access the helicity components for a 25 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 26 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) 
Access the helicity components for a 26 scattering. More...  
Complex  operator() (vector< unsigned int > hel) const 
Access the helicity components for a 2n scattering. More...  
Complex &  operator() (vector< unsigned int > hel) 
Access the helicity components for a 2n 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.  
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 21 scattering.
in1  for the first incoming particle. 
in2  for the second incoming particle. 
out  for the outgoing particle. 
Herwig::ProductionMatrixElement::ProductionMatrixElement  (  PDT::Spin  in1, 
PDT::Spin  in2,  
PDT::Spin  out1,  
PDT::Spin  out2  
) 
Constructor for 22 scattering.
in1  for the first incoming particle. 
in2  for the second incoming particle. 
out1  for the first outgoing particle. 
out2  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 23 scattering.
in1  for the first incoming particle. 
in2  for the second incoming particle. 
out1  for the first outgoing particle. 
out2  for the second outgoing particle. 
out3  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 24 scattering.
in1  for the first incoming particle. 
in2  for the second incoming particle. 
out1  for the first outgoing particle. 
out2  for the second outgoing particle. 
out3  for the third outgoing particle. 
out4  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 25 scattering.
in1  for the first incoming particle. 
in2  for the second incoming particle. 
out1  for the first outgoing particle. 
out2  for the second outgoing particle. 
out3  for the third outgoing particle. 
out4  for the fourth outgoing particle. 
out5  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 26 scattering.
in1  for the first incoming particle. 
in2  for the second incoming particle. 
out1  for the first outgoing particle. 
out2  for the second outgoing particle. 
out3  for the third outgoing particle. 
out4  for the fourth outgoing particle. 
out5  for the fifth outgoing particle. 
out6  for the sixth outgoing particle. 
Herwig::ProductionMatrixElement::ProductionMatrixElement  (  PDT::Spin  in1, 
PDT::Spin  in2,  
vector< PDT::Spin >  out  
) 
Constructor for 2n scattering.
in1  for the first incoming particle. 
in2  for the second incoming particle. 
out  A vector containing for the outgoing particles. 

inline 
Get the spins of the incoming particles particle.
Definition at line 132 of file ProductionMatrixElement.h.
Complex Herwig::ProductionMatrixElement::operator()  (  unsigned int  in1, 
unsigned int  in2,  
unsigned int  out  
)  const 
Access the helicity components for a 21 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  out  
) 
Access the helicity components for a 21 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  out1,  
unsigned int  out2  
)  const 
Access the helicity components for a 22 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  
) 
Access the helicity components for a 22 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,  
unsigned int  out3  
)  const 
Access the helicity components for a 23 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  
) 
Access the helicity components for a 23 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,  
unsigned int  out4  
)  const 
Access the helicity components for a 24 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  
) 
Access the helicity components for a 24 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,  
unsigned int  out5  
)  const 
Access the helicity components for a 25 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  
) 
Access the helicity components for a 25 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,  
unsigned int  out6  
)  const 
Access the helicity components for a 26 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()  (  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 26 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()  (  vector< unsigned int >  hel  )  const 
Access the helicity components for a 2n scattering.
This method supplies the component but does not allow it to be changed.
hel  The helicities of the incoming and outgoing particles 
Complex& Herwig::ProductionMatrixElement::operator()  (  vector< unsigned int >  hel  ) 
Access the helicity components for a 2n scattering.
This method supplies the component and allows 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.