herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
20 namespace Herwig {
21 
22 using namespace ThePEG;
23 
31 class GeneralQQHiggs: public HwMEBase {
32 
33 public:
34 
42 
50  void setProcessInfo(unsigned int quark, PDPtr higgs,
51  AbstractFFSVertexPtr vertex,
52  unsigned int shapeOpt,
53  unsigned int proc);
54 
55 public:
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 
129  virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
130 
139  colourGeometries(tcDiagPtr diag) const;
140 
144  virtual void constructVertex(tSubProPtr);
146 
147 protected:
148 
162  double ggME(vector<VectorWaveFunction> &g1,vector<VectorWaveFunction> &g2,
163  vector<SpinorBarWaveFunction> & q,vector<SpinorWaveFunction> & qbar,
164  ScalarWaveFunction & h,
165  unsigned int flow) const;
166 
176  double qqME(vector<SpinorWaveFunction> & q1,
177  vector<SpinorBarWaveFunction> & q2,
178  vector<SpinorBarWaveFunction> & q3,
179  vector<SpinorWaveFunction> & q4,
180  ScalarWaveFunction & h,
181  unsigned int flow) const;
183 
184 public:
185 
192  void persistentOutput(PersistentOStream & os) const;
193 
199  void persistentInput(PersistentIStream & is, int version);
201 
208  static void Init();
209 
210 protected:
211 
218  virtual IBPtr clone() const;
219 
224  virtual IBPtr fullclone() const;
226 
227 protected:
228 
236  virtual void doinit();
238 
239 private:
240 
245  GeneralQQHiggs & operator=(const GeneralQQHiggs &) = delete;
246 
247 private:
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 */
ProductionMatrixElement me_
Matrix element.
unsigned int flow_
Colour flow.
The GeneralQQHiggs class implements the matrix elements for and .
double alpha_
Parameters for the phase-space generation.
Energy wh_
On-shell width for the higgs.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
The storage of the helicity amplitude expression for the matrix element of a hard process...
AbstractFFVVertexPtr QQGVertex_
vertex
vector< PDPtr > quark_
the quarks
PDPtr higgs_
The Higgs boson.
PDPtr gluon_
ParticleData objects of the particles.
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
GenericMassGeneratorPtr hmass_
The mass generator for the Higgs.
ThePEG::Ptr< ParticleData >::pointer PDPtr
unsigned int diagram_
Diagram.
unsigned int process_
Processes to include.
AbstractFFSVertexPtr QQHVertex_
vertex
Energy mh_
On-shell mass for the higgs.
vector< DiagPtr > DiagramVector
vector< PDPtr > antiquark_
the antiquarks
-*- C++ -*-
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35
AbstractVVVVertexPtr GGGVertex_
Vertices needed to compute the diagrams.
unsigned int shapeOpt_
Switches etc for the Higgs mass generation.
unsigned int quarkFlavour_
Switches to control the subprocess.