herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MEPP2QQHiggs.h
1// -*- C++ -*-
2#ifndef HERWIG_MEPP2QQHiggs_H
3#define HERWIG_MEPP2QQHiggs_H
4//
5// This is the declaration of the MEPP2QQHiggs class.
6//
7
8#include "Herwig/MatrixElement/HwMEBase.h"
9#include "Herwig/MatrixElement/ProductionMatrixElement.h"
10#include "ThePEG/Helicity/Vertex/AbstractFFVVertex.h"
11#include "ThePEG/Helicity/Vertex/AbstractFFSVertex.h"
12#include "ThePEG/Helicity/Vertex/AbstractVVVVertex.h"
13#include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
14#include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
15#include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
16#include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
17#include "Herwig/PDT/GenericMassGenerator.h"
18
19namespace Herwig {
20
21using namespace ThePEG;
22
30class MEPP2QQHiggs: public HwMEBase {
31
32public:
33
41
42public:
43
50 virtual unsigned int orderInAlphaS() const;
51
56 virtual unsigned int orderInAlphaEW() const;
57
65 virtual double me2() const;
66
70 virtual Energy2 scale() const;
71
79 virtual void setKinematics();
80
85 virtual int nDim() const;
86
95 virtual bool generateKinematics(const double * r);
96
101 virtual CrossSection dSigHatDR() const;
102
106 virtual void getDiagrams() const;
107
117
126 colourGeometries(tcDiagPtr diag) const;
127
133
134protected:
135
149 double ggME(vector<VectorWaveFunction> &g1,vector<VectorWaveFunction> &g2,
150 vector<SpinorBarWaveFunction> & q,vector<SpinorWaveFunction> & qbar,
152 unsigned int flow) const;
153
163 double qqME(vector<SpinorWaveFunction> & q1,
164 vector<SpinorBarWaveFunction> & q2,
165 vector<SpinorBarWaveFunction> & q3,
166 vector<SpinorWaveFunction> & q4,
168 unsigned int flow) const;
170
171public:
172
180
186 void persistentInput(PersistentIStream & is, int version);
188
195 static void Init();
196
197protected:
198
205 virtual IBPtr clone() const;
206
211 virtual IBPtr fullclone() const;
213
214protected:
215
223 virtual void doinit();
225
226private:
227
233
234private:
235
243 unsigned int quarkFlavour_;
244
248 unsigned int process_;
250
258 unsigned int shapeOpt_;
259
263 Energy mh_;
264
268 Energy wh_;
269
273 GenericMassGeneratorPtr hmass_;
275
283 AbstractVVVVertexPtr GGGVertex_;
284
288 AbstractFFVVertexPtr QQGVertex_;
289
293 AbstractFFSVertexPtr QQHVertex_;
295
296
305
310
314 vector<PDPtr> quark_;
315
319 vector<PDPtr> antiquark_;
321
329 double alpha_;
331
335 mutable unsigned int flow_;
336
340 mutable unsigned int diagram_;
341
346};
347
348}
349
350#endif /* HERWIG_MEPP2QQHiggs_H */
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35
The MEPP2QQHiggs class implements the matrix elements for and .
Definition: MEPP2QQHiggs.h:30
unsigned int quarkFlavour_
Switches to control the subprocess.
Definition: MEPP2QQHiggs.h:243
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
ProductionMatrixElement me_
Matrix element.
Definition: MEPP2QQHiggs.h:345
double alpha_
Parameters for the phase-space generation.
Definition: MEPP2QQHiggs.h:329
virtual bool generateKinematics(const double *r)
Generate internal degrees of freedom given nDim() uniform random numbers in the interval .
virtual IBPtr clone() const
Make a simple clone of this object.
virtual void constructVertex(tSubProPtr)
Construct the vertex of spin correlations.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
Energy mh_
On-shell mass for the higgs.
Definition: MEPP2QQHiggs.h:263
vector< PDPtr > antiquark_
the antiquarks
Definition: MEPP2QQHiggs.h:319
GenericMassGeneratorPtr hmass_
The mass generator for the Higgs.
Definition: MEPP2QQHiggs.h:273
Energy wh_
On-shell width for the higgs.
Definition: MEPP2QQHiggs.h:268
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
AbstractFFVVertexPtr QQGVertex_
vertex
Definition: MEPP2QQHiggs.h:288
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 setKinematics()
Set the typed and momenta of the incoming and outgoing partons to be used in subsequent calls to me()...
virtual CrossSection dSigHatDR() const
Return the matrix element squared differential in the variables given by the last call to generateKin...
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
unsigned int diagram_
Diagram.
Definition: MEPP2QQHiggs.h:340
unsigned int process_
Processes to include.
Definition: MEPP2QQHiggs.h:248
double qqME(vector< SpinorWaveFunction > &q1, vector< SpinorBarWaveFunction > &q2, vector< SpinorBarWaveFunction > &q3, vector< SpinorWaveFunction > &q4, ScalarWaveFunction &h, unsigned int flow) const
Matrix element for .
static void Init()
The standard Init function used to initialize the interfaces.
double ggME(vector< VectorWaveFunction > &g1, vector< VectorWaveFunction > &g2, vector< SpinorBarWaveFunction > &q, vector< SpinorWaveFunction > &qbar, ScalarWaveFunction &h, unsigned int flow) const
Members to calculate the matrix elements.
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
vector< PDPtr > quark_
the quarks
Definition: MEPP2QQHiggs.h:314
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
unsigned int shapeOpt_
Switches etc for the Higgs mass generation.
Definition: MEPP2QQHiggs.h:258
unsigned int flow_
Colour flow.
Definition: MEPP2QQHiggs.h:335
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
MEPP2QQHiggs & operator=(const MEPP2QQHiggs &)=delete
The assignment operator is private and must never be called.
PDPtr gluon_
ParticleData objects of the particles.
Definition: MEPP2QQHiggs.h:304
AbstractFFSVertexPtr QQHVertex_
vertex
Definition: MEPP2QQHiggs.h:293
MEPP2QQHiggs()
The default constructor.
PDPtr higgs_
The Higgs boson.
Definition: MEPP2QQHiggs.h:309
AbstractVVVVertexPtr GGGVertex_
Vertices needed to compute the diagrams.
Definition: MEPP2QQHiggs.h:283
virtual int nDim() const
The number of internal degrees of freedom used in the matrix element.
The storage of the helicity amplitude expression for the matrix element of a hard process.
vector< DiagPtr > DiagramVector
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr