herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MEPP2VV.h
1// -*- C++ -*-
2#ifndef HERWIG_MEPP2VV_H
3#define HERWIG_MEPP2VV_H
4//
5// This is the declaration of the MEPP2VV 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
13namespace Herwig {
14
15using namespace ThePEG;
16
24class MEPP2VV: public HwMEBase {
25
26public:
27
32
33public:
34
41 virtual unsigned int orderInAlphaS() const;
42
47 virtual unsigned int orderInAlphaEW() const;
48
56 virtual double me2() const;
57
61 virtual Energy2 scale() const;
62
66 virtual int process() const { return process_; }
67
71 virtual void getDiagrams() const;
72
82
91 colourGeometries(tcDiagPtr diag) const;
92
97 virtual double getCosTheta(double cthmin, double cthmax, const double r);
98
104
105public:
106
114
120 void persistentInput(PersistentIStream & is, int version);
122
129 static void Init();
130
131protected:
132
141 double WWME(vector<SpinorWaveFunction> & f1,
142 vector<SpinorBarWaveFunction> & a1,
143 vector<VectorWaveFunction> & v1,
144 vector<VectorWaveFunction> & v2,
145 bool me) const;
146
155 double WZME(vector<SpinorWaveFunction> & f1,
156 vector<SpinorBarWaveFunction> & a1,
157 vector<VectorWaveFunction> & v1,
158 vector<VectorWaveFunction> & v2,
159 bool me) const;
160
169 double ZZME(vector<SpinorWaveFunction> & f1,
170 vector<SpinorBarWaveFunction> & a1,
171 vector<VectorWaveFunction> & v1,
172 vector<VectorWaveFunction> & v2,
173 bool me) const;
174
175protected:
176
183 virtual IBPtr clone() const;
184
189 virtual IBPtr fullclone() const;
191
192protected:
193
201 virtual void doinit();
203
204private:
205
210 MEPP2VV & operator=(const MEPP2VV &) = delete;
211
212private:
213
221 AbstractFFVVertexPtr FFPvertex_;
222
226 AbstractFFVVertexPtr FFWvertex_;
227
231 AbstractFFVVertexPtr FFZvertex_;
232
236 AbstractVVVVertexPtr WWWvertex_;
238
242 unsigned int process_;
243
248
252 unsigned int massOption_;
253
258};
259
260}
261
262#endif /* HERWIG_MEPP2VV_H */
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35
The MEPP2VV class implements the production of , and in hadron-hadron collisions.
Definition: MEPP2VV.h:24
double WZME(vector< SpinorWaveFunction > &f1, vector< SpinorBarWaveFunction > &a1, vector< VectorWaveFunction > &v1, vector< VectorWaveFunction > &v2, bool me) const
Matrix element for .
virtual double getCosTheta(double cthmin, double cthmax, const double r)
Used internally by generateKinematics, after calculating the limits on cos(theta).
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
virtual int process() const
Return the process being run (WW/ZZ/WZ).
Definition: MEPP2VV.h:66
unsigned int process_
Processes.
Definition: MEPP2VV.h:242
virtual IBPtr clone() const
Make a simple clone of this object.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
AbstractFFVVertexPtr FFWvertex_
FFWVertex.
Definition: MEPP2VV.h:226
MEPP2VV()
The default constructor.
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
unsigned int massOption_
Treatment of the the boson masses.
Definition: MEPP2VV.h:252
ProductionMatrixElement me_
The matrix element.
Definition: MEPP2VV.h:257
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
double WWME(vector< SpinorWaveFunction > &f1, vector< SpinorBarWaveFunction > &a1, vector< VectorWaveFunction > &v1, vector< VectorWaveFunction > &v2, bool me) const
Matrix element for .
AbstractFFVVertexPtr FFZvertex_
FFZVertex.
Definition: MEPP2VV.h:231
virtual void constructVertex(tSubProPtr)
Construct the vertex of spin correlations.
MEPP2VV & operator=(const MEPP2VV &)=delete
The assignment operator is private and must never be called.
static void Init()
The standard Init function used to initialize the interfaces.
int maxflavour_
Allowed flavours of the incoming quarks.
Definition: MEPP2VV.h:247
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
double ZZME(vector< SpinorWaveFunction > &f1, vector< SpinorBarWaveFunction > &a1, vector< VectorWaveFunction > &v1, vector< VectorWaveFunction > &v2, bool me) const
Matrix element for .
AbstractFFVVertexPtr FFPvertex_
Vertices.
Definition: MEPP2VV.h:221
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
AbstractVVVVertexPtr WWWvertex_
WWW Vertex.
Definition: MEPP2VV.h:236
The storage of the helicity amplitude expression for the matrix element of a hard process.
vector< DiagPtr > DiagramVector
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr