herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MEPP2VGamma.h
1 // -*- C++ -*-
2 #ifndef HERWIG_MEPP2VGamma_H
3 #define HERWIG_MEPP2VGamma_H
4 //
5 // This is the declaration of the MEPP2VGamma 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 
23 class MEPP2VGamma: public HwMEBase {
24 
25 public:
26 
30  MEPP2VGamma();
31 
38  virtual unsigned int orderInAlphaS() const;
39 
44  virtual unsigned int orderInAlphaEW() const;
45 
53  virtual double me2() const;
54 
58  virtual Energy2 scale() const;
59 
63  virtual void getDiagrams() const;
64 
73  virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
74 
83  colourGeometries(tcDiagPtr diag) const;
84 
88  virtual void constructVertex(tSubProPtr);
90 
91 
92 public:
93 
100  void persistentOutput(PersistentOStream & os) const;
101 
107  void persistentInput(PersistentIStream & is, int version);
109 
116  static void Init();
117 
118 protected:
119 
128  double WGammaME(vector<SpinorWaveFunction> & f1,
129  vector<SpinorBarWaveFunction> & a1,
130  vector<VectorWaveFunction> & v1,
131  vector<VectorWaveFunction> & v2,
132  bool me) const;
133 
142  double ZGammaME(vector<SpinorWaveFunction> & f1,
143  vector<SpinorBarWaveFunction> & a1,
144  vector<VectorWaveFunction> & v1,
145  vector<VectorWaveFunction> & v2,
146  bool me) const;
147 
148 protected:
149 
156  virtual IBPtr clone() const;
157 
162  virtual IBPtr fullclone() const;
164 
165 protected:
166 
174  virtual void doinit();
176 
177 private:
178 
183  MEPP2VGamma & operator=(const MEPP2VGamma &) = delete;
184 
185 private:
186 
194  AbstractFFVVertexPtr FFPvertex_;
195 
199  AbstractFFVVertexPtr FFWvertex_;
200 
204  AbstractFFVVertexPtr FFZvertex_;
205 
209  AbstractVVVVertexPtr WWWvertex_;
211 
215  unsigned int process_;
216 
221 
225  unsigned int massOption_;
226 
231 };
232 
233 }
234 
235 #endif /* HERWIG_MEPP2VGamma_H */
The MEPP2VGamma class implements the .
Definition: MEPP2VGamma.h:23
ProductionMatrixElement me_
The matrix element.
Definition: MEPP2VGamma.h:230
AbstractFFVVertexPtr FFWvertex_
FFWVertex.
Definition: MEPP2VGamma.h:199
AbstractFFVVertexPtr FFZvertex_
FFZVertex.
Definition: MEPP2VGamma.h:204
AbstractVVVVertexPtr WWWvertex_
WWW Vertex.
Definition: MEPP2VGamma.h:209
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
int maxflavour_
Allowed flavours of the incoming quarks.
Definition: MEPP2VGamma.h:220
The storage of the helicity amplitude expression for the matrix element of a hard process...
unsigned int massOption_
Treatment of the the boson masses.
Definition: MEPP2VGamma.h:225
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
unsigned int process_
Processes.
Definition: MEPP2VGamma.h:215
vector< DiagPtr > DiagramVector
AbstractFFVVertexPtr FFPvertex_
Vertices.
Definition: MEPP2VGamma.h:194
-*- C++ -*-
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35