herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
25namespace Herwig {
26using namespace ThePEG;
27using namespace ThePEG::Helicity;
28
36
37public:
38
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
102
111 colourGeometries(tcDiagPtr diag) const;
112
121 virtual bool generateKinematics(const double * r);
122
128
129public:
130
138
144 void persistentInput(PersistentIStream & is, int version);
146
153 static void Init();
154
155protected:
156
163 virtual IBPtr clone() const;
164
169 virtual IBPtr fullclone() const;
171
172protected:
173
181 virtual void doinit();
183
184private:
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
239private:
240
246
247private:
248
252 unsigned int _shapeopt;
253
257 unsigned int _maxflavour;
258
262 unsigned int _process;
263
268
273
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 */
The MEPP2HiggsJet class implements the matrix element for Higgs+jet production.
Definition: MEPP2HiggsJet.h:35
virtual void constructVertex(tSubProPtr)
Construct the vertex of spin correlations.
Energy _wh
On-shell width for the higgs.
double qbargME(vector< SpinorBarWaveFunction > &fin, vector< VectorWaveFunction > &gin, ScalarWaveFunction &hout, vector< SpinorWaveFunction > &fout, bool me) const
Matrix element for .
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
unsigned int _massopt
Option for treatment of the fermion loops.
virtual int nDim() const
The number of internal degreed of freedom used in the matrix element.
unsigned int _process
Option for which processes to include.
double qgME(vector< SpinorWaveFunction > &fin, vector< VectorWaveFunction > &gin, ScalarWaveFunction &hout, vector< SpinorBarWaveFunction > &fout, bool me) const
Matrix element for .
virtual IBPtr clone() const
Make a simple clone of this object.
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
GenericMassGeneratorPtr _hmass
The mass generator for the Higgs.
unsigned int _maxflavour
Maximum PDG code of the quarks allowed.
int _maxloop
Maximum flavour of quarks to include in the loops.
virtual CrossSection dSigHatDR() const
Return the matrix element for the kinematical configuation previously provided by the last call to se...
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
double _diagwgt[3]
Storage of the diagram weights for the subprocess.
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
int _minloop
Minimum flavour of quarks to include in the loops.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
static void Init()
The standard Init function used to initialize the interfaces.
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.
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
unsigned int _shapeopt
Defines the Higgs resonance shape.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Complex _di[4]
D functions.
virtual bool generateKinematics(const double *r)
Generate internal degrees of freedom given nDim() uniform random numbers in the interval .
Complex _bi[5]
Storage of the loop functions.
MEPP2HiggsJet & operator=(const MEPP2HiggsJet &)=delete
The assignment operator is private and must never be called.
MEPP2HiggsJet()
The default constructor.
Definition: MEPP2HiggsJet.h:42
ProductionMatrixElement _me
Matrix element for spin correlations.
double ggME(vector< VectorWaveFunction > g1, vector< VectorWaveFunction > g2, ScalarWaveFunction &hout, vector< VectorWaveFunction > g4, bool me) const
Matrix element for .
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Energy _mh
On-shell mass for the higgs.
Complex _ci[8]
C functions.
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
The storage of the helicity amplitude expression for the matrix element of a hard process.
vector< DiagPtr > DiagramVector
-*- C++ -*-
std::complex< double > Complex
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
constexpr ZeroUnit ZERO