herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
MatrixElement
Hadron
MEPP2HiggsJet.h
1
// -*- C++ -*-
2
//
3
// MEPP2HiggsJet.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_MEPP2HiggsJet_H
10
#define HERWIG_MEPP2HiggsJet_H
11
//
12
// This is the declaration of the MEPP2HiggsJet class.
13
//
14
15
#include "ThePEG/MatrixElement/ME2to2Base.h"
16
#include "Herwig/Utilities/Maths.h"
17
#include "Herwig/MatrixElement/ProductionMatrixElement.h"
18
#include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
19
#include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
20
#include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
21
#include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
22
#include "Herwig/PDT/GenericMassGenerator.h"
23
#include "Herwig/MatrixElement/ProductionMatrixElement.h"
24
25
namespace
Herwig
{
26
using namespace
ThePEG
;
27
using namespace
ThePEG::Helicity
;
28
35
class
MEPP2HiggsJet
:
public
ME2to2Base
{
36
37
public
:
38
42
MEPP2HiggsJet
() :
43
_shapeopt(2),_maxflavour(5), _process(0),
44
_minloop(6),_maxloop(6),_massopt(0) , _mh(
ZERO
),_wh(
ZERO
)
45
{}
46
54
virtual
CrossSection dSigHatDR()
const
;
55
60
virtual
int
nDim()
const
;
61
66
virtual
unsigned
int
orderInAlphaS()
const
;
67
72
virtual
unsigned
int
orderInAlphaEW()
const
;
73
81
virtual
double
me2()
const
;
82
86
virtual
Energy2 scale()
const
;
87
91
virtual
void
getDiagrams()
const
;
92
101
virtual
Selector<DiagramIndex>
diagrams(
const
DiagramVector
& dv)
const
;
102
110
virtual
Selector<const ColourLines *>
111
colourGeometries(tcDiagPtr diag)
const
;
112
121
virtual
bool
generateKinematics(
const
double
* r);
122
126
virtual
void
constructVertex(
tSubProPtr
);
128
129
public
:
130
137
void
persistentOutput(
PersistentOStream
& os)
const
;
138
144
void
persistentInput(
PersistentIStream
& is,
int
version);
146
153
static
void
Init();
154
155
protected
:
156
163
virtual
IBPtr
clone()
const
;
164
169
virtual
IBPtr
fullclone()
const
;
171
172
protected
:
173
181
virtual
void
doinit();
183
184
private
:
185
198
double
qqbarME(vector<SpinorWaveFunction> & fin, vector<SpinorBarWaveFunction> & ain,
199
ScalarWaveFunction
& hout, vector<VectorWaveFunction> & gout,
200
bool
me)
const
;
201
210
double
qgME(vector<SpinorWaveFunction> & fin,vector<VectorWaveFunction> & gin,
211
ScalarWaveFunction
& hout, vector<SpinorBarWaveFunction> & fout,
212
bool
me)
const
;
213
222
double
qbargME(vector<SpinorBarWaveFunction> & fin,vector<VectorWaveFunction> & gin,
223
ScalarWaveFunction
& hout, vector<SpinorWaveFunction> & fout,
224
bool
me)
const
;
225
234
double
ggME(vector<VectorWaveFunction> g1, vector<VectorWaveFunction> g2,
235
ScalarWaveFunction
& hout, vector<VectorWaveFunction> g4,
236
bool
me)
const
;
238
239
private
:
240
245
MEPP2HiggsJet
& operator=(
const
MEPP2HiggsJet
&) =
delete
;
246
247
private
:
248
252
unsigned
int
_shapeopt
;
253
257
unsigned
int
_maxflavour
;
258
262
unsigned
int
_process
;
263
267
ProductionMatrixElement
_me
;
268
272
int
_minloop
;
273
277
int
_maxloop
;
278
282
unsigned
int
_massopt
;
283
287
Energy
_mh
;
288
292
Energy
_wh
;
293
297
GenericMassGeneratorPtr
_hmass
;
298
306
mutable
Complex
_bi[5];
307
311
mutable
Complex
_ci[8];
312
316
mutable
Complex
_di[4];
318
322
mutable
double
_diagwgt[3];
323
};
324
325
}
326
327
#endif
/* HERWIG_MEPP2HiggsJet_H */
ThePEG::PersistentIStream
Herwig::MEPP2HiggsJet::_maxloop
int _maxloop
Maximum flavour of quarks to include in the loops.
Definition:
MEPP2HiggsJet.h:277
Herwig::MEPP2HiggsJet::_minloop
int _minloop
Minimum flavour of quarks to include in the loops.
Definition:
MEPP2HiggsJet.h:272
ThePEG::Complex
std::complex< double > Complex
ThePEG::Helicity
Herwig::MEPP2HiggsJet::_me
ProductionMatrixElement _me
Matrix element for spin correlations.
Definition:
MEPP2HiggsJet.h:267
ThePEG::PersistentOStream
Herwig::MEPP2HiggsJet::_mh
Energy _mh
On-shell mass for the higgs.
Definition:
MEPP2HiggsJet.h:287
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Herwig::MEPP2HiggsJet::_shapeopt
unsigned int _shapeopt
Defines the Higgs resonance shape.
Definition:
MEPP2HiggsJet.h:252
Herwig::MEPP2HiggsJet::_wh
Energy _wh
On-shell width for the higgs.
Definition:
MEPP2HiggsJet.h:292
ThePEG
Herwig::MEPP2HiggsJet::_process
unsigned int _process
Option for which processes to include.
Definition:
MEPP2HiggsJet.h:262
Herwig::MEPP2HiggsJet::_maxflavour
unsigned int _maxflavour
Maximum PDG code of the quarks allowed.
Definition:
MEPP2HiggsJet.h:257
Herwig::MEPP2HiggsJet::_hmass
GenericMassGeneratorPtr _hmass
The mass generator for the Higgs.
Definition:
MEPP2HiggsJet.h:297
ThePEG::Helicity::ScalarWaveFunction
Herwig::ProductionMatrixElement
The storage of the helicity amplitude expression for the matrix element of a hard process...
Definition:
ProductionMatrixElement.h:34
Herwig::MEPP2HiggsJet::MEPP2HiggsJet
MEPP2HiggsJet()
The default constructor.
Definition:
MEPP2HiggsJet.h:42
ThePEG::tSubProPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
ThePEG::Selector
ThePEG::MEBase::DiagramVector
vector< DiagPtr > DiagramVector
Herwig::MEPP2HiggsJet
The MEPP2HiggsJet class implements the matrix element for Higgs+jet production.
Definition:
MEPP2HiggsJet.h:35
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG::ME2to2Base
ZERO
constexpr ZeroUnit ZERO
Herwig::MEPP2HiggsJet::_massopt
unsigned int _massopt
Option for treatment of the fermion loops.
Definition:
MEPP2HiggsJet.h:282
Generated on Sat Apr 11 2020 14:50:30 for Herwig by
1.8.13