herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MEGammaGamma2WW.h
1 // -*- C++ -*-
2 #ifndef HERWIG_MEGammaGamma2WW_H
3 #define HERWIG_MEGammaGamma2WW_H
4 //
5 // This is the declaration of the MEGammaGamma2WW class.
6 //
7 
8 #include "Herwig/MatrixElement/HwMEBase.h"
9 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
10 #include "ThePEG/Helicity/Vertex/AbstractVVVVertex.fh"
11 #include "ThePEG/Helicity/Vertex/AbstractVVVVVertex.fh"
12 #include "Herwig/MatrixElement/ProductionMatrixElement.h"
13 
14 namespace Herwig {
15 using namespace ThePEG;
16 using namespace ThePEG::Helicity;
17 
25 class MEGammaGamma2WW : public HwMEBase {
26 
27 public:
28 
33 
40  virtual unsigned int orderInAlphaS() const;
41 
46  virtual unsigned int orderInAlphaEW() const;
47 
55  virtual double me2() const;
56 
60  virtual Energy2 scale() const;
61 
65  virtual void getDiagrams() const;
66 
75  virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
76 
85  colourGeometries(tcDiagPtr diag) const;
86 
90  virtual void constructVertex(tSubProPtr);
92 
93 public:
94 
101  void persistentOutput(PersistentOStream & os) const;
102 
108  void persistentInput(PersistentIStream & is, int version);
110 
117  static void Init();
118 
119 protected:
120 
129  double helicityME(vector<VectorWaveFunction> & p1,
130  vector<VectorWaveFunction> & p2,
131  vector<VectorWaveFunction> & w1,
132  vector<VectorWaveFunction> & w2, bool calc) const;
133 
134 protected:
135 
142  virtual IBPtr clone() const;
143 
148  virtual IBPtr fullclone() const;
150 
151 protected:
152 
160  virtual void doinit();
162 
163 private:
164 
169  MEGammaGamma2WW & operator=(const MEGammaGamma2WW &) = delete;
170 
171 private:
172 
176  unsigned int massOption_;
177 
181  AbstractVVVVertexPtr WWWVertex_;
182 
186  AbstractVVVVVertexPtr WWWWVertex_;
187 
192 
193 };
194 
195 }
196 
197 #endif /* HERWIG_MEGammaGamma2WW_H */
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
unsigned int massOption_
Treatment of the the W mass.
The MEGammaGamma2WW class provides the matrix elements for .
The storage of the helicity amplitude expression for the matrix element of a hard process...
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
AbstractVVVVertexPtr WWWVertex_
Pointer to the gammaWW vertex.
AbstractVVVVVertexPtr WWWWVertex_
Pointer to the gammagammaWW vertex.
ProductionMatrixElement me_
Matrix element.
vector< DiagPtr > DiagramVector
-*- C++ -*-
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35