herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
MatrixElement
Lepton
MEee2ff.h
1
// -*- C++ -*-
2
//
3
// MEee2ff.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_MEee2ff_H
10
#define HERWIG_MEee2ff_H
11
//
12
// This is the declaration of the MEee2ff 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
MEee2ff
:
public
HwMEBase
{
36
37
public
:
38
42
MEee2ff
() : allowed_(0), helicity_(0), incoming_(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
MEee2ff
&
operator=
(
const
MEee2ff
&) =
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
int
helicity_;
333
337
int
incoming_;
338
342
ShowerAlphaPtr alphaQED_;
343
351
Energy
pTmin_;
352
356
double
preFactor_;
357
361
vector<cPDPtr> partons_;
362
366
vector<Lorentz5Momentum> loMomenta_;
368
369
};
370
371
}
372
373
#endif
/* HERWIG_MEee2ff_H */
Herwig::HwMEBase
The HwMEBase class serves a number of purposes.
Definition:
HwMEBase.h:35
Herwig::HwMEBase::operator=
HwMEBase & operator=(const HwMEBase &)=delete
The assignment operator is private and must never be called.
Herwig::HwMEBase::massOption
void massOption(vector< unsigned int > iopt)
Set the treatment of the outgoing masses.
Definition:
HwMEBase.h:206
Herwig::HwMEBase::POWHEGType
POWHEGType
Virtual members to be overridden by inheriting classes which implement hard corrections.
Definition:
HwMEBase.h:87
Herwig::MEee2ff
The MEee2ff class provides the matrix element for .
Definition:
MEee2ff.h:35
Herwig::MEee2ff::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
MEee2ff.h:164
Herwig::MEee2ff::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::MEee2ff::getReferences
virtual IVector getReferences()
Return a vector of all pointers to Interfaced objects used in this object.
Herwig::MEee2ff::meRatio
double meRatio(vector< cPDPtr > partons, vector< Lorentz5Momentum > momenta, unsigned int iemittor, bool subtract=false) const
The ratio of the matrix element for one additional jet over the leading order result.
Herwig::MEee2ff::HelicityME
ProductionMatrixElement HelicityME(vector< SpinorWaveFunction > &fin, vector< SpinorBarWaveFunction > &ain, vector< SpinorBarWaveFunction > &fout, vector< SpinorWaveFunction > &aout, double &me, double &cont, double &BW) const
Member to calculate the matrix element.
Herwig::MEee2ff::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::MEee2ff::diagrams
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
Herwig::MEee2ff::orderInAlphaS
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
Herwig::MEee2ff::MEee2ff
MEee2ff()
The default constructor.
Definition:
MEee2ff.h:42
Herwig::MEee2ff::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::MEee2ff::scale
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
Herwig::MEee2ff::hasMECorrection
virtual bool hasMECorrection()
Has an old fashioned ME correction.
Definition:
MEee2ff.h:59
Herwig::MEee2ff::orderInAlphaEW
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
Herwig::MEee2ff::rebind
virtual void rebind(const TranslationMap &trans)
Rebind pointer to other Interfaced objects.
Herwig::MEee2ff::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::MEee2ff::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
MEee2ff.h:170
Herwig::MEee2ff::getDiagrams
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
Herwig::MEee2ff::generateHardest
virtual RealEmissionProcessPtr generateHardest(RealEmissionProcessPtr, ShowerInteraction)
Apply the POWHEG style correction.
Herwig::MEee2ff::constructVertex
virtual void constructVertex(tSubProPtr)
Construct the vertex of spin correlations.
Herwig::MEee2ff::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::MEee2ff::hasPOWHEGCorrection
virtual POWHEGType hasPOWHEGCorrection()
Members for hard corrections to the emission of QCD radiation.
Definition:
MEee2ff.h:54
Herwig::MEee2ff::me2
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
Herwig::MEee2ff::loME
double loME(const vector< cPDPtr > &partons, const vector< Lorentz5Momentum > &momenta, bool first) const
Calculate the matrix element for .
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::ShowerInteraction
ShowerInteraction
Handy header file to be included in all Shower classes.
Definition:
ShowerInteraction.h:23
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG::ParticleID::gamma
gamma
ThePEG::Units::Energy
Qty< 0, 1, 0 > Energy
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tSubProPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
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