herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MEPP2WJet.h
1// -*- C++ -*-
2#ifndef HERWIG_MEPP2WJet_H
3#define HERWIG_MEPP2WJet_H
4//
5// This is the declaration of the MEPP2WJet 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
27class MEPP2WJet: public HwMEBase {
28
29public:
30
35
42 virtual unsigned int orderInAlphaS() const;
43
48 virtual unsigned int orderInAlphaEW() const;
49
57 virtual double me2() const;
58
62 virtual Energy2 scale() const;
63
68 virtual int nDim() const;
69
78 virtual bool generateKinematics(const double * r);
79
84 virtual CrossSection dSigHatDR() const;
85
89 virtual void getDiagrams() const;
90
100
109 colourGeometries(tcDiagPtr diag) const;
110
116
117public:
118
126
132 void persistentInput(PersistentIStream & is, int version);
134
141 static void Init();
142
143protected:
144
158 InvEnergy2 qqbarME(vector<SpinorWaveFunction> & fin,
159 vector<SpinorBarWaveFunction> & ain,
160 vector<VectorWaveFunction> & gout,
161 vector<SpinorBarWaveFunction> & lm,
162 vector<SpinorWaveFunction> & lp,
163 bool me=false) const;
164
174 InvEnergy2 qgME(vector<SpinorWaveFunction> & fin,
175 vector<VectorWaveFunction> & gin,
176 vector<SpinorBarWaveFunction> & fout,
177 vector<SpinorBarWaveFunction> & lm,
178 vector<SpinorWaveFunction> & lp,
179 bool me=false) const;
180
190 InvEnergy2 qbargME(vector<SpinorBarWaveFunction> & fin,
191 vector<VectorWaveFunction> & gin,
192 vector<SpinorWaveFunction> & fout,
193 vector<SpinorBarWaveFunction> & lm,
194 vector<SpinorWaveFunction> & lp,
195 bool me=false) const;
197
198protected:
199
206 virtual IBPtr clone() const { return new_ptr(*this); }
207
212 virtual IBPtr fullclone() const { return new_ptr(*this); }
214
215protected:
216
224 virtual void doinit();
226
227private:
228
233 MEPP2WJet & operator=(const MEPP2WJet &) = delete;
234
235private:
236
244 AbstractFFVVertexPtr _theFFWVertex;
245
249 AbstractFFVVertexPtr _theQQGVertex;
251
260
266
274 unsigned int _process;
275
279 unsigned int _maxflavour;
280
284 unsigned int _plusminus;
285
289 unsigned int _wdec;
290
294 unsigned int _widthopt;
296
301
305 Energy2 _scale;
306
310 Energy2 _mw2;
311
312};
313
314}
315
316#endif /* HERWIG_MEPP2WJet_H */
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35
The MEPP2WJet class implements the matrix element for the production of a W boson and a jet including...
Definition: MEPP2WJet.h:27
unsigned int _maxflavour
Allowed flavours for the incoming quarks.
Definition: MEPP2WJet.h:279
ProductionMatrixElement _me
Matrix element for spin correlations.
Definition: MEPP2WJet.h:300
static void Init()
The standard Init function used to initialize the interfaces.
unsigned int _plusminus
Which charge states to include.
Definition: MEPP2WJet.h:284
virtual bool generateKinematics(const double *r)
Generate internal degrees of freedom given nDim() uniform random numbers in the interval .
Energy2 _scale
Storage of the scale to avoid the need to recalculate.
Definition: MEPP2WJet.h:305
AbstractFFVVertexPtr _theFFWVertex
Vertices for the helicity amplitude calculation.
Definition: MEPP2WJet.h:244
MEPP2WJet()
The default constructor.
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
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.
unsigned int _wdec
W decay modes.
Definition: MEPP2WJet.h:289
virtual IBPtr clone() const
Make a simple clone of this object.
Definition: MEPP2WJet.h:206
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition: MEPP2WJet.h:212
virtual void constructVertex(tSubProPtr)
Construct the vertex of spin correlations.
virtual CrossSection dSigHatDR() const
Return the matrix element squared differential in the variables given by the last call to generateKin...
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
InvEnergy2 qbargME(vector< SpinorBarWaveFunction > &fin, vector< VectorWaveFunction > &gin, vector< SpinorWaveFunction > &fout, vector< SpinorBarWaveFunction > &lm, vector< SpinorWaveFunction > &lp, bool me=false) const
Matrix element for .
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
Energy2 _mw2
Storage of the off-shell W mass to avoid the need to recalculate.
Definition: MEPP2WJet.h:310
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.
InvEnergy2 qgME(vector< SpinorWaveFunction > &fin, vector< VectorWaveFunction > &gin, vector< SpinorBarWaveFunction > &fout, vector< SpinorBarWaveFunction > &lm, vector< SpinorWaveFunction > &lp, bool me=false) const
Matrix element for .
virtual int nDim() const
The number of internal degrees of freedom used in the matrix element.
MEPP2WJet & operator=(const MEPP2WJet &)=delete
The assignment operator is private and must never be called.
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
unsigned int _process
Subprocesses to include.
Definition: MEPP2WJet.h:274
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
AbstractFFVVertexPtr _theQQGVertex
Pointer to the vertex.
Definition: MEPP2WJet.h:249
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
unsigned int _widthopt
Option for the treatment of the W off-shell effects.
Definition: MEPP2WJet.h:294
tcPDPtr _wplus
The data pointer.
Definition: MEPP2WJet.h:259
tcPDPtr _wminus
The data pointer.
Definition: MEPP2WJet.h:264
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