herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MEGammaP2Jets.h
1// -*- C++ -*-
2#ifndef HERWIG_MEGammaP2Jets_H
3#define HERWIG_MEGammaP2Jets_H
4//
5// This is the declaration of the MEGammaP2Jets class.
6//
7
8#include "Herwig/MatrixElement/HwMEBase.h"
9#include "ThePEG/Helicity/Vertex/AbstractFFVVertex.h"
10#include "Herwig/MatrixElement/ProductionMatrixElement.h"
11#include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
12#include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
13#include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
14
15namespace Herwig {
16
17using namespace ThePEG;
18
26class MEGammaP2Jets: public HwMEBase {
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;
88
89protected:
90
103 double gammagluonME(vector<VectorWaveFunction> & gmin,
104 vector<VectorWaveFunction> & glin,
105 vector<SpinorBarWaveFunction> & fout,
106 vector<SpinorWaveFunction> & aout,
107 bool calc) const;
108
117 double gammaquarkME(vector<VectorWaveFunction> & gmin,
118 vector<SpinorWaveFunction> & fin,
119 vector<VectorWaveFunction> & gout,
120 vector<SpinorBarWaveFunction> & fout,
121 bool calc) const;
122
131 double gammaantiquarkME(vector<VectorWaveFunction> & gmin,
132 vector<SpinorBarWaveFunction> & fin,
133 vector<VectorWaveFunction> & gout,
134 vector<SpinorWaveFunction> & fout,
135 bool calc) const;
137
138public:
139
147
153 void persistentInput(PersistentIStream & is, int version);
155
162 static void Init();
163
164protected:
165
172 virtual IBPtr clone() const;
173
178 virtual IBPtr fullclone() const;
180
181protected:
182
190 virtual void doinit();
192
193private:
194
200
201private:
202
206 AbstractFFVVertexPtr _gluonvertex;
207
211 AbstractFFVVertexPtr _photonvertex;
212
216 unsigned int _process;
217
222
227
232
233};
234
235}
236
237#endif /* HERWIG_MEGammaP2Jets_H */
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35
The MEGammaP2Jets class implements the matrix elements for pointlike gamma+hadron -> jets.
Definition: MEGammaP2Jets.h:26
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
double gammaantiquarkME(vector< VectorWaveFunction > &gmin, vector< SpinorBarWaveFunction > &fin, vector< VectorWaveFunction > &gout, vector< SpinorWaveFunction > &fout, bool calc) const
Matrix element for .
MEGammaP2Jets & operator=(const MEGammaP2Jets &)=delete
The assignment operator is private and must never be called.
MEGammaP2Jets()
The default constructor.
ProductionMatrixElement _me
Matrix element for spin correlations.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
unsigned int _process
Allowed processes.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
static void Init()
The standard Init function used to initialize the interfaces.
virtual IBPtr clone() const
Make a simple clone of this object.
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
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 Energy2 scale() const
Return the scale associated with the last set phase space point.
double gammagluonME(vector< VectorWaveFunction > &gmin, vector< VectorWaveFunction > &glin, vector< SpinorBarWaveFunction > &fout, vector< SpinorWaveFunction > &aout, bool calc) const
Members to calculate the matrix elements.
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
AbstractFFVVertexPtr _photonvertex
Pointer to the quark-antiquark-photon vertex.
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
AbstractFFVVertexPtr _gluonvertex
Pointer to the quark-antiquark-gluon vertex.
int _maxflavour
Maximum flavour.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
double gammaquarkME(vector< VectorWaveFunction > &gmin, vector< SpinorWaveFunction > &fin, vector< VectorWaveFunction > &gout, vector< SpinorBarWaveFunction > &fout, bool calc) const
Matrix element for .
int _minflavour
Minimum flavour.
The storage of the helicity amplitude expression for the matrix element of a hard process.
vector< DiagPtr > DiagramVector
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr