herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MEee2VV.h
1 // -*- C++ -*-
2 #ifndef HERWIG_MEee2VV_H
3 #define HERWIG_MEee2VV_H
4 //
5 // This is the declaration of the MEee2VV class.
6 //
7 
8 #include "Herwig/MatrixElement/HwMEBase.h"
9 #include "ThePEG/Helicity/Vertex/AbstractFFVVertex.h"
10 #include "ThePEG/Helicity/Vertex/AbstractVVVVertex.h"
11 #include "Herwig/MatrixElement/ProductionMatrixElement.h"
12 
13 namespace Herwig {
14 
15 using namespace ThePEG;
16 
24 class MEee2VV: public HwMEBase {
25 
26 public:
27 
31  MEee2VV();
32 
39  virtual unsigned int orderInAlphaS() const;
40 
45  virtual unsigned int orderInAlphaEW() const;
46 
54  virtual double me2() const;
55 
59  virtual Energy2 scale() const;
60 
64  virtual void getDiagrams() const;
65 
74  virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
75 
84  colourGeometries(tcDiagPtr diag) const;
85 
90  virtual double getCosTheta(double cthmin, double cthmax, const double r);
91 
95  virtual void constructVertex(tSubProPtr);
97 
98 public:
99 
106  void persistentOutput(PersistentOStream & os) const;
107 
113  void persistentInput(PersistentIStream & is, int version);
115 
122  static void Init();
123 
124 protected:
125 
133  double WWME(vector<SpinorWaveFunction> & f1,
134  vector<SpinorBarWaveFunction> & a1,
135  vector<VectorWaveFunction> & v1,
136  vector<VectorWaveFunction> & v2) const;
137 
145  double ZZME(vector<SpinorWaveFunction> & f1,
146  vector<SpinorBarWaveFunction> & a1,
147  vector<VectorWaveFunction> & v1,
148  vector<VectorWaveFunction> & v2) const;
149 
150 protected:
151 
158  virtual IBPtr clone() const;
159 
164  virtual IBPtr fullclone() const;
166 
167 
168 protected:
169 
177  virtual void doinit();
179 
180 private:
181 
186  MEee2VV & operator=(const MEee2VV &) = delete;
187 
188 private:
189 
197  AbstractFFVVertexPtr FFPvertex_;
198 
202  AbstractFFVVertexPtr FFWvertex_;
203 
207  AbstractFFVVertexPtr FFZvertex_;
208 
212  AbstractVVVVertexPtr WWWvertex_;
214 
218  unsigned int process_;
219 
223  unsigned int massOption_;
224 
229 };
230 
231 }
232 
233 #endif /* HERWIG_MEee2VV_H */
AbstractFFVVertexPtr FFWvertex_
FFWVertex.
Definition: MEee2VV.h:202
AbstractFFVVertexPtr FFZvertex_
FFZVertex.
Definition: MEee2VV.h:207
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
The storage of the helicity amplitude expression for the matrix element of a hard process...
AbstractVVVVertexPtr WWWvertex_
WWW Vertex.
Definition: MEee2VV.h:212
unsigned int process_
Processes.
Definition: MEee2VV.h:218
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
unsigned int massOption_
Treatment of the the W and Z masses.
Definition: MEee2VV.h:223
vector< DiagPtr > DiagramVector
-*- C++ -*-
ProductionMatrixElement me_
The matrix element.
Definition: MEee2VV.h:228
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35
AbstractFFVVertexPtr FFPvertex_
Vertices.
Definition: MEee2VV.h:197
The MEee2VV class implements the matrix elements for .
Definition: MEee2VV.h:24