herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
19 namespace Herwig {
20 
21 using namespace ThePEG;
22 
30 class MEPP2QQHiggs: public HwMEBase {
31 
32 public:
33 
39  MEPP2QQHiggs();
41 
42 public:
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 
116  virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
117 
126  colourGeometries(tcDiagPtr diag) const;
127 
131  virtual void constructVertex(tSubProPtr);
133 
134 protected:
135 
149  double ggME(vector<VectorWaveFunction> &g1,vector<VectorWaveFunction> &g2,
150  vector<SpinorBarWaveFunction> & q,vector<SpinorWaveFunction> & qbar,
151  ScalarWaveFunction & h,
152  unsigned int flow) const;
153 
163  double qqME(vector<SpinorWaveFunction> & q1,
164  vector<SpinorBarWaveFunction> & q2,
165  vector<SpinorBarWaveFunction> & q3,
166  vector<SpinorWaveFunction> & q4,
167  ScalarWaveFunction & h,
168  unsigned int flow) const;
170 
171 public:
172 
179  void persistentOutput(PersistentOStream & os) const;
180 
186  void persistentInput(PersistentIStream & is, int version);
188 
195  static void Init();
196 
197 protected:
198 
205  virtual IBPtr clone() const;
206 
211  virtual IBPtr fullclone() const;
213 
214 protected:
215 
223  virtual void doinit();
225 
226 private:
227 
232  MEPP2QQHiggs & operator=(const MEPP2QQHiggs &) = delete;
233 
234 private:
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 */
AbstractFFVVertexPtr QQGVertex_
vertex
Definition: MEPP2QQHiggs.h:288
vector< PDPtr > quark_
the quarks
Definition: MEPP2QQHiggs.h:314
AbstractFFSVertexPtr QQHVertex_
vertex
Definition: MEPP2QQHiggs.h:293
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
PDPtr higgs_
The Higgs boson.
Definition: MEPP2QQHiggs.h:309
unsigned int process_
Processes to include.
Definition: MEPP2QQHiggs.h:248
The storage of the helicity amplitude expression for the matrix element of a hard process...
unsigned int shapeOpt_
Switches etc for the Higgs mass generation.
Definition: MEPP2QQHiggs.h:258
AbstractVVVVertexPtr GGGVertex_
Vertices needed to compute the diagrams.
Definition: MEPP2QQHiggs.h:283
unsigned int flow_
Colour flow.
Definition: MEPP2QQHiggs.h:335
ProductionMatrixElement me_
Matrix element.
Definition: MEPP2QQHiggs.h:345
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr
PDPtr gluon_
ParticleData objects of the particles.
Definition: MEPP2QQHiggs.h:304
unsigned int quarkFlavour_
Switches to control the subprocess.
Definition: MEPP2QQHiggs.h:243
vector< DiagPtr > DiagramVector
-*- C++ -*-
Energy wh_
On-shell width for the higgs.
Definition: MEPP2QQHiggs.h:268
unsigned int diagram_
Diagram.
Definition: MEPP2QQHiggs.h:340
double alpha_
Parameters for the phase-space generation.
Definition: MEPP2QQHiggs.h:329
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35
GenericMassGeneratorPtr hmass_
The mass generator for the Higgs.
Definition: MEPP2QQHiggs.h:273
vector< PDPtr > antiquark_
the antiquarks
Definition: MEPP2QQHiggs.h:319
The MEPP2QQHiggs class implements the matrix elements for and .
Definition: MEPP2QQHiggs.h:30
Energy mh_
On-shell mass for the higgs.
Definition: MEPP2QQHiggs.h:263