herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MEqq2gZ2ff.h
1 // -*- C++ -*-
2 //
3 // MEqq2gZ2ff.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_MEqq2gZ2ff_H
10 #define HERWIG_MEqq2gZ2ff_H
11 //
12 // This is the declaration of the MEqq2gZ2ff class.
13 //
14 
15 #include "Herwig/MatrixElement/DrellYanBase.h"
16 #include "Herwig/MatrixElement/ProductionMatrixElement.h"
17 #include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
18 #include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
19 #include "ThePEG/Helicity/Vertex/AbstractFFVVertex.fh"
20 
21 namespace Herwig {
22 
23 using namespace ThePEG;
24 using namespace ThePEG::Helicity;
25 
34 class MEqq2gZ2ff: public DrellYanBase {
35 
36 public:
37 
41  MEqq2gZ2ff();
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 
84  virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
85 
94  colourGeometries(tcDiagPtr diag) const;
95 
99  virtual void constructVertex(tSubProPtr);
101 
102 
103 public:
104 
111  void persistentOutput(PersistentOStream & os) const;
112 
118  void persistentInput(PersistentIStream & is, int version);
120 
127  static void Init();
128 
129 protected:
130 
139  double qqbarME(vector<SpinorWaveFunction> & fin ,
140  vector<SpinorBarWaveFunction> & ain ,
141  vector<SpinorBarWaveFunction> & fout,
142  vector<SpinorWaveFunction> & aout,
143  bool me) const;
144 
145 protected:
146 
153  virtual IBPtr clone() const { return new_ptr(*this); }
154 
159  virtual IBPtr fullclone() const { return new_ptr(*this); }
161 
162 protected:
163 
171  virtual void doinit();
173 
174 private:
175 
180  MEqq2gZ2ff & operator=(const MEqq2gZ2ff &) = delete;
181 
182 private:
183 
191  AbstractFFVVertexPtr _theFFZVertex;
192 
196  AbstractFFVVertexPtr _theFFPVertex;
198 
207 
213 
222 
227 
231  unsigned int _gammaZ;
232 
236  int _process;
238 
243 
248 };
249 
250 }
251 
252 #endif /* HERWIG_MEqq2gZ2ff_H */
AbstractFFVVertexPtr _theFFZVertex
Pointer to the vertices for the helicity calculations.
Definition: MEqq2gZ2ff.h:191
int _maxflavour
Maximum allowed flavour for the incoming quarks.
Definition: MEqq2gZ2ff.h:226
The DrellYanBase class class provides a base class for the implemented of Drell-Yan type processes an...
Definition: DrellYanBase.h:23
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
virtual IBPtr clone() const
Make a simple clone of this object.
Definition: MEqq2gZ2ff.h:153
The storage of the helicity amplitude expression for the matrix element of a hard process...
int _minflavour
Switches to control the particles in the hard process.
Definition: MEqq2gZ2ff.h:221
tcPDPtr _z0
Pointers to the intermediate resonances.
Definition: MEqq2gZ2ff.h:206
The MEqq2gZ2ff class implements the products of Standard Model fermion antifermion pairs via the res...
Definition: MEqq2gZ2ff.h:34
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
int _process
Which processes to include.
Definition: MEqq2gZ2ff.h:236
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition: MEqq2gZ2ff.h:159
ProductionMatrixElement _me
Matrix element for spin correlations.
Definition: MEqq2gZ2ff.h:242
bool spinCorrelations_
Whether of not to construct the vertex for spin correlations.
Definition: MEqq2gZ2ff.h:247
vector< DiagPtr > DiagramVector
-*- C++ -*-
unsigned int _gammaZ
Whether to include both and or only one.
Definition: MEqq2gZ2ff.h:231
tcPDPtr _gamma
Pointer to the photon ParticleData object.
Definition: MEqq2gZ2ff.h:211
AbstractFFVVertexPtr _theFFPVertex
Pointer to the photon vertex.
Definition: MEqq2gZ2ff.h:196