herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MEPP2ZJet.h
1// -*- C++ -*-
2#ifndef HERWIG_MEPP2ZJet_H
3#define HERWIG_MEPP2ZJet_H
4//
5// This is the declaration of the MEPP2ZJet class.
6//
7
8#include "Herwig/MatrixElement/HwMEBase.h"
9#include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
10#include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
11#include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
12#include "Herwig/MatrixElement/ProductionMatrixElement.h"
13#include "ThePEG/Helicity/Vertex/AbstractFFVVertex.fh"
14
15namespace Herwig {
16
17using namespace ThePEG;
18using namespace ThePEG::Helicity;
19
28class MEPP2ZJet: public HwMEBase {
29
30public:
31
36
43 virtual unsigned int orderInAlphaS() const;
44
49 virtual unsigned int orderInAlphaEW() const;
50
58 virtual double me2() const;
59
63 virtual Energy2 scale() const;
64
69 virtual int nDim() const;
70
79 virtual bool generateKinematics(const double * r);
80
85 virtual CrossSection dSigHatDR() const;
86
90 virtual void getDiagrams() const;
91
101
110 colourGeometries(tcDiagPtr diag) const;
111
117
118public:
119
127
133 void persistentInput(PersistentIStream & is, int version);
135
142 static void Init();
143
144protected:
145
159 InvEnergy2 qqbarME(vector<SpinorWaveFunction> & fin,
160 vector<SpinorBarWaveFunction> & ain,
161 vector<VectorWaveFunction> & gout,
162 vector<SpinorBarWaveFunction> & lm, vector<SpinorWaveFunction> & lp,
163 bool me=false) const;
164
174 InvEnergy2 qgME(vector<SpinorWaveFunction> & fin,vector<VectorWaveFunction> & gin,
175 vector<SpinorBarWaveFunction> & fout,
176 vector<SpinorBarWaveFunction> & lm, vector<SpinorWaveFunction> & lp,
177 bool me=false) const;
178
188 InvEnergy2 qbargME(vector<SpinorBarWaveFunction> & fin,
189 vector<VectorWaveFunction> & gin,
190 vector<SpinorWaveFunction> & fout,
191 vector<SpinorBarWaveFunction> & lm, vector<SpinorWaveFunction> & lp,
192 bool me=false) const;
194
195protected:
196
203 virtual IBPtr clone() const { return new_ptr(*this); }
204
209 virtual IBPtr fullclone() const { return new_ptr(*this); }
211
212protected:
213
221 virtual void doinit();
223
224private:
225
230 MEPP2ZJet & operator=(const MEPP2ZJet &) = delete;
231
232private:
233
241 AbstractFFVVertexPtr _theFFZVertex;
242
246 AbstractFFVVertexPtr _theFFPVertex;
247
251 AbstractFFVVertexPtr _theQQGVertex;
253
262
268
276 unsigned int _process;
277
282
286 int _zdec;
287
291 unsigned int _gammaZ;
292
296 unsigned int _widthopt;
298
303 double _pprob;
304
309
313 Energy2 _scale;
314
318 Energy2 _mz2;
319};
320
321}
322
323#endif /* HERWIG_MEPP2ZJet_H */
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35
The MEPP2ZJet class implements the matrix element for the production of a Z boson + a jet including t...
Definition: MEPP2ZJet.h:28
AbstractFFVVertexPtr _theFFZVertex
Vertices for the helicity amplitude calculation.
Definition: MEPP2ZJet.h:241
MEPP2ZJet()
The default constructor.
Energy2 _scale
Storage of the scale to avoid the need to recalculate.
Definition: MEPP2ZJet.h:313
virtual int nDim() const
The number of internal degrees of freedom used in the matrix element.
virtual void constructVertex(tSubProPtr)
Construct the vertex of spin correlations.
InvEnergy2 qgME(vector< SpinorWaveFunction > &fin, vector< VectorWaveFunction > &gin, vector< SpinorBarWaveFunction > &fout, vector< SpinorBarWaveFunction > &lm, vector< SpinorWaveFunction > &lp, bool me=false) const
Matrix element for .
unsigned int _gammaZ
Which terms to include.
Definition: MEPP2ZJet.h:291
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
unsigned int _widthopt
Option for the treatment of the W off-shell effects.
Definition: MEPP2ZJet.h:296
double _pprob
Probability of selecting for the jacobian transformation of the boson mass.
Definition: MEPP2ZJet.h:303
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual IBPtr clone() const
Make a simple clone of this object.
Definition: MEPP2ZJet.h:203
tcPDPtr _z0
Pointer to the Z ParticleData object.
Definition: MEPP2ZJet.h:261
InvEnergy2 qqbarME(vector< SpinorWaveFunction > &fin, vector< SpinorBarWaveFunction > &ain, vector< VectorWaveFunction > &gout, vector< SpinorBarWaveFunction > &lm, vector< SpinorWaveFunction > &lp, bool me=false) const
Matrix elements for the different subprocesses.
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.
Definition: MEPP2ZJet.h:308
MEPP2ZJet & operator=(const MEPP2ZJet &)=delete
The assignment operator is private and must never be called.
unsigned int _process
Subprocesses to include.
Definition: MEPP2ZJet.h:276
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
tcPDPtr _gamma
Pointer to the photon ParticleData object.
Definition: MEPP2ZJet.h:266
AbstractFFVVertexPtr _theQQGVertex
Pointer to the vertex.
Definition: MEPP2ZJet.h:251
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
AbstractFFVVertexPtr _theFFPVertex
Pointer to the photon vertex.
Definition: MEPP2ZJet.h:246
virtual CrossSection dSigHatDR() const
Return the matrix element squared differential in the variables given by the last call to generateKin...
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
InvEnergy2 qbargME(vector< SpinorBarWaveFunction > &fin, vector< VectorWaveFunction > &gin, vector< SpinorWaveFunction > &fout, vector< SpinorBarWaveFunction > &lm, vector< SpinorWaveFunction > &lp, bool me=false) const
Matrix element for .
int _zdec
Control over which Z decay modes to include.
Definition: MEPP2ZJet.h:286
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
static void Init()
The standard Init function used to initialize the interfaces.
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Energy2 _mz2
Storage of the off-shell Z mass to avoid the need to recalculate.
Definition: MEPP2ZJet.h:318
int _maxflavour
Allowed flavours for the incoming quarks.
Definition: MEPP2ZJet.h:281
virtual bool generateKinematics(const double *r)
Generate internal degrees of freedom given nDim() uniform random numbers in the interval .
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition: MEPP2ZJet.h:209
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
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr