herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
15 namespace Herwig {
16 
17 using namespace ThePEG;
18 using namespace ThePEG::Helicity;
19 
28 class MEPP2ZJet: public HwMEBase {
29 
30 public:
31 
35  MEPP2ZJet();
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 
100  virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
101 
110  colourGeometries(tcDiagPtr diag) const;
111 
115  virtual void constructVertex(tSubProPtr);
117 
118 public:
119 
126  void persistentOutput(PersistentOStream & os) const;
127 
133  void persistentInput(PersistentIStream & is, int version);
135 
142  static void Init();
143 
144 protected:
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 
195 protected:
196 
203  virtual IBPtr clone() const { return new_ptr(*this); }
204 
209  virtual IBPtr fullclone() const { return new_ptr(*this); }
211 
212 protected:
213 
221  virtual void doinit();
223 
224 private:
225 
230  MEPP2ZJet & operator=(const MEPP2ZJet &) = delete;
231 
232 private:
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 MEPP2ZJet class implements the matrix element for the production of a Z boson + a jet including t...
Definition: MEPP2ZJet.h:28
tcPDPtr _z0
Pointer to the Z ParticleData object.
Definition: MEPP2ZJet.h:261
AbstractFFVVertexPtr _theFFPVertex
Pointer to the photon vertex.
Definition: MEPP2ZJet.h:246
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
tcPDPtr _gamma
Pointer to the photon ParticleData object.
Definition: MEPP2ZJet.h:266
Energy2 _scale
Storage of the scale to avoid the need to recalculate.
Definition: MEPP2ZJet.h:313
double _pprob
Probability of selecting for the jacobian transformation of the boson mass.
Definition: MEPP2ZJet.h:303
virtual IBPtr clone() const
Make a simple clone of this object.
Definition: MEPP2ZJet.h:203
unsigned int _widthopt
Option for the treatment of the W off-shell effects.
Definition: MEPP2ZJet.h:296
The storage of the helicity amplitude expression for the matrix element of a hard process...
AbstractFFVVertexPtr _theQQGVertex
Pointer to the vertex.
Definition: MEPP2ZJet.h:251
AbstractFFVVertexPtr _theFFZVertex
Vertices for the helicity amplitude calculation.
Definition: MEPP2ZJet.h:241
ProductionMatrixElement _me
Matrix element for spin correlations.
Definition: MEPP2ZJet.h:308
unsigned int _process
Subprocesses to include.
Definition: MEPP2ZJet.h:276
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition: MEPP2ZJet.h:209
unsigned int _gammaZ
Which terms to include.
Definition: MEPP2ZJet.h:291
Energy2 _mz2
Storage of the off-shell Z mass to avoid the need to recalculate.
Definition: MEPP2ZJet.h:318
vector< DiagPtr > DiagramVector
-*- C++ -*-
int _maxflavour
Allowed flavours for the incoming quarks.
Definition: MEPP2ZJet.h:281
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35
int _zdec
Control over which Z decay modes to include.
Definition: MEPP2ZJet.h:286