herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
MatrixElement
Hadron
MEPP2Higgs.h
1
// -*- C++ -*-
2
//
3
// MEPP2Higgs.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_MEPP2Higgs_H
10
#define HERWIG_MEPP2Higgs_H
11
//
12
// This is the declaration of the MEPP2Higgs class.
13
//
14
15
#include "Herwig/MatrixElement/HwMEBase.h"
16
#include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
17
#include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
18
#include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
19
#include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
20
#include "ThePEG/Helicity/Vertex/AbstractFFSVertex.h"
21
#include "ThePEG/Helicity/Vertex/AbstractVVSVertex.h"
22
#include "Herwig/PDT/GenericMassGenerator.h"
23
#include "Herwig/MatrixElement/ProductionMatrixElement.h"
24
#include "Herwig/Shower/ShowerAlpha.h"
25
26
namespace
Herwig
{
27
using namespace
ThePEG
;
28
using namespace
ThePEG::Helicity
;
29
38
class
MEPP2Higgs
:
public
HwMEBase
{
39
40
public
:
41
45
MEPP2Higgs
();
46
52
virtual
CrossSection dSigHatDR()
const
;
53
59
virtual
void
setKinematics
() {
60
HwMEBase::setKinematics
();
61
mh2_ = sHat();
62
}
63
64
public
:
65
71
virtual
POWHEGType
hasPOWHEGCorrection
() {
return
ISR;}
72
76
virtual
bool
hasMECorrection
() {
return
true
;}
77
81
virtual
void
initializeMECorrection(RealEmissionProcessPtr,
double
&,
82
double
& );
83
87
virtual
RealEmissionProcessPtr applyHardMatrixElementCorrection(RealEmissionProcessPtr);
88
101
virtual
bool
softMatrixElementVeto(
PPtr
parent,
102
PPtr
progenitor,
103
const
bool
& fs,
104
const
Energy & highestpT,
105
const
vector<tcPDPtr> & ids,
106
const
double
& z,
107
const
Energy & scale,
108
const
Energy & pT);
109
113
virtual
RealEmissionProcessPtr generateHardest(RealEmissionProcessPtr,
114
ShowerInteraction
);
116
117
public
:
118
125
virtual
unsigned
int
orderInAlphaS()
const
;
126
131
virtual
unsigned
int
orderInAlphaEW()
const
;
132
140
virtual
double
me2()
const
;
141
150
virtual
bool
generateKinematics(
const
double
* r);
151
155
virtual
Energy2 scale()
const
;
156
161
virtual
int
nDim()
const
;
162
166
virtual
void
getDiagrams()
const
;
167
176
virtual
Selector<DiagramIndex>
diagrams(
const
DiagramVector
& dv)
const
;
177
185
virtual
Selector<const ColourLines *>
colourGeometries(tcDiagPtr diag)
const
;
186
190
virtual
void
constructVertex(
tSubProPtr
);
192
193
public
:
194
201
void
persistentOutput(
PersistentOStream
& os)
const
;
202
208
void
persistentInput(
PersistentIStream
& is,
int
version);
210
217
static
void
Init();
218
219
protected
:
220
227
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
); }
228
233
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
); }
235
236
protected
:
237
245
virtual
void
doinit();
246
251
virtual
void
dofinish();
253
254
protected
:
255
263
Energy4 loME()
const
;
264
268
Energy2 ggME(Energy2 s, Energy2 t, Energy2 u);
269
273
Energy2 qgME(Energy2 s, Energy2 t, Energy2 u);
274
278
Energy2 qbargME(Energy2 s, Energy2 t, Energy2 u);
280
290
Complex
B(Energy2 s,Energy2 mf2)
const
;
291
297
complex<InvEnergy2> C(Energy2 s,Energy2 mf2)
const
;
298
306
complex<InvEnergy4> D(Energy2 s,Energy2 t, Energy2 u,Energy2 mf2)
const
;
307
315
Complex
dIntegral(Energy2 a, Energy2 b,
double
y0)
const
;
316
330
complex<Energy> me1(Energy2 s,Energy2 t,Energy2 u, Energy2 mf2,
331
unsigned
int
i,
unsigned
int
j,
unsigned
int
k,
332
unsigned
int
i1,
unsigned
int
j1,
unsigned
int
k1)
const
;
333
341
complex<Energy> me2(Energy2 s,Energy2 t,Energy2 u, Energy2 mf2)
const
;
342
346
Complex
F(
double
x)
const
;
348
353
tPDPtr
quarkFlavour(
tcPDFPtr
pdf, Energy2 scale,
double
x,
tcBeamPtr
beam,
354
double
& pdfweight,
bool
anti);
355
370
bool
applyHard(
ParticleVector
gluons,
371
vector<tcBeamPtr> beams,
372
PPtr
higgs,
unsigned
int
& iemit,
373
unsigned
int
& itype,vector<Lorentz5Momentum> & pnew,
374
pair<double,double> & xnew,
375
tPDPtr
& out);
376
383
bool
getEvent(vector<Lorentz5Momentum> & pnew,
int
& emissiontype);
384
394
double
getResult(
int
emis_type, Energy pt,
double
yj,
tcPDPtr
& outParton);
395
396
private
:
397
402
MEPP2Higgs
& operator=(
const
MEPP2Higgs
&) =
delete
;
404
416
double
ggME(vector<VectorWaveFunction> g1,
417
vector<VectorWaveFunction> g2,
418
ScalarWaveFunction
&,
419
bool
calc)
const
;
420
428
double
qqME(vector<SpinorWaveFunction> & fin,
429
vector<SpinorBarWaveFunction> & ain,
430
ScalarWaveFunction
&,
431
bool
calc)
const
;
433
434
private
:
435
439
unsigned
int
scaleopt_
;
440
444
Energy
mu_F_
;
445
449
unsigned
int
shapeOption_
;
450
454
unsigned
int
processOption_
;
455
459
int
minFlavour_
;
460
464
int
maxFlavour_
;
465
469
ProductionMatrixElement
me_
;
470
474
AbstractVVSVertexPtr
HGGVertex_
;
475
479
AbstractFFSVertexPtr
HFFVertex_
;
480
484
GenericMassGeneratorPtr
hmass_
;
485
489
Energy
mh_
;
490
494
Energy
wh_
;
495
508
unsigned
int
minLoop_
;
509
513
unsigned
int
maxLoop_
;
514
518
unsigned
int
massOption_
;
519
523
unsigned
int
mu_R_opt_
;
524
528
unsigned
int
mu_F_opt_
;
530
532
536
static
const
complex<Energy2>
epsi_
;
537
545
mutable
Complex
bi_[5];
546
550
mutable
complex<InvEnergy2> ci_[8];
551
555
mutable
complex<InvEnergy4> di_[4];
557
561
ShowerAlphaPtr
alpha_
;
562
566
Energy2
mh2_
;
567
571
double
channelwgtA_
;
572
576
double
channelwgtB_
;
577
581
vector<double>
channelWeights_
;
582
587
double
ggPow_
;
588
593
double
qgPow_
;
594
598
double
enhance_
;
599
603
unsigned
int
nover_
;
604
608
unsigned
int
ntry_
;
609
613
unsigned
int
ngen_
;
614
618
double
maxwgt_
;
620
629
double
power_
;
630
634
double
pregg_
;
635
639
double
preqg_
;
640
644
double
pregqbar_
;
645
649
vector<double>
prefactor_
;
651
655
Energy
minpT_
;
656
664
vector<tcBeamPtr>
beams_
;
665
669
vector<tcPDPtr>
partons_
;
671
679
double
yh_
;
680
684
Energy
mass_
;
685
689
double
yj_
;
690
694
Energy
pt_
;
695
699
tcPDPtr
out_
;
701
705
bool
spinCorrelations_
;
706
707
};
708
709
}
710
711
#endif
/* HERWIG_MEPP2Higgs_H */
Herwig::tcBeamPtr
Ptr< BeamParticleData >::transient_const_pointer tcBeamPtr
A typedef for the BeamParticleData.
Definition:
HwMEBase.h:20
Herwig::MEPP2Higgs::pt_
Energy pt_
The transverse momentum of the jet.
Definition:
MEPP2Higgs.h:694
ThePEG::PPtr
ThePEG::Ptr< Particle >::pointer PPtr
Herwig::MEPP2Higgs::pregqbar_
double pregqbar_
The prefactor, for the channel.
Definition:
MEPP2Higgs.h:644
Herwig::MEPP2Higgs::scaleopt_
unsigned int scaleopt_
Selects a dynamic (sHat) or fixed factorization scale.
Definition:
MEPP2Higgs.h:439
Herwig::MEPP2Higgs::spinCorrelations_
bool spinCorrelations_
Whether of not to construct the vertex for spin correlations.
Definition:
MEPP2Higgs.h:705
ThePEG::PersistentIStream
Herwig::MEPP2Higgs::mh_
Energy mh_
On-shell mass for the higgs.
Definition:
MEPP2Higgs.h:489
Herwig::MEPP2Higgs::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
MEPP2Higgs.h:227
Herwig::MEPP2Higgs::maxwgt_
double maxwgt_
Maximum weight.
Definition:
MEPP2Higgs.h:618
Herwig::MEPP2Higgs::yj_
double yj_
the rapidity of the jet
Definition:
MEPP2Higgs.h:689
Herwig::MEPP2Higgs::minFlavour_
int minFlavour_
Minimum flavour of incoming quarks.
Definition:
MEPP2Higgs.h:459
ThePEG::Complex
std::complex< double > Complex
ThePEG::Helicity
Herwig::ShowerInteraction
ShowerInteraction
Handy header file to be included in all Shower classes.
Definition:
ShowerInteraction.h:23
Herwig::MEPP2Higgs::massOption_
unsigned int massOption_
Option for treatment of the fermion loops.
Definition:
MEPP2Higgs.h:518
Herwig::MEPP2Higgs::processOption_
unsigned int processOption_
The processes to be included (GG->H and/or qq->H)
Definition:
MEPP2Higgs.h:454
Herwig::MEPP2Higgs::alpha_
ShowerAlphaPtr alpha_
Pointer to the object calculating the strong coupling.
Definition:
MEPP2Higgs.h:561
Herwig::MEPP2Higgs::HGGVertex_
AbstractVVSVertexPtr HGGVertex_
Pointer to the H-> 2 gluon vertex (used in gg->H)
Definition:
MEPP2Higgs.h:474
Herwig::MEPP2Higgs::channelwgtA_
double channelwgtA_
Relative weight of the to the channel.
Definition:
MEPP2Higgs.h:571
ThePEG::tPDPtr
ThePEG::Ptr< ParticleData >::transient_pointer tPDPtr
Herwig::MEPP2Higgs::hasMECorrection
virtual bool hasMECorrection()
Has an old fashioned ME correction.
Definition:
MEPP2Higgs.h:76
ThePEG::PersistentOStream
Herwig::MEPP2Higgs::channelwgtB_
double channelwgtB_
Relative weight for the to the channel.
Definition:
MEPP2Higgs.h:576
ThePEG::tcPDFPtr
ThePEG::Ptr< PDFBase >::transient_const_pointer tcPDFPtr
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Herwig::MEPP2Higgs::hasPOWHEGCorrection
virtual POWHEGType hasPOWHEGCorrection()
Has a POWHEG style correction.
Definition:
MEPP2Higgs.h:71
ThePEG
Herwig::MEPP2Higgs::out_
tcPDPtr out_
The outgoing parton.
Definition:
MEPP2Higgs.h:699
Herwig::MEPP2Higgs::preqg_
double preqg_
The prefactor, for the channel.
Definition:
MEPP2Higgs.h:639
Herwig::MEPP2Higgs::ngen_
unsigned int ngen_
Number which suceed.
Definition:
MEPP2Higgs.h:613
Herwig::MEPP2Higgs::prefactor_
vector< double > prefactor_
The prefactors as a vector for easy use.
Definition:
MEPP2Higgs.h:649
Herwig::MEPP2Higgs::minpT_
Energy minpT_
The transverse momentum of the jet.
Definition:
MEPP2Higgs.h:655
Herwig::MEPP2Higgs::mu_R_opt_
unsigned int mu_R_opt_
Option for dynamic scale choice in alpha_S (0=mT,>0=pT)
Definition:
MEPP2Higgs.h:523
Herwig::MEPP2Higgs::power_
double power_
Constants for the sampling.
Definition:
MEPP2Higgs.h:629
Herwig::MEPP2Higgs::me_
ProductionMatrixElement me_
Matrix element for spin correlations.
Definition:
MEPP2Higgs.h:469
Herwig::MEPP2Higgs::hmass_
GenericMassGeneratorPtr hmass_
The mass generator for the Higgs.
Definition:
MEPP2Higgs.h:484
Herwig::MEPP2Higgs::mh2_
Energy2 mh2_
Mass squared of Higgs.
Definition:
MEPP2Higgs.h:566
ThePEG::Helicity::ScalarWaveFunction
Herwig::MEPP2Higgs::nover_
unsigned int nover_
Number of weights greater than 1.
Definition:
MEPP2Higgs.h:603
Herwig::MEPP2Higgs::minLoop_
unsigned int minLoop_
Stuff for the ME correction.
Definition:
MEPP2Higgs.h:508
Herwig::MEPP2Higgs::shapeOption_
unsigned int shapeOption_
Defines the Higgs resonance shape.
Definition:
MEPP2Higgs.h:449
Herwig::ProductionMatrixElement
The storage of the helicity amplitude expression for the matrix element of a hard process...
Definition:
ProductionMatrixElement.h:34
Herwig::MEPP2Higgs::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
MEPP2Higgs.h:233
Herwig::MEPP2Higgs::channelWeights_
vector< double > channelWeights_
Weights for the channels as a vector.
Definition:
MEPP2Higgs.h:581
Herwig::MEPP2Higgs::maxLoop_
unsigned int maxLoop_
Maximum flavour of quarks to include in the loops.
Definition:
MEPP2Higgs.h:513
Herwig::MEPP2Higgs::mu_F_
Energy mu_F_
The value associated to the fixed factorization scale option.
Definition:
MEPP2Higgs.h:444
Herwig::MEPP2Higgs::mass_
Energy mass_
The mass of the Higgs boson.
Definition:
MEPP2Higgs.h:684
Herwig::MEPP2Higgs::qgPow_
double qgPow_
Power for the importance sampling of the and components.
Definition:
MEPP2Higgs.h:593
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::tSubProPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
Herwig::MEPP2Higgs::ntry_
unsigned int ntry_
Number of attempts.
Definition:
MEPP2Higgs.h:608
Herwig::MEPP2Higgs::partons_
vector< tcPDPtr > partons_
Pointers to the ParticleDataObjects for the partons.
Definition:
MEPP2Higgs.h:669
Herwig::HwMEBase::POWHEGType
POWHEGType
Virtual members to be overridden by inheriting classes which implement hard corrections.
Definition:
HwMEBase.h:87
Herwig::MEPP2Higgs::maxFlavour_
int maxFlavour_
Maximum flavour of incoming quarks.
Definition:
MEPP2Higgs.h:464
Herwig::MEPP2Higgs::wh_
Energy wh_
On-shell width for the higgs.
Definition:
MEPP2Higgs.h:494
ThePEG::Selector
Herwig::MEPP2Higgs
The MEPP2Higgs class implements the matrix element for the process pp->Higgs with different Higgs sha...
Definition:
MEPP2Higgs.h:38
Herwig::HwMEBase::setKinematics
virtual void setKinematics()
Set the typed and momenta of the incoming and outgoing partons to be used in subsequent calls to me()...
Herwig::MEPP2Higgs::epsi_
static const complex< Energy2 > epsi_
Small complex number to regularize some integrals.
Definition:
MEPP2Higgs.h:536
Herwig::MEPP2Higgs::enhance_
double enhance_
The enhancement factor for initial-state radiation.
Definition:
MEPP2Higgs.h:598
ThePEG::MEBase::DiagramVector
vector< DiagPtr > DiagramVector
Herwig::MEPP2Higgs::beams_
vector< tcBeamPtr > beams_
Properties of the incoming particles.
Definition:
MEPP2Higgs.h:664
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::MEPP2Higgs::pregg_
double pregg_
The prefactor, for the channel.
Definition:
MEPP2Higgs.h:634
Herwig::MEPP2Higgs::mu_F_opt_
unsigned int mu_F_opt_
Option for dynamic scale choice in PDFs (0=mT,>0=pT)
Definition:
MEPP2Higgs.h:528
Herwig::HwMEBase
The HwMEBase class serves a number of purposes.
Definition:
HwMEBase.h:35
Herwig::MEPP2Higgs::yh_
double yh_
Properties of the boson and jets.
Definition:
MEPP2Higgs.h:679
ThePEG::ParticleVector
vector< PPtr > ParticleVector
Herwig::MEPP2Higgs::setKinematics
virtual void setKinematics()
Set the typed and momenta of the incoming and outgoing partons to be used in subsequent calls to me()...
Definition:
MEPP2Higgs.h:59
Herwig::MEPP2Higgs::HFFVertex_
AbstractFFSVertexPtr HFFVertex_
Pointer to the fermion-fermion Higgs vertex (used in qq->H)
Definition:
MEPP2Higgs.h:479
Herwig::MEPP2Higgs::ggPow_
double ggPow_
Power for the importance sampling of the component.
Definition:
MEPP2Higgs.h:587
Generated on Sat Apr 11 2020 14:50:30 for Herwig by
1.8.13