herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
MatrixElement
Lepton
MEee2gZ2ll.h
1
// -*- C++ -*-
2
//
3
// MEee2gZ2ll.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_MEee2gZ2ll_H
10
#define HERWIG_MEee2gZ2ll_H
11
//
12
// This is the declaration of the MEee2gZ2ll class.
13
//
14
15
#include "Herwig/MatrixElement/HwMEBase.h"
16
#include "Herwig/Models/StandardModel/StandardModel.h"
17
#include "ThePEG/PDT/EnumParticles.h"
18
#include "Herwig/MatrixElement/ProductionMatrixElement.h"
19
#include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
20
#include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
21
#include "Herwig/Shower/ShowerAlpha.h"
22
23
namespace
Herwig
{
24
25
using namespace
ThePEG
;
26
35
class
MEee2gZ2ll
:
public
HwMEBase
{
36
37
public
:
38
42
MEee2gZ2ll
() : allowed_(0), pTmin_(GeV),
43
preFactor_(6.) {
44
massOption(vector<unsigned int>(2,1));
45
}
46
54
virtual
POWHEGType
hasPOWHEGCorrection
() {
return
FSR;}
55
59
virtual
bool
hasMECorrection
() {
return
false
;}
60
64
virtual
RealEmissionProcessPtr generateHardest(RealEmissionProcessPtr,
65
ShowerInteraction
);
67
68
public
:
69
76
virtual
unsigned
int
orderInAlphaS()
const
;
77
82
virtual
unsigned
int
orderInAlphaEW()
const
;
83
91
virtual
double
me2()
const
;
92
96
virtual
Energy2 scale()
const
;
97
101
virtual
void
getDiagrams()
const
;
102
111
virtual
Selector<DiagramIndex>
diagrams(
const
DiagramVector
& dv)
const
;
112
120
virtual
Selector<const ColourLines *>
121
colourGeometries(tcDiagPtr diag)
const
;
122
126
virtual
void
constructVertex(
tSubProPtr
);
128
129
130
public
:
131
138
void
persistentOutput(
PersistentOStream
& os)
const
;
139
145
void
persistentInput(
PersistentIStream
& is,
int
version);
147
154
static
void
Init();
155
156
protected
:
157
164
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
);}
165
170
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
);}
172
173
protected
:
174
182
virtual
void
doinit();
183
193
virtual
void
rebind(
const
TranslationMap
& trans)
194
;
195
201
virtual
IVector
getReferences();
203
204
protected
:
205
211
double
loME(
const
vector<cPDPtr> & partons,
212
const
vector<Lorentz5Momentum> & momenta,
213
bool
first)
const
;
214
225
ProductionMatrixElement
HelicityME(vector<SpinorWaveFunction> & fin,
226
vector<SpinorBarWaveFunction> & ain,
227
vector<SpinorBarWaveFunction> & fout,
228
vector<SpinorWaveFunction> & aout,
229
double
& me,
230
double
& cont,
231
double
& BW )
const
;
232
244
double
meRatio(vector<cPDPtr> partons,
245
vector<Lorentz5Momentum> momenta,
246
unsigned
int
iemittor,
247
bool
subtract=
false
)
const
;
248
255
InvEnergy2 realME(
const
vector<cPDPtr> & partons,
256
const
vector<Lorentz5Momentum> & momenta)
const
;
257
261
Energy generateHard(RealEmissionProcessPtr tree,
262
vector<Lorentz5Momentum> & emission,
263
unsigned
int
& iemit,
unsigned
int
& ispect,
264
bool
applyVeto);
265
266
267
protected
:
268
272
AbstractFFVVertexPtr FFZVertex()
const
{
return
FFZVertex_;}
273
277
AbstractFFVVertexPtr FFPVertex()
const
{
return
FFPVertex_;}
278
282
PDPtr
Z0()
const
{
return
Z0_;}
283
287
PDPtr
gamma()
const
{
return
gamma_;}
288
289
private
:
290
295
MEee2gZ2ll
& operator=(
const
MEee2gZ2ll
&) =
delete
;
296
297
private
:
298
306
AbstractFFVVertexPtr FFZVertex_;
307
311
AbstractFFVVertexPtr FFPVertex_;
313
317
PDPtr
Z0_;
318
322
PDPtr
gamma_;
323
327
int
allowed_;
328
332
ShowerAlphaPtr alphaQED_;
333
341
Energy pTmin_;
342
346
double
preFactor_;
347
351
vector<cPDPtr> partons_;
352
356
vector<Lorentz5Momentum> loMomenta_;
358
359
};
360
361
}
362
363
#endif
/* HERWIG_MEee2gZ2ll_H */
ThePEG::PersistentIStream
Herwig::ShowerInteraction
ShowerInteraction
Handy header file to be included in all Shower classes.
Definition:
ShowerInteraction.h:23
ThePEG::PersistentOStream
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Herwig::MEee2gZ2ll::MEee2gZ2ll
MEee2gZ2ll()
The default constructor.
Definition:
MEee2gZ2ll.h:42
ThePEG::Rebinder
Herwig::MEee2gZ2ll
The MEee2gZ2ll class provides the matrix element for .
Definition:
MEee2gZ2ll.h:35
ThePEG
Herwig::MEee2gZ2ll::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
MEee2gZ2ll.h:170
Herwig::ProductionMatrixElement
The storage of the helicity amplitude expression for the matrix element of a hard process...
Definition:
ProductionMatrixElement.h:34
Herwig::MEee2gZ2ll::hasMECorrection
virtual bool hasMECorrection()
Has an old fashioned ME correction.
Definition:
MEee2gZ2ll.h:59
ThePEG::tSubProPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
ThePEG::PDPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr
Herwig::MEee2gZ2ll::hasPOWHEGCorrection
virtual POWHEGType hasPOWHEGCorrection()
Members for hard corrections to the emission of QCD radiation.
Definition:
MEee2gZ2ll.h:54
Herwig::HwMEBase::POWHEGType
POWHEGType
Virtual members to be overridden by inheriting classes which implement hard corrections.
Definition:
HwMEBase.h:87
ThePEG::Selector
Herwig::MEee2gZ2ll::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
MEee2gZ2ll.h:164
ThePEG::MEBase::DiagramVector
vector< DiagPtr > DiagramVector
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::HwMEBase
The HwMEBase class serves a number of purposes.
Definition:
HwMEBase.h:35
ThePEG::IVector
vector< IBPtr > IVector
Generated on Sat Apr 11 2020 14:50:30 for Herwig by
1.8.13