herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
MatrixElement
Hadron
MEQCD2to2.h
1
// -*- C++ -*-
2
//
3
// MEQCD2to2.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_MEQCD2to2_H
10
#define HERWIG_MEQCD2to2_H
11
//
12
// This is the declaration of the MEQCD2to2 class.
13
//
14
15
#include "Herwig/MatrixElement/HwMEBase.h"
16
#include "Herwig/MatrixElement/ProductionMatrixElement.h"
17
#include "ThePEG/Helicity/Vertex/AbstractFFVVertex.h"
18
#include "ThePEG/Helicity/Vertex/AbstractVVVVertex.h"
19
#include "ThePEG/Helicity/Vertex/AbstractVVVVVertex.h"
20
#include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
21
#include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
22
#include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
23
24
namespace
Herwig
{
25
using namespace
ThePEG
;
26
using namespace
ThePEG::Helicity
;
27
35
class
MEQCD2to2
:
public
HwMEBase
{
36
37
public
:
38
42
MEQCD2to2
();
43
50
virtual
unsigned
int
orderInAlphaS
()
const
;
51
56
virtual
unsigned
int
orderInAlphaEW
()
const
;
57
65
virtual
double
me2
()
const
;
66
70
virtual
Energy2
scale
()
const
;
71
75
virtual
void
getDiagrams
()
const
;
76
85
virtual
Selector<DiagramIndex>
diagrams
(
const
DiagramVector
& dv)
const
;
86
94
virtual
Selector<const ColourLines *>
95
colourGeometries
(tcDiagPtr diag)
const
;
96
100
virtual
void
constructVertex
(
tSubProPtr
);
102
103
public
:
104
111
void
persistentOutput
(
PersistentOStream
& os)
const
;
112
118
void
persistentInput
(
PersistentIStream
& is,
int
version);
120
127
static
void
Init
();
128
129
protected
:
130
143
double
gg2ggME
(vector<VectorWaveFunction> &g1,vector<VectorWaveFunction> &g2,
144
vector<VectorWaveFunction> &g3,vector<VectorWaveFunction> &g4,
145
unsigned
int
flow)
const
;
146
155
double
gg2qqbarME
(vector<VectorWaveFunction> &g1,vector<VectorWaveFunction> &g2,
156
vector<SpinorBarWaveFunction> & q,vector<SpinorWaveFunction> & qbar,
157
unsigned
int
flow)
const
;
158
167
double
qqbar2ggME
(vector<SpinorWaveFunction> & q,vector<SpinorBarWaveFunction> & qbar,
168
vector<VectorWaveFunction> &g1,vector<VectorWaveFunction> &g2,
169
unsigned
int
flow)
const
;
170
179
double
qg2qgME
(vector<SpinorWaveFunction> & qin,vector<VectorWaveFunction> &g2,
180
vector<SpinorBarWaveFunction> & qout,vector<VectorWaveFunction> &g4,
181
unsigned
int
flow)
const
;
182
191
double
qbarg2qbargME
(vector<SpinorBarWaveFunction> & qin,
192
vector<VectorWaveFunction> &g2,
193
vector<SpinorWaveFunction> & qout,vector<VectorWaveFunction> &g4,
194
unsigned
int
flow)
const
;
195
204
double
qq2qqME
(vector<SpinorWaveFunction> & q1, vector<SpinorWaveFunction> & q2,
205
vector<SpinorBarWaveFunction> & q3, vector<SpinorBarWaveFunction> & q4,
206
unsigned
int
flow)
const
;
207
216
double
qbarqbar2qbarqbarME
(vector<SpinorBarWaveFunction> & q1,
217
vector<SpinorBarWaveFunction> & q2,
218
vector<SpinorWaveFunction> & q3,
219
vector<SpinorWaveFunction> & q4,
220
unsigned
int
flow)
const
;
221
230
double
qqbar2qqbarME
(vector<SpinorWaveFunction> & q1,
231
vector<SpinorBarWaveFunction> & q2,
232
vector<SpinorBarWaveFunction> & q3,
233
vector<SpinorWaveFunction> & q4,
234
unsigned
int
flow)
const
;
236
237
protected
:
238
245
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
); }
246
251
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
); }
253
254
protected
:
255
263
virtual
void
doinit
();
264
274
virtual
void
rebind
(
const
TranslationMap
& trans)
275
;
276
282
virtual
IVector
getReferences
();
284
285
286
private
:
287
292
MEQCD2to2
&
operator=
(
const
MEQCD2to2
&) =
delete
;
293
294
private
:
295
303
AbstractVVVVVertexPtr
_ggggvertex
;
304
308
AbstractVVVVertexPtr
_gggvertex
;
309
313
AbstractFFVVertexPtr
_qqgvertex
;
315
319
unsigned
int
_maxflavour
;
320
324
unsigned
int
_process
;
325
329
mutable
unsigned
int
_flow
;
330
334
mutable
unsigned
int
_diagram
;
335
339
mutable
ProductionMatrixElement
_me
;
340
348
PDPtr
_gluon
;
349
353
vector<PDPtr>
_quark
;
354
358
vector<PDPtr>
_antiquark
;
360
};
361
362
}
363
364
#endif
/* HERWIG_MEQCD2to2_H */
Herwig::HwMEBase
The HwMEBase class serves a number of purposes.
Definition:
HwMEBase.h:35
Herwig::MEQCD2to2
The MEQCD2to2 class provides the matrix elements for QCD scattering processes in hadron-hadron colli...
Definition:
MEQCD2to2.h:35
Herwig::MEQCD2to2::_gluon
PDPtr _gluon
ParticleData objects of the partons.
Definition:
MEQCD2to2.h:348
Herwig::MEQCD2to2::qqbar2qqbarME
double qqbar2qqbarME(vector< SpinorWaveFunction > &q1, vector< SpinorBarWaveFunction > &q2, vector< SpinorBarWaveFunction > &q3, vector< SpinorWaveFunction > &q4, unsigned int flow) const
Matrix element for .
Herwig::MEQCD2to2::_qqgvertex
AbstractFFVVertexPtr _qqgvertex
vertex
Definition:
MEQCD2to2.h:313
Herwig::MEQCD2to2::rebind
virtual void rebind(const TranslationMap &trans)
Rebind pointer to other Interfaced objects.
Herwig::MEQCD2to2::me2
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
Herwig::MEQCD2to2::operator=
MEQCD2to2 & operator=(const MEQCD2to2 &)=delete
The assignment operator is private and must never be called.
Herwig::MEQCD2to2::_maxflavour
unsigned int _maxflavour
Maximum numbere of quark flavours to include.
Definition:
MEQCD2to2.h:319
Herwig::MEQCD2to2::_flow
unsigned int _flow
Colour flow.
Definition:
MEQCD2to2.h:329
Herwig::MEQCD2to2::gg2ggME
double gg2ggME(vector< VectorWaveFunction > &g1, vector< VectorWaveFunction > &g2, vector< VectorWaveFunction > &g3, vector< VectorWaveFunction > &g4, unsigned int flow) const
Members to calculate the matrix elements.
Herwig::MEQCD2to2::qqbar2ggME
double qqbar2ggME(vector< SpinorWaveFunction > &q, vector< SpinorBarWaveFunction > &qbar, vector< VectorWaveFunction > &g1, vector< VectorWaveFunction > &g2, unsigned int flow) const
Matrix element for .
Herwig::MEQCD2to2::getDiagrams
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
Herwig::MEQCD2to2::colourGeometries
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
Herwig::MEQCD2to2::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::MEQCD2to2::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
MEQCD2to2.h:245
Herwig::MEQCD2to2::qg2qgME
double qg2qgME(vector< SpinorWaveFunction > &qin, vector< VectorWaveFunction > &g2, vector< SpinorBarWaveFunction > &qout, vector< VectorWaveFunction > &g4, unsigned int flow) const
Matrix element for .
Herwig::MEQCD2to2::_quark
vector< PDPtr > _quark
the quarks
Definition:
MEQCD2to2.h:353
Herwig::MEQCD2to2::_process
unsigned int _process
Processes to include.
Definition:
MEQCD2to2.h:324
Herwig::MEQCD2to2::_gggvertex
AbstractVVVVertexPtr _gggvertex
vertex
Definition:
MEQCD2to2.h:308
Herwig::MEQCD2to2::qbarg2qbargME
double qbarg2qbargME(vector< SpinorBarWaveFunction > &qin, vector< VectorWaveFunction > &g2, vector< SpinorWaveFunction > &qout, vector< VectorWaveFunction > &g4, unsigned int flow) const
Matrix elements for .
Herwig::MEQCD2to2::diagrams
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
Herwig::MEQCD2to2::constructVertex
virtual void constructVertex(tSubProPtr)
Construct the vertex of spin correlations.
Herwig::MEQCD2to2::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::MEQCD2to2::orderInAlphaEW
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
Herwig::MEQCD2to2::_antiquark
vector< PDPtr > _antiquark
the antiquarks
Definition:
MEQCD2to2.h:358
Herwig::MEQCD2to2::scale
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
Herwig::MEQCD2to2::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
MEQCD2to2.h:251
Herwig::MEQCD2to2::_ggggvertex
AbstractVVVVVertexPtr _ggggvertex
Vertices needed to compute the diagrams.
Definition:
MEQCD2to2.h:303
Herwig::MEQCD2to2::qbarqbar2qbarqbarME
double qbarqbar2qbarqbarME(vector< SpinorBarWaveFunction > &q1, vector< SpinorBarWaveFunction > &q2, vector< SpinorWaveFunction > &q3, vector< SpinorWaveFunction > &q4, unsigned int flow) const
Matrix element for .
Herwig::MEQCD2to2::MEQCD2to2
MEQCD2to2()
The default constructor.
Herwig::MEQCD2to2::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::MEQCD2to2::_diagram
unsigned int _diagram
Diagram.
Definition:
MEQCD2to2.h:334
Herwig::MEQCD2to2::_me
ProductionMatrixElement _me
Matrix element.
Definition:
MEQCD2to2.h:339
Herwig::MEQCD2to2::qq2qqME
double qq2qqME(vector< SpinorWaveFunction > &q1, vector< SpinorWaveFunction > &q2, vector< SpinorBarWaveFunction > &q3, vector< SpinorBarWaveFunction > &q4, unsigned int flow) const
Matrix element for .
Herwig::MEQCD2to2::orderInAlphaS
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
Herwig::MEQCD2to2::gg2qqbarME
double gg2qqbarME(vector< VectorWaveFunction > &g1, vector< VectorWaveFunction > &g2, vector< SpinorBarWaveFunction > &q, vector< SpinorWaveFunction > &qbar, unsigned int flow) const
Matrix element for .
Herwig::MEQCD2to2::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::MEQCD2to2::getReferences
virtual IVector getReferences()
Return a vector of all pointers to Interfaced objects used in this object.
Herwig::ProductionMatrixElement
The storage of the helicity amplitude expression for the matrix element of a hard process.
Definition:
ProductionMatrixElement.h:34
ThePEG::MEBase::DiagramVector
vector< DiagPtr > DiagramVector
ThePEG::PersistentIStream
ThePEG::PersistentOStream
ThePEG::Rebinder
ThePEG::Selector
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG::Helicity
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tSubProPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
ThePEG::PDPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr
ThePEG::IVector
vector< IBPtr > IVector
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6