herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
MatrixElement
ProductionMatrixElement.h
1
// -*- C++ -*-
2
//
3
// ProductionMatrixElement.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4
// Copyright (C) 2002-2019 The Herwig Collaboration
5
//
6
// Herwig is licenced under version 3 of the GPL, see COPYING for details.
7
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
8
//
9
#ifndef HERWIG_ProductionMatrixElement_H
10
#define HERWIG_ProductionMatrixElement_H
11
//
12
// This is the declaration of the ProductionMatrixElement class.
13
14
#include <ThePEG/EventRecord/RhoDMatrix.h>
15
16
namespace
Herwig
{
17
18
19
using namespace
ThePEG
;
20
34
class
ProductionMatrixElement
{
35
36
public
:
37
46
ProductionMatrixElement
(
PDT::Spin
in1,
PDT::Spin
in2,
PDT::Spin
out);
47
55
ProductionMatrixElement
(
PDT::Spin
in1,
PDT::Spin
in2,
PDT::Spin
out1,
56
PDT::Spin
out2);
57
66
ProductionMatrixElement
(
PDT::Spin
in1,
PDT::Spin
in2,
PDT::Spin
out1,
67
PDT::Spin
out2,
PDT::Spin
out3);
68
78
ProductionMatrixElement
(
PDT::Spin
in1,
PDT::Spin
in2,
PDT::Spin
out1,
79
PDT::Spin
out2,
PDT::Spin
out3,
PDT::Spin
out4);
80
91
ProductionMatrixElement
(
PDT::Spin
in1,
PDT::Spin
in2,
PDT::Spin
out1,
92
PDT::Spin
out2,
PDT::Spin
out3,
PDT::Spin
out4,
93
PDT::Spin
out5);
94
106
ProductionMatrixElement
(
PDT::Spin
in1,
PDT::Spin
in2,
PDT::Spin
out1,
107
PDT::Spin
out2,
PDT::Spin
out3,
PDT::Spin
out4,
108
PDT::Spin
out5,
PDT::Spin
out6);
109
116
ProductionMatrixElement
(
PDT::Spin
in1,
PDT::Spin
in2,vector<PDT::Spin> out);
117
121
ProductionMatrixElement
() :
_nout
(0) {}
123
124
public
:
125
132
vector<PDT::Spin>
inspin
() {
return
_inspin
;}
133
138
vector<PDT::Spin>
outspin
() {
return
_outspin
;}
140
141
public
:
142
153
Complex
operator ()
(
unsigned
int
in1,
unsigned
int
in2,
154
unsigned
int
out)
const
;
155
164
Complex
&
operator ()
(
unsigned
int
in1,
unsigned
int
in2,
165
unsigned
int
out);
166
176
Complex
operator ()
(
unsigned
int
in1,
unsigned
int
in2,
177
unsigned
int
out1,
unsigned
int
out2)
const
;
178
188
Complex
&
operator ()
(
unsigned
int
in1,
unsigned
int
in2,
189
unsigned
int
out1,
unsigned
int
out2);
190
201
Complex
operator ()
(
unsigned
int
in1,
unsigned
int
in2,
202
unsigned
int
out1,
unsigned
int
out2,
203
unsigned
int
out3)
const
;
204
215
Complex
&
operator ()
(
unsigned
int
in1,
unsigned
int
in2,
216
unsigned
int
out1,
unsigned
int
out2,
217
unsigned
int
out3);
218
230
Complex
operator ()
(
unsigned
int
in1,
unsigned
int
in2,
231
unsigned
int
out1,
unsigned
int
out2,
232
unsigned
int
out3,
unsigned
int
out4)
const
;
233
245
Complex
&
operator ()
(
unsigned
int
in1,
unsigned
int
in2,
246
unsigned
int
out1,
unsigned
int
out2,
247
unsigned
int
out3,
unsigned
int
out4);
248
261
Complex
operator ()
(
unsigned
int
in1,
unsigned
int
in2,
262
unsigned
int
out1,
unsigned
int
out2,
263
unsigned
int
out3,
unsigned
int
out4,
264
unsigned
int
out5)
const
;
265
278
Complex
&
operator ()
(
unsigned
int
in1,
unsigned
int
in2,
279
unsigned
int
out1,
unsigned
int
out2,
280
unsigned
int
out3,
unsigned
int
out4,
281
unsigned
int
out5);
282
296
Complex
operator ()
(
unsigned
int
in1,
unsigned
int
in2,
297
unsigned
int
out1,
unsigned
int
out2,
298
unsigned
int
out3,
unsigned
int
out4,
299
unsigned
int
out5,
unsigned
int
out6)
const
;
300
314
Complex
&
operator ()
(
unsigned
int
in1,
unsigned
int
in2,
315
unsigned
int
out1,
unsigned
int
out2,
316
unsigned
int
out3,
unsigned
int
out4,
317
unsigned
int
out5,
unsigned
int
out6);
318
325
Complex
operator ()
(vector<unsigned int> hel)
const
;
326
333
Complex
&
operator ()
(vector<unsigned int> hel);
335
336
public
:
337
341
RhoDMatrix
calculateDMatrix
(
int
,
const
RhoDMatrix
&,
342
const
vector<RhoDMatrix> &)
const
;
343
347
RhoDMatrix
calculateRhoMatrix
(
int
,
const
RhoDMatrix
&,
348
const
RhoDMatrix
&,
349
const
vector<RhoDMatrix> &)
const
;
350
354
double
average
()
const
;
355
359
double
average
(
const
RhoDMatrix
& in1,
360
const
RhoDMatrix
& in2)
const
;
361
365
Complex
average
(
const
ProductionMatrixElement
& me2,
366
const
RhoDMatrix
& in1,
367
const
RhoDMatrix
& in2)
const
;
368
369
public
:
370
374
void
reset
(
const
ProductionMatrixElement
& x)
const
;
375
379
static
void
Init
();
380
381
private
:
382
386
void
setMESize
();
387
388
private
:
389
393
mutable
unsigned
int
_nout
;
394
398
mutable
vector<PDT::Spin>
_inspin
;
399
403
mutable
vector<PDT::Spin>
_outspin
;
404
408
mutable
vector<Complex>
_matrixelement
;
409
413
mutable
vector<int>
_constants
;
414
415
};
416
417
}
418
419
#endif
/* HERWIG_ProductionMatrixElement_H */
Herwig::ProductionMatrixElement
The storage of the helicity amplitude expression for the matrix element of a hard process.
Definition:
ProductionMatrixElement.h:34
Herwig::ProductionMatrixElement::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.
Herwig::ProductionMatrixElement::average
double average() const
Compute the spin averaged matrix element.
Herwig::ProductionMatrixElement::outspin
vector< PDT::Spin > outspin()
Get the spins of the outgoing particles.
Definition:
ProductionMatrixElement.h:138
Herwig::ProductionMatrixElement::ProductionMatrixElement
ProductionMatrixElement(PDT::Spin in1, PDT::Spin in2, PDT::Spin out1, PDT::Spin out2, PDT::Spin out3)
Constructor for 2-3 scattering.
Herwig::ProductionMatrixElement::_outspin
vector< PDT::Spin > _outspin
Spins of the outgoing particles.
Definition:
ProductionMatrixElement.h:403
Herwig::ProductionMatrixElement::inspin
vector< PDT::Spin > inspin()
Get the spins of the incoming particles particle.
Definition:
ProductionMatrixElement.h:132
Herwig::ProductionMatrixElement::calculateRhoMatrix
RhoDMatrix calculateRhoMatrix(int, const RhoDMatrix &, const RhoDMatrix &, const vector< RhoDMatrix > &) const
Calculate the rho matrix for a given outgoing particle.
Herwig::ProductionMatrixElement::calculateDMatrix
RhoDMatrix calculateDMatrix(int, const RhoDMatrix &, const vector< RhoDMatrix > &) const
Calculate the decay matrix for an incoming particle.
Herwig::ProductionMatrixElement::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.
Herwig::ProductionMatrixElement::setMESize
void setMESize()
Set the size of the vector containing the matrix element.
Herwig::ProductionMatrixElement::_constants
vector< int > _constants
Constants needed to map the index of the vector to a helicity structure.
Definition:
ProductionMatrixElement.h:413
Herwig::ProductionMatrixElement::_nout
unsigned int _nout
Number of outgoing particles.
Definition:
ProductionMatrixElement.h:393
Herwig::ProductionMatrixElement::ProductionMatrixElement
ProductionMatrixElement(PDT::Spin in1, PDT::Spin in2, PDT::Spin out1, PDT::Spin out2)
Constructor for 2-2 scattering.
Herwig::ProductionMatrixElement::operator()
Complex operator()(unsigned int in1, unsigned int in2, unsigned int out) const
Access the helicity components for a 2-1 scattering.
Herwig::ProductionMatrixElement::ProductionMatrixElement
ProductionMatrixElement(PDT::Spin in1, PDT::Spin in2, PDT::Spin out)
Constructor for 2-1 scattering.
Herwig::ProductionMatrixElement::ProductionMatrixElement
ProductionMatrixElement()
Default constructor.
Definition:
ProductionMatrixElement.h:121
Herwig::ProductionMatrixElement::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.
Herwig::ProductionMatrixElement::average
Complex average(const ProductionMatrixElement &me2, const RhoDMatrix &in1, const RhoDMatrix &in2) const
Compute the spin average matrix element.
Herwig::ProductionMatrixElement::reset
void reset(const ProductionMatrixElement &x) const
Reset the matrix element.
Herwig::ProductionMatrixElement::Init
static void Init()
Standard Init function used to initialize the interfaces.
Herwig::ProductionMatrixElement::ProductionMatrixElement
ProductionMatrixElement(PDT::Spin in1, PDT::Spin in2, vector< PDT::Spin > out)
Constructor for 2-n scattering.
Herwig::ProductionMatrixElement::average
double average(const RhoDMatrix &in1, const RhoDMatrix &in2) const
Compute the spin average matrix element.
Herwig::ProductionMatrixElement::_matrixelement
vector< Complex > _matrixelement
Storage of the matrix element, a vector is better for memory usage.
Definition:
ProductionMatrixElement.h:408
Herwig::ProductionMatrixElement::_inspin
vector< PDT::Spin > _inspin
Spin of the incoming particles as 2s+1.
Definition:
ProductionMatrixElement.h:398
ThePEG::PDT::Spin
Spin
ThePEG::RhoDMatrix
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::Complex
std::complex< double > Complex
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6