herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
15 namespace Herwig {
16 
17 using namespace ThePEG;
18 
26 class MEGammaP2Jets: public HwMEBase {
27 
28 public:
29 
33  MEGammaP2Jets();
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 
76  virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
77 
86  colourGeometries(tcDiagPtr diag) const;
88 
89 protected:
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 
138 public:
139 
146  void persistentOutput(PersistentOStream & os) const;
147 
153  void persistentInput(PersistentIStream & is, int version);
155 
162  static void Init();
163 
164 protected:
165 
172  virtual IBPtr clone() const;
173 
178  virtual IBPtr fullclone() const;
180 
181 protected:
182 
190  virtual void doinit();
192 
193 private:
194 
199  MEGammaP2Jets & operator=(const MEGammaP2Jets &) = delete;
200 
201 private:
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 */
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
AbstractFFVVertexPtr _gluonvertex
Pointer to the quark-antiquark-gluon vertex.
int _minflavour
Minimum flavour.
The storage of the helicity amplitude expression for the matrix element of a hard process...
ProductionMatrixElement _me
Matrix element for spin correlations.
AbstractFFVVertexPtr _photonvertex
Pointer to the quark-antiquark-photon vertex.
unsigned int _process
Allowed processes.
int _maxflavour
Maximum flavour.
vector< DiagPtr > DiagramVector
-*- C++ -*-
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