herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
MatrixElement
Lepton
MEee2gZ2qq.h
1
// -*- C++ -*-
2
//
3
// MEee2gZ2qq.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_MEee2gZ2qq_H
10
#define HERWIG_MEee2gZ2qq_H
11
//
12
// This is the declaration of the MEee2gZ2qq class.
13
//
14
15
#include "Herwig/MatrixElement/HwMEBase.h"
16
#include "Herwig/Models/StandardModel/StandardModel.h"
17
#include "ThePEG/PDT/EnumParticles.h"
18
#include "ThePEG/Repository/EventGenerator.h"
19
#include "ThePEG/Utilities/Rebinder.h"
20
#include "Herwig/MatrixElement/ProductionMatrixElement.h"
21
#include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
22
#include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
23
#include "Herwig/Shower/ShowerAlpha.h"
24
25
namespace
Herwig
{
26
27
using namespace
ThePEG
;
28
38
class
MEee2gZ2qq
:
public
HwMEBase
{
39
40
public
:
41
45
MEee2gZ2qq
() :
minflav_
(1),
maxflav_
(5),
massopt_
(1),
46
spinCorrelations_
(true),
47
pTminQED_
(GeV),
pTminQCD_
(GeV),
48
preFactor_
(6.)
49
{}
50
58
virtual
POWHEGType
hasPOWHEGCorrection
() {
return
FSR;}
59
63
virtual
bool
hasMECorrection
() {
return
true
;}
64
68
virtual
void
initializeMECorrection
(RealEmissionProcessPtr,
double
&,
69
double
& );
70
74
virtual
RealEmissionProcessPtr
applyHardMatrixElementCorrection
(RealEmissionProcessPtr);
75
88
virtual
bool
softMatrixElementVeto
(
PPtr
parent,
89
PPtr
progenitor,
90
const
bool
& fs,
91
const
Energy & highestpT,
92
const
vector<tcPDPtr> & ids,
93
const
double
& z,
94
const
Energy &
scale
,
95
const
Energy & pT);
96
100
virtual
RealEmissionProcessPtr
generateHardest
(RealEmissionProcessPtr,
ShowerInteraction
);
102
109
virtual
unsigned
int
orderInAlphaS
()
const
;
110
115
virtual
unsigned
int
orderInAlphaEW
()
const
;
116
124
virtual
double
me2
()
const
;
125
129
virtual
Energy2
scale
()
const
;
130
134
virtual
void
getDiagrams
()
const
;
135
144
virtual
Selector<DiagramIndex>
diagrams
(
const
DiagramVector
& dv)
const
;
145
153
virtual
Selector<const ColourLines *>
154
colourGeometries
(tcDiagPtr diag)
const
;
155
159
virtual
void
constructVertex
(
tSubProPtr
);
161
162
163
public
:
164
171
void
persistentOutput
(
PersistentOStream
& os)
const
;
172
178
void
persistentInput
(
PersistentIStream
& is,
int
version);
180
187
static
void
Init
();
188
189
protected
:
190
197
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
);}
198
203
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
);}
205
206
protected
:
207
215
virtual
void
doinit
();
216
226
virtual
void
rebind
(
const
TranslationMap
& trans)
227
;
228
234
virtual
IVector
getReferences
();
236
237
protected
:
238
245
double
loME
(
const
vector<cPDPtr> & partons,
246
const
vector<Lorentz5Momentum> & momenta,
247
bool
first)
const
;
248
259
ProductionMatrixElement
HelicityME
(vector<SpinorWaveFunction> & fin,
260
vector<SpinorBarWaveFunction> & ain,
261
vector<SpinorBarWaveFunction> & fout,
262
vector<SpinorWaveFunction> & aout,
263
double
& me,
264
double
& cont,
265
double
& BW )
const
;
266
279
double
meRatio
(vector<cPDPtr> partons,
280
vector<Lorentz5Momentum> momenta,
281
unsigned
int
iemitter,
282
ShowerInteraction
inter,
283
bool
subtract =
false
)
const
;
284
291
InvEnergy2
realME
(
const
vector<cPDPtr> & partons,
292
const
vector<Lorentz5Momentum> & momenta,
293
ShowerInteraction
inter)
const
;
294
295
private
:
296
300
pair<Energy,ShowerInteraction>
301
generateHard
(RealEmissionProcessPtr,
302
vector<Lorentz5Momentum> & emission,
303
unsigned
int
& iemit,
unsigned
int
& ispect,
304
bool
applyVeto,
ShowerInteraction
);
305
309
RealEmissionProcessPtr
calculateRealEmission
(RealEmissionProcessPtr born,
bool
veto,
310
ShowerInteraction
inter);
311
315
double
getKfromX
(
double
,
double
);
316
324
double
MEV
(
double
,
double
);
325
331
double
PS
(
double
x1,
double
x2);
333
334
protected
:
335
339
AbstractFFVVertexPtr
FFZVertex
()
const
{
return
FFZVertex_
;}
340
344
AbstractFFVVertexPtr
FFPVertex
()
const
{
return
FFPVertex_
;}
345
349
PDPtr
Z0
()
const
{
return
Z0_
;}
350
354
PDPtr
gamma
()
const
{
return
gamma_
;}
355
359
PDPtr
gluon
()
const
{
return
gluon_
;}
360
361
private
:
362
367
MEee2gZ2qq
&
operator=
(
const
MEee2gZ2qq
&) =
delete
;
368
369
private
:
370
378
int
minflav_
;
379
383
int
maxflav_
;
384
388
unsigned
int
massopt_
;
390
398
AbstractFFVVertexPtr
FFZVertex_
;
399
403
AbstractFFVVertexPtr
FFPVertex_
;
404
408
AbstractFFVVertexPtr
FFGVertex_
;
410
414
bool
spinCorrelations_
;
415
423
PDPtr
Z0_
;
424
428
PDPtr
gamma_
;
429
433
PDPtr
gluon_
;
435
439
Energy
d_Q_
;
440
444
Energy
d_m_
;
445
449
double
d_rho_
;
450
454
double
d_v_
;
455
459
double
d_kt1_
;
460
464
double
d_kt2_
;
465
469
static
const
double
EPS_
;
470
474
ShowerAlphaPtr
alphaQCD_
;
475
479
ShowerAlphaPtr
alphaQED_
;
480
481
private
:
482
490
Energy
pTminQED_
;
494
Energy
pTminQCD_
;
495
499
double
preFactor_
;
500
504
vector<cPDPtr>
partons_
;
505
509
vector<Lorentz5Momentum>
loMomenta_
;
511
512
};
513
514
}
515
516
#endif
/* HERWIG_MEee2gZ2qq_H */
Herwig::HwMEBase
The HwMEBase class serves a number of purposes.
Definition:
HwMEBase.h:35
Herwig::HwMEBase::POWHEGType
POWHEGType
Virtual members to be overridden by inheriting classes which implement hard corrections.
Definition:
HwMEBase.h:87
Herwig::MEee2gZ2qq::FFPVertex
AbstractFFVVertexPtr FFPVertex() const
Pointer to the fermion-antifermion photon vertex.
Definition:
MEee2gZ2qq.h:344
Herwig::MEee2gZ2qq::gluon
PDPtr gluon() const
Pointer to the particle data object for the gluon.
Definition:
MEee2gZ2qq.h:359
Herwig::MEee2gZ2qq::gamma
PDPtr gamma() const
Pointer to the particle data object for the photon.
Definition:
MEee2gZ2qq.h:354
Herwig::MEee2gZ2qq::PS
double PS(double x1, double x2)
The matrix element, given , .
Herwig::MEee2gZ2qq::MEee2gZ2qq
MEee2gZ2qq()
The default constructor.
Definition:
MEee2gZ2qq.h:45
Herwig::MEee2gZ2qq::d_kt2_
double d_kt2_
The initial kappa-tilde values for radiation from the antiquark.
Definition:
MEee2gZ2qq.h:464
Herwig::MEee2gZ2qq::generateHardest
virtual RealEmissionProcessPtr generateHardest(RealEmissionProcessPtr, ShowerInteraction)
Apply the POWHEG style correction.
Herwig::MEee2gZ2qq::softMatrixElementVeto
virtual bool softMatrixElementVeto(PPtr parent, PPtr progenitor, const bool &fs, const Energy &highestpT, const vector< tcPDPtr > &ids, const double &z, const Energy &scale, const Energy &pT)
Apply the soft matrix element correction.
Herwig::MEee2gZ2qq::spinCorrelations_
bool spinCorrelations_
Switch on/off the helivity vertex construction.
Definition:
MEee2gZ2qq.h:414
Herwig::MEee2gZ2qq::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::MEee2gZ2qq::applyHardMatrixElementCorrection
virtual RealEmissionProcessPtr applyHardMatrixElementCorrection(RealEmissionProcessPtr)
Apply the hard matrix element correction to a given hard process or decay.
Herwig::MEee2gZ2qq::FFZVertex_
AbstractFFVVertexPtr FFZVertex_
Pointers to the vertices.
Definition:
MEee2gZ2qq.h:398
Herwig::MEee2gZ2qq::d_Q_
Energy d_Q_
CM energy.
Definition:
MEee2gZ2qq.h:439
Herwig::MEee2gZ2qq::getReferences
virtual IVector getReferences()
Return a vector of all pointers to Interfaced objects used in this object.
Herwig::MEee2gZ2qq::FFGVertex_
AbstractFFVVertexPtr FFGVertex_
Pointer to the fermion-antifermion photon vertex.
Definition:
MEee2gZ2qq.h:408
Herwig::MEee2gZ2qq::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
MEee2gZ2qq.h:197
Herwig::MEee2gZ2qq::orderInAlphaEW
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
Herwig::MEee2gZ2qq::maxflav_
int maxflav_
The maximum PDG of the quarks to be produced.
Definition:
MEee2gZ2qq.h:383
Herwig::MEee2gZ2qq::FFZVertex
AbstractFFVVertexPtr FFZVertex() const
Pointer to the fermion-antifermion Z vertex.
Definition:
MEee2gZ2qq.h:339
Herwig::MEee2gZ2qq::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
MEee2gZ2qq.h:203
Herwig::MEee2gZ2qq::hasMECorrection
virtual bool hasMECorrection()
Has an old fashioned ME correction.
Definition:
MEee2gZ2qq.h:63
Herwig::MEee2gZ2qq::Z0_
PDPtr Z0_
Pointer to the ParticleData objects.
Definition:
MEee2gZ2qq.h:423
Herwig::MEee2gZ2qq::loMomenta_
vector< Lorentz5Momentum > loMomenta_
Momenta of the leading-order partons.
Definition:
MEee2gZ2qq.h:509
Herwig::MEee2gZ2qq::calculateRealEmission
RealEmissionProcessPtr calculateRealEmission(RealEmissionProcessPtr born, bool veto, ShowerInteraction inter)
Calculate the reall emission.
Herwig::MEee2gZ2qq::constructVertex
virtual void constructVertex(tSubProPtr)
Construct the vertex of spin correlations.
Herwig::MEee2gZ2qq::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::MEee2gZ2qq::d_m_
Energy d_m_
Quark mass.
Definition:
MEee2gZ2qq.h:444
Herwig::MEee2gZ2qq::orderInAlphaS
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
Herwig::MEee2gZ2qq::FFPVertex_
AbstractFFVVertexPtr FFPVertex_
Pointer to the fermion-antifermion photon vertex.
Definition:
MEee2gZ2qq.h:403
Herwig::MEee2gZ2qq::alphaQCD_
ShowerAlphaPtr alphaQCD_
Pointer to the strong coupling.
Definition:
MEee2gZ2qq.h:474
Herwig::MEee2gZ2qq::operator=
MEee2gZ2qq & operator=(const MEee2gZ2qq &)=delete
The assignment operator is private and must never be called.
Herwig::MEee2gZ2qq::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::MEee2gZ2qq::getKfromX
double getKfromX(double, double)
Calculate .
Herwig::MEee2gZ2qq::hasPOWHEGCorrection
virtual POWHEGType hasPOWHEGCorrection()
Members for hard corrections to the emission of QCD radiation.
Definition:
MEee2gZ2qq.h:58
Herwig::MEee2gZ2qq::preFactor_
double preFactor_
Overestimate for the prefactor.
Definition:
MEee2gZ2qq.h:499
Herwig::MEee2gZ2qq::generateHard
pair< Energy, ShowerInteraction > generateHard(RealEmissionProcessPtr, vector< Lorentz5Momentum > &emission, unsigned int &iemit, unsigned int &ispect, bool applyVeto, ShowerInteraction)
Generate the momenta for a hard configuration.
Herwig::MEee2gZ2qq::partons_
vector< cPDPtr > partons_
ParticleData objects for the partons.
Definition:
MEee2gZ2qq.h:504
Herwig::MEee2gZ2qq::massopt_
unsigned int massopt_
Option for the treatment of the top quark mass.
Definition:
MEee2gZ2qq.h:388
Herwig::MEee2gZ2qq::meRatio
double meRatio(vector< cPDPtr > partons, vector< Lorentz5Momentum > momenta, unsigned int iemitter, ShowerInteraction inter, bool subtract=false) const
The ratio of the matrix element for one additional jet over the leading order result.
Herwig::MEee2gZ2qq::MEV
double MEV(double, double)
Vector and axial vector parts of the matrix element.
Herwig::MEee2gZ2qq::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::MEee2gZ2qq::scale
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
Herwig::MEee2gZ2qq::realME
InvEnergy2 realME(const vector< cPDPtr > &partons, const vector< Lorentz5Momentum > &momenta, ShowerInteraction inter) const
Calculate the matrix element for .
Herwig::MEee2gZ2qq::initializeMECorrection
virtual void initializeMECorrection(RealEmissionProcessPtr, double &, double &)
Initialize the ME correction.
Herwig::MEee2gZ2qq::gluon_
PDPtr gluon_
Pointer to the particle data object for the gluon.
Definition:
MEee2gZ2qq.h:433
Herwig::MEee2gZ2qq::diagrams
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
Herwig::MEee2gZ2qq::d_v_
double d_v_
The v parameter.
Definition:
MEee2gZ2qq.h:454
Herwig::MEee2gZ2qq::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::MEee2gZ2qq::me2
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
Herwig::MEee2gZ2qq::rebind
virtual void rebind(const TranslationMap &trans)
Rebind pointer to other Interfaced objects.
Herwig::MEee2gZ2qq::Z0
PDPtr Z0() const
Pointer to the particle data object for the Z.
Definition:
MEee2gZ2qq.h:349
Herwig::MEee2gZ2qq::EPS_
static const double EPS_
Cut-off parameter.
Definition:
MEee2gZ2qq.h:469
Herwig::MEee2gZ2qq::pTminQCD_
Energy pTminQCD_
The cut off on pt for QCD, assuming massless quarks.
Definition:
MEee2gZ2qq.h:494
Herwig::MEee2gZ2qq::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::MEee2gZ2qq::pTminQED_
Energy pTminQED_
Variables for the POWHEG style corrections.
Definition:
MEee2gZ2qq.h:490
Herwig::MEee2gZ2qq::gamma_
PDPtr gamma_
Pointer to the particle data object for the photon.
Definition:
MEee2gZ2qq.h:428
Herwig::MEee2gZ2qq::alphaQED_
ShowerAlphaPtr alphaQED_
Pointer to the EM coupling.
Definition:
MEee2gZ2qq.h:479
Herwig::MEee2gZ2qq::getDiagrams
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
Herwig::MEee2gZ2qq::d_rho_
double d_rho_
The rho parameter.
Definition:
MEee2gZ2qq.h:449
Herwig::MEee2gZ2qq::loME
double loME(const vector< cPDPtr > &partons, const vector< Lorentz5Momentum > &momenta, bool first) const
Calculate the matrix element for .
Herwig::MEee2gZ2qq::minflav_
int minflav_
Parameters controlling the leading-order process.
Definition:
MEee2gZ2qq.h:378
Herwig::MEee2gZ2qq::d_kt1_
double d_kt1_
The initial kappa-tilde values for radiation from the quark.
Definition:
MEee2gZ2qq.h:459
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::MEee2gZ2qq
ThePEG::MEee2gZ2qq::scale
virtual Energy2 scale() const
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
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tSubProPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
ThePEG::PPtr
ThePEG::Ptr< Particle >::pointer PPtr
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