herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
GeneralQQHiggs.h
1// -*- C++ -*-
2#ifndef HERWIG_GeneralQQHiggs_H
3#define HERWIG_GeneralQQHiggs_H
4//
5// This is the declaration of the GeneralQQHiggs 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#include "GeneralQQHiggs.fh"
19
20namespace Herwig {
21
22using namespace ThePEG;
23
31class GeneralQQHiggs: public HwMEBase {
32
33public:
34
42
50 void setProcessInfo(unsigned int quark, PDPtr higgs,
51 AbstractFFSVertexPtr vertex,
52 unsigned int shapeOpt,
53 unsigned int proc);
54
55public:
56
63 virtual unsigned int orderInAlphaS() const;
64
69 virtual unsigned int orderInAlphaEW() const;
70
78 virtual double me2() const;
79
83 virtual Energy2 scale() const;
84
92 virtual void setKinematics();
93
98 virtual int nDim() const;
99
108 virtual bool generateKinematics(const double * r);
109
114 virtual CrossSection dSigHatDR() const;
115
119 virtual void getDiagrams() const;
120
130
139 colourGeometries(tcDiagPtr diag) const;
140
146
147protected:
148
162 double ggME(vector<VectorWaveFunction> &g1,vector<VectorWaveFunction> &g2,
163 vector<SpinorBarWaveFunction> & q,vector<SpinorWaveFunction> & qbar,
165 unsigned int flow) const;
166
176 double qqME(vector<SpinorWaveFunction> & q1,
177 vector<SpinorBarWaveFunction> & q2,
178 vector<SpinorBarWaveFunction> & q3,
179 vector<SpinorWaveFunction> & q4,
181 unsigned int flow) const;
183
184public:
185
193
199 void persistentInput(PersistentIStream & is, int version);
201
208 static void Init();
209
210protected:
211
218 virtual IBPtr clone() const;
219
224 virtual IBPtr fullclone() const;
226
227protected:
228
236 virtual void doinit();
238
239private:
240
246
247private:
248
256 unsigned int quarkFlavour_;
257
261 unsigned int process_;
263
271 unsigned int shapeOpt_;
272
276 Energy mh_;
277
281 Energy wh_;
282
286 GenericMassGeneratorPtr hmass_;
288
296 AbstractVVVVertexPtr GGGVertex_;
297
301 AbstractFFVVertexPtr QQGVertex_;
302
306 AbstractFFSVertexPtr QQHVertex_;
308
309
318
323
327 vector<PDPtr> quark_;
328
332 vector<PDPtr> antiquark_;
334
342 double alpha_;
344
348 mutable unsigned int flow_;
349
353 mutable unsigned int diagram_;
354
359};
360
361}
362
363#endif /* HERWIG_GeneralQQHiggs_H */
The GeneralQQHiggs class implements the matrix elements for and .
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
unsigned int quarkFlavour_
Switches to control the subprocess.
GenericMassGeneratorPtr hmass_
The mass generator for the Higgs.
void setProcessInfo(unsigned int quark, PDPtr higgs, AbstractFFSVertexPtr vertex, unsigned int shapeOpt, unsigned int proc)
Initialisation if used in a general model.
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
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.
unsigned int diagram_
Diagram.
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
PDPtr higgs_
The Higgs boson.
unsigned int shapeOpt_
Switches etc for the Higgs mass generation.
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
GeneralQQHiggs()
The default constructor.
unsigned int process_
Processes to include.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
GeneralQQHiggs & operator=(const GeneralQQHiggs &)=delete
The assignment operator is private and must never be called.
virtual void constructVertex(tSubProPtr)
Construct the vertex of spin correlations.
static void Init()
The standard Init function used to initialize the interfaces.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
virtual bool generateKinematics(const double *r)
Generate internal degrees of freedom given nDim() uniform random numbers in the interval .
virtual CrossSection dSigHatDR() const
Return the matrix element squared differential in the variables given by the last call to generateKin...
double alpha_
Parameters for the phase-space generation.
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
virtual IBPtr clone() const
Make a simple clone of this object.
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
double qqME(vector< SpinorWaveFunction > &q1, vector< SpinorBarWaveFunction > &q2, vector< SpinorBarWaveFunction > &q3, vector< SpinorWaveFunction > &q4, ScalarWaveFunction &h, unsigned int flow) const
Matrix element for .
AbstractVVVVertexPtr GGGVertex_
Vertices needed to compute the diagrams.
AbstractFFVVertexPtr QQGVertex_
vertex
vector< PDPtr > antiquark_
the antiquarks
virtual void setKinematics()
Set the typed and momenta of the incoming and outgoing partons to be used in subsequent calls to me()...
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Energy mh_
On-shell mass for the higgs.
unsigned int flow_
Colour flow.
ProductionMatrixElement me_
Matrix element.
virtual int nDim() const
The number of internal degrees of freedom used in the matrix element.
AbstractFFSVertexPtr QQHVertex_
vertex
Energy wh_
On-shell width for the higgs.
PDPtr gluon_
ParticleData objects of the particles.
vector< PDPtr > quark_
the quarks
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35
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