herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
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 */
Herwig::MEPP2HiggsJet
The MEPP2HiggsJet class implements the matrix element for Higgs+jet production.
Definition:
MEPP2HiggsJet.h:35
Herwig::MEPP2HiggsJet::constructVertex
virtual void constructVertex(tSubProPtr)
Construct the vertex of spin correlations.
Herwig::MEPP2HiggsJet::_wh
Energy _wh
On-shell width for the higgs.
Definition:
MEPP2HiggsJet.h:292
Herwig::MEPP2HiggsJet::qbargME
double qbargME(vector< SpinorBarWaveFunction > &fin, vector< VectorWaveFunction > &gin, ScalarWaveFunction &hout, vector< SpinorWaveFunction > &fout, bool me) const
Matrix element for .
Herwig::MEPP2HiggsJet::orderInAlphaEW
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
Herwig::MEPP2HiggsJet::_massopt
unsigned int _massopt
Option for treatment of the fermion loops.
Definition:
MEPP2HiggsJet.h:282
Herwig::MEPP2HiggsJet::nDim
virtual int nDim() const
The number of internal degreed of freedom used in the matrix element.
Herwig::MEPP2HiggsJet::_process
unsigned int _process
Option for which processes to include.
Definition:
MEPP2HiggsJet.h:262
Herwig::MEPP2HiggsJet::qgME
double qgME(vector< SpinorWaveFunction > &fin, vector< VectorWaveFunction > &gin, ScalarWaveFunction &hout, vector< SpinorBarWaveFunction > &fout, bool me) const
Matrix element for .
Herwig::MEPP2HiggsJet::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::MEPP2HiggsJet::diagrams
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
Herwig::MEPP2HiggsJet::me2
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
Herwig::MEPP2HiggsJet::_hmass
GenericMassGeneratorPtr _hmass
The mass generator for the Higgs.
Definition:
MEPP2HiggsJet.h:297
Herwig::MEPP2HiggsJet::_maxflavour
unsigned int _maxflavour
Maximum PDG code of the quarks allowed.
Definition:
MEPP2HiggsJet.h:257
Herwig::MEPP2HiggsJet::_maxloop
int _maxloop
Maximum flavour of quarks to include in the loops.
Definition:
MEPP2HiggsJet.h:277
Herwig::MEPP2HiggsJet::dSigHatDR
virtual CrossSection dSigHatDR() const
Return the matrix element for the kinematical configuation previously provided by the last call to se...
Herwig::MEPP2HiggsJet::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::MEPP2HiggsJet::_diagwgt
double _diagwgt[3]
Storage of the diagram weights for the subprocess.
Definition:
MEPP2HiggsJet.h:322
Herwig::MEPP2HiggsJet::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::MEPP2HiggsJet::getDiagrams
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
Herwig::MEPP2HiggsJet::_minloop
int _minloop
Minimum flavour of quarks to include in the loops.
Definition:
MEPP2HiggsJet.h:272
Herwig::MEPP2HiggsJet::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::MEPP2HiggsJet::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::MEPP2HiggsJet::qqbarME
double qqbarME(vector< SpinorWaveFunction > &fin, vector< SpinorBarWaveFunction > &ain, ScalarWaveFunction &hout, vector< VectorWaveFunction > &gout, bool me) const
Members to return the matrix elements for the different subprocesses.
Herwig::MEPP2HiggsJet::orderInAlphaS
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
Herwig::MEPP2HiggsJet::_shapeopt
unsigned int _shapeopt
Defines the Higgs resonance shape.
Definition:
MEPP2HiggsJet.h:252
Herwig::MEPP2HiggsJet::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::MEPP2HiggsJet::_di
Complex _di[4]
D functions.
Definition:
MEPP2HiggsJet.h:316
Herwig::MEPP2HiggsJet::generateKinematics
virtual bool generateKinematics(const double *r)
Generate internal degrees of freedom given nDim() uniform random numbers in the interval .
Herwig::MEPP2HiggsJet::_bi
Complex _bi[5]
Storage of the loop functions.
Definition:
MEPP2HiggsJet.h:306
Herwig::MEPP2HiggsJet::operator=
MEPP2HiggsJet & operator=(const MEPP2HiggsJet &)=delete
The assignment operator is private and must never be called.
Herwig::MEPP2HiggsJet::MEPP2HiggsJet
MEPP2HiggsJet()
The default constructor.
Definition:
MEPP2HiggsJet.h:42
Herwig::MEPP2HiggsJet::_me
ProductionMatrixElement _me
Matrix element for spin correlations.
Definition:
MEPP2HiggsJet.h:267
Herwig::MEPP2HiggsJet::ggME
double ggME(vector< VectorWaveFunction > g1, vector< VectorWaveFunction > g2, ScalarWaveFunction &hout, vector< VectorWaveFunction > g4, bool me) const
Matrix element for .
Herwig::MEPP2HiggsJet::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::MEPP2HiggsJet::_mh
Energy _mh
On-shell mass for the higgs.
Definition:
MEPP2HiggsJet.h:287
Herwig::MEPP2HiggsJet::_ci
Complex _ci[8]
C functions.
Definition:
MEPP2HiggsJet.h:311
Herwig::MEPP2HiggsJet::scale
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
Herwig::ProductionMatrixElement
The storage of the helicity amplitude expression for the matrix element of a hard process.
Definition:
ProductionMatrixElement.h:34
ThePEG::Helicity::ScalarWaveFunction
ThePEG::ME2to2Base
ThePEG::MEBase::DiagramVector
vector< DiagPtr > DiagramVector
ThePEG::PersistentIStream
ThePEG::PersistentOStream
ThePEG::Selector
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG::Helicity
ThePEG
ThePEG::Complex
std::complex< double > Complex
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tSubProPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
ThePEG::ZERO
constexpr ZeroUnit ZERO
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6