herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
14namespace Herwig {
15using namespace ThePEG;
16using namespace ThePEG::Helicity;
17
25class MEGammaGamma2WW : public HwMEBase {
26
27public:
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
76
85 colourGeometries(tcDiagPtr diag) const;
86
92
93public:
94
102
108 void persistentInput(PersistentIStream & is, int version);
110
117 static void Init();
118
119protected:
120
129 double helicityME(vector<VectorWaveFunction> & p1,
130 vector<VectorWaveFunction> & p2,
131 vector<VectorWaveFunction> & w1,
132 vector<VectorWaveFunction> & w2, bool calc) const;
133
134protected:
135
142 virtual IBPtr clone() const;
143
148 virtual IBPtr fullclone() const;
150
151protected:
152
160 virtual void doinit();
162
163private:
164
170
171private:
172
176 unsigned int massOption_;
177
181 AbstractVVVVertexPtr WWWVertex_;
182
186 AbstractVVVVVertexPtr WWWWVertex_;
187
192
193};
194
195}
196
197#endif /* HERWIG_MEGammaGamma2WW_H */
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35
The MEGammaGamma2WW class provides the matrix elements for .
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
virtual IBPtr clone() const
Make a simple clone of this object.
double helicityME(vector< VectorWaveFunction > &p1, vector< VectorWaveFunction > &p2, vector< VectorWaveFunction > &w1, vector< VectorWaveFunction > &w2, bool calc) const
Matrix element for .
AbstractVVVVertexPtr WWWVertex_
Pointer to the gammaWW vertex.
ProductionMatrixElement me_
Matrix element.
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
virtual void constructVertex(tSubProPtr)
Construct the vertex of spin correlations.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
MEGammaGamma2WW()
The default constructor.
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
AbstractVVVVVertexPtr WWWWVertex_
Pointer to the gammagammaWW vertex.
unsigned int massOption_
Treatment of the the W mass.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
static void Init()
The standard Init function used to initialize the interfaces.
MEGammaGamma2WW & operator=(const MEGammaGamma2WW &)=delete
The assignment operator is private and must never be called.
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
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