herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MEPP2GammaJet.h
1// -*- C++ -*-
2//
3// MEPP2GammaJet.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4// Copyright (C) 2002-2019 The Herwig Collaboration
5//
6// Herwig is licenced under version 3 of the GPL, see COPYING for details.
7// Please respect the MCnet academic guidelines, see GUIDELINES for details.
8//
9#ifndef HERWIG_MEPP2GammaJet_H
10#define HERWIG_MEPP2GammaJet_H
11//
12// This is the declaration of the MEPP2GammaJet class.
13//
14
15#include "Herwig/MatrixElement/HwMEBase.h"
16#include "ThePEG/Helicity/Vertex/AbstractFFVVertex.h"
17#include "Herwig/MatrixElement/ProductionMatrixElement.h"
18#include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
19#include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
20#include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
21
22namespace Herwig {
23
24using namespace ThePEG;
25using namespace ThePEG::Helicity;
26
34class MEPP2GammaJet: public HwMEBase {
35
36public:
37
42
49 virtual unsigned int orderInAlphaS() const;
50
55 virtual unsigned int orderInAlphaEW() const;
56
64 virtual double me2() const;
65
69 virtual Energy2 scale() const;
70
74 virtual void getDiagrams() const;
75
85
94 colourGeometries(tcDiagPtr diag) const;
95
101
102
103public:
104
112
118 void persistentInput(PersistentIStream & is, int version);
120
127 static void Init();
128
129protected:
130
137 virtual IBPtr clone() const { return new_ptr(*this); }
138
143 virtual IBPtr fullclone() const { return new_ptr(*this); }
145
146protected:
147
155 virtual void doinit();
156
166 virtual void rebind(const TranslationMap & trans)
167 ;
168
176
177private:
178
191 double qqbarME(vector<SpinorWaveFunction> & fin, vector<SpinorBarWaveFunction> & ain,
192 vector<VectorWaveFunction> & gout, vector<VectorWaveFunction> & pout,
193 bool me) const;
194
203 double qgME(vector<SpinorWaveFunction> & fin,vector<VectorWaveFunction> & gin,
204 vector<VectorWaveFunction> & pout,vector<SpinorBarWaveFunction> & fout,
205 bool me) const;
206
215 double qbargME(vector<SpinorBarWaveFunction> & ain, vector<VectorWaveFunction> & gin,
216 vector<VectorWaveFunction> & pout, vector<SpinorWaveFunction> & aout,
217 bool me) const;
219
220private:
221
227
228private:
229
233 AbstractFFVVertexPtr _gluonvertex;
234
238 AbstractFFVVertexPtr _photonvertex;
239
244
248 unsigned int _processopt;
249
254
259};
260
261}
262
263#endif /* HERWIG_MEPP2GammaJet_H */
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35
The MEPP2GammaJet class implements the matrix element for photon+jet production in hadron-hadron coll...
Definition: MEPP2GammaJet.h:34
double scalePreFactor_
Scale prefactor.
virtual void rebind(const TranslationMap &trans)
Rebind pointer to other Interfaced objects.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
MEPP2GammaJet()
The default constructor.
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
ProductionMatrixElement _me
Matrix element for spin correlations.
static void Init()
The standard Init function used to initialize the interfaces.
virtual IBPtr clone() const
Make a simple clone of this object.
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
double qbargME(vector< SpinorBarWaveFunction > &ain, vector< VectorWaveFunction > &gin, vector< VectorWaveFunction > &pout, vector< SpinorWaveFunction > &aout, bool me) const
Matrix element for .
AbstractFFVVertexPtr _gluonvertex
Pointer to the quark-antiquark-gluon vertex.
AbstractFFVVertexPtr _photonvertex
Pointer to the quark-antiquark-photon vertex.
virtual IVector getReferences()
Return a vector of all pointers to Interfaced objects used in this object.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
int _maxflavour
Maximum PDG code of the quarks allowed.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
MEPP2GammaJet & operator=(const MEPP2GammaJet &)=delete
The assignment operator is private and must never be called.
double qgME(vector< SpinorWaveFunction > &fin, vector< VectorWaveFunction > &gin, vector< VectorWaveFunction > &pout, vector< SpinorBarWaveFunction > &fout, bool me) const
Matrix element for .
unsigned int _processopt
Option for which processes to include.
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
virtual void constructVertex(tSubProPtr)
Construct the vertex of spin correlations.
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
double qqbarME(vector< SpinorWaveFunction > &fin, vector< SpinorBarWaveFunction > &ain, vector< VectorWaveFunction > &gout, vector< VectorWaveFunction > &pout, bool me) const
Members to return the matrix elements for the different subprocesses.
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
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
vector< IBPtr > IVector