herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
MatrixElement
Hadron
MEPP2QQ.h
1
// -*- C++ -*-
2
//
3
// MEPP2QQ.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_MEPP2QQ_H
10
#define HERWIG_MEPP2QQ_H
11
//
12
// This is the declaration of the MEPP2QQ 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/WaveFunction/SpinorWaveFunction.h"
20
#include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
21
#include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
22
23
namespace
Herwig
{
24
using namespace
ThePEG
;
25
using namespace
ThePEG::Helicity
;
26
34
class
MEPP2QQ
:
public
HwMEBase
{
35
36
public
:
37
41
MEPP2QQ
();
42
49
virtual
unsigned
int
orderInAlphaS()
const
;
50
55
virtual
unsigned
int
orderInAlphaEW()
const
;
56
64
virtual
double
me2()
const
;
65
69
virtual
Energy2 scale()
const
;
70
74
virtual
void
getDiagrams()
const
;
75
84
virtual
Selector<DiagramIndex>
diagrams(
const
DiagramVector
& dv)
const
;
85
93
virtual
Selector<const ColourLines *>
94
colourGeometries(tcDiagPtr diag)
const
;
95
99
virtual
void
constructVertex(
tSubProPtr
);
101
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
gg2qqbarME(vector<VectorWaveFunction> &g1,vector<VectorWaveFunction> &g2,
144
vector<SpinorBarWaveFunction> & q,vector<SpinorWaveFunction> & qbar,
145
unsigned
int
flow)
const
;
146
155
double
qqbar2qqbarME(vector<SpinorWaveFunction> & q1,
156
vector<SpinorBarWaveFunction> & q2,
157
vector<SpinorBarWaveFunction> & q3,
158
vector<SpinorWaveFunction> & q4,
159
unsigned
int
flow)
const
;
160
169
double
qq2qqME(vector<SpinorWaveFunction> & q1, vector<SpinorWaveFunction> & q2,
170
vector<SpinorBarWaveFunction> & q3, vector<SpinorBarWaveFunction> & q4,
171
unsigned
int
flow)
const
;
172
181
double
qbarqbar2qbarqbarME(vector<SpinorBarWaveFunction> & q1,
182
vector<SpinorBarWaveFunction> & q2,
183
vector<SpinorWaveFunction> & q3,
184
vector<SpinorWaveFunction> & q4,
185
unsigned
int
flow)
const
;
186
195
double
qg2qgME(vector<SpinorWaveFunction> & qin,vector<VectorWaveFunction> &g2,
196
vector<SpinorBarWaveFunction> & qout,vector<VectorWaveFunction> &g4,
197
unsigned
int
flow)
const
;
198
207
double
qbarg2qbargME(vector<SpinorBarWaveFunction> & qin,
208
vector<VectorWaveFunction> &g2,
209
vector<SpinorWaveFunction> & qout,vector<VectorWaveFunction> &g4,
210
unsigned
int
flow)
const
;
212
213
protected
:
214
221
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
); }
222
227
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
); }
229
230
protected
:
231
239
virtual
void
doinit();
240
250
virtual
void
rebind(
const
TranslationMap
& trans)
251
;
252
258
virtual
IVector
getReferences();
260
261
private
:
262
267
MEPP2QQ
& operator=(
const
MEPP2QQ
&) =
delete
;
268
269
private
:
270
278
AbstractVVVVertexPtr
_gggvertex
;
279
283
AbstractFFVVertexPtr
_qqgvertex
;
285
289
unsigned
int
_quarkflavour
;
290
294
unsigned
int
_process
;
295
300
unsigned
int
_bottomopt
;
301
305
unsigned
int
_topopt
;
306
310
unsigned
int
_maxflavour
;
311
315
mutable
unsigned
int
_flow
;
316
320
mutable
unsigned
int
_diagram
;
321
325
mutable
ProductionMatrixElement
_me
;
326
334
PDPtr
_gluon
;
335
339
vector<PDPtr>
_quark
;
340
344
vector<PDPtr>
_antiquark
;
346
347
};
348
349
}
350
351
#endif
/* HERWIG_MEPP2QQ_H */
ThePEG::PersistentIStream
Herwig::MEPP2QQ
The MEPP2QQ class implements the production of a heavy quark-antiquark pair via QCD.
Definition:
MEPP2QQ.h:34
ThePEG::Helicity
Herwig::MEPP2QQ::_gggvertex
AbstractVVVVertexPtr _gggvertex
Vertices needed to compute the diagrams.
Definition:
MEPP2QQ.h:278
Herwig::MEPP2QQ::_bottomopt
unsigned int _bottomopt
Option for the treatment of bottom and lighter quark masses.
Definition:
MEPP2QQ.h:300
ThePEG::PersistentOStream
Herwig::MEPP2QQ::_qqgvertex
AbstractFFVVertexPtr _qqgvertex
vertex
Definition:
MEPP2QQ.h:283
Herwig::MEPP2QQ::_process
unsigned int _process
Processes to include.
Definition:
MEPP2QQ.h:294
Herwig::MEPP2QQ::_quarkflavour
unsigned int _quarkflavour
Quark Flavour.
Definition:
MEPP2QQ.h:289
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Rebinder
ThePEG
Herwig::MEPP2QQ::_gluon
PDPtr _gluon
ParticleData objects of the partons.
Definition:
MEPP2QQ.h:334
Herwig::MEPP2QQ::_quark
vector< PDPtr > _quark
the quarks
Definition:
MEPP2QQ.h:339
Herwig::ProductionMatrixElement
The storage of the helicity amplitude expression for the matrix element of a hard process...
Definition:
ProductionMatrixElement.h:34
Herwig::MEPP2QQ::_maxflavour
unsigned int _maxflavour
Maximum numbere of quark flavours to include.
Definition:
MEPP2QQ.h:310
Herwig::MEPP2QQ::_diagram
unsigned int _diagram
Diagram.
Definition:
MEPP2QQ.h:320
ThePEG::tSubProPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
ThePEG::PDPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr
Herwig::MEPP2QQ::_me
ProductionMatrixElement _me
Matrix element.
Definition:
MEPP2QQ.h:325
Herwig::MEPP2QQ::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
MEPP2QQ.h:227
ThePEG::Selector
Herwig::MEPP2QQ::_antiquark
vector< PDPtr > _antiquark
the antiquarks
Definition:
MEPP2QQ.h:344
ThePEG::MEBase::DiagramVector
vector< DiagPtr > DiagramVector
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::MEPP2QQ::_topopt
unsigned int _topopt
Option for the treatment of top quark masses.
Definition:
MEPP2QQ.h:305
Herwig::MEPP2QQ::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
MEPP2QQ.h:221
Herwig::HwMEBase
The HwMEBase class serves a number of purposes.
Definition:
HwMEBase.h:35
ThePEG::IVector
vector< IBPtr > IVector
Herwig::MEPP2QQ::_flow
unsigned int _flow
Colour flow.
Definition:
MEPP2QQ.h:315
Generated on Sat Apr 11 2020 14:50:30 for Herwig by
1.8.13