herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MEee2Higgs2SM.h
1 // -*- C++ -*-
2 //
3 // MEee2Higgs2SM.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_MEee2Higgs2SM_H
10 #define HERWIG_MEee2Higgs2SM_H
11 //
12 // This is the declaration of the MEee2Higgs2SM class.
13 //
14 
15 #include "ThePEG/MatrixElement/ME2to2Base.h"
16 #include "Herwig/Models/StandardModel/StandardModel.h"
17 #include "Herwig/MatrixElement/ProductionMatrixElement.h"
18 #include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
19 #include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
20 
21 namespace Herwig {
22 
23 using namespace ThePEG;
24 
33 class MEee2Higgs2SM: public ME2to2Base {
34 
35 public:
36 
40  inline MEee2Higgs2SM() : allowed_(0) {}
41 
48  virtual unsigned int orderInAlphaS() const;
49 
54  virtual unsigned int orderInAlphaEW() const;
55 
63  virtual double me2() const;
64 
68  virtual Energy2 scale() const;
69 
73  virtual void getDiagrams() const;
74 
83  virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
84 
93  colourGeometries(tcDiagPtr diag) const;
94 
98  virtual void constructVertex(tSubProPtr sub);
100 
101 public:
102 
109  void persistentOutput(PersistentOStream & os) const;
110 
116  void persistentInput(PersistentIStream & is, int version);
118 
125  static void Init();
126 
127 protected:
128 
135  inline virtual IBPtr clone() const {return new_ptr(*this);}
136 
141  inline virtual IBPtr fullclone() const {return new_ptr(*this);}
143 
144 protected:
145 
153  virtual void doinit();
154 
164  virtual void rebind(const TranslationMap & trans)
165  ;
166 
172  virtual IVector getReferences();
174 
175 private:
176 
185  ProductionMatrixElement HelicityME(vector<SpinorWaveFunction> fin,
186  vector<SpinorBarWaveFunction> ain,
187  vector<SpinorBarWaveFunction> fout,
188  vector<SpinorWaveFunction> aout,double& me) const;
197  ProductionMatrixElement ggME(vector<SpinorWaveFunction> fin,
198  vector<SpinorBarWaveFunction> ain,
199  vector<VectorWaveFunction> g1,
200  vector<VectorWaveFunction> g2,
201  double & me) const;
202 
203 private:
204 
209  MEee2Higgs2SM & operator=(const MEee2Higgs2SM &) = delete;
210 
211 private:
212 
216  AbstractFFSVertexPtr FFHVertex_;
217 
221  AbstractVVSVertexPtr HGGVertex_;
222 
226  int allowed_;
227 
232 };
233 
234 }
235 
236 #endif /* HERWIG_MEee2Higgs2SM_H */
AbstractVVSVertexPtr HGGVertex_
Pointer to Higgs-gluon-gluon vertex.
The MEee2Higgs2SM class implements the production of an -channel Higgs in collisions in order to all...
Definition: MEee2Higgs2SM.h:33
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual IBPtr clone() const
Make a simple clone of this object.
int allowed_
Allowed outgoing particles.
The storage of the helicity amplitude expression for the matrix element of a hard process...
AbstractFFSVertexPtr FFHVertex_
Pointer to the Higgs fermion-antifermion vertex.
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr
MEee2Higgs2SM()
The default constructor.
Definition: MEee2Higgs2SM.h:40
PDPtr h0_
Pointer to the Higgs ParticleData object.
vector< DiagPtr > DiagramVector
-*- C++ -*-
vector< IBPtr > IVector