herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MEGammaGamma2ff.h
1// -*- C++ -*-
2#ifndef HERWIG_MEGammaGamma2ff_H
3#define HERWIG_MEGammaGamma2ff_H
4//
5// This is the declaration of the MEGammaGamma2ff class.
6//
7
8#include "Herwig/MatrixElement/HwMEBase.h"
9#include "Herwig/MatrixElement/ProductionMatrixElement.h"
10#include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
11#include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
12#include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
13#include "ThePEG/Helicity/Vertex/AbstractFFVVertex.fh"
14
15namespace Herwig {
16
17using namespace ThePEG;
18
27
28public:
29
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 void getDiagrams() const;
67
77
86 colourGeometries(tcDiagPtr diag) const;
87
93
94public:
95
103
109 void persistentInput(PersistentIStream & is, int version);
111
118 static void Init();
119
120protected:
121
130 double helicityME(vector<VectorWaveFunction> &p1,vector<VectorWaveFunction> &p2,
131 vector<SpinorBarWaveFunction> & f,
132 vector<SpinorWaveFunction> & fbar, bool calc) const;
133protected:
134
141 virtual IBPtr clone() const {return new_ptr(*this);}
142
147 virtual IBPtr fullclone() const {return new_ptr(*this);}
149
150protected:
151
159 virtual void doinit();
161
162private:
163
169
170private:
171
176
180 AbstractFFVVertexPtr vertex_;
181
186
187};
188
189}
190
191#endif /* HERWIG_MEGammaGamma2ff_H */
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35
The MEGammaGamma2ff class provides the matrix elements for .
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ProductionMatrixElement me_
Matrix element.
int process_
Which processes to include.
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual void constructVertex(tSubProPtr)
Construct the vertex of spin correlations.
AbstractFFVVertexPtr vertex_
Pointer to the photon vertex.
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
MEGammaGamma2ff()
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...
double helicityME(vector< VectorWaveFunction > &p1, vector< VectorWaveFunction > &p2, vector< SpinorBarWaveFunction > &f, vector< SpinorWaveFunction > &fbar, bool calc) const
Matrix element for .
static void Init()
The standard Init function used to initialize the interfaces.
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
virtual IBPtr clone() const
Make a simple clone of this object.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
MEGammaGamma2ff & operator=(const MEGammaGamma2ff &)=delete
The assignment operator is private and must never be called.
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