herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
21namespace Herwig {
22
23using namespace ThePEG;
24using namespace ThePEG::Helicity;
25
34class MEqq2gZ2ff: public DrellYanBase {
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
139 double qqbarME(vector<SpinorWaveFunction> & fin ,
140 vector<SpinorBarWaveFunction> & ain ,
141 vector<SpinorBarWaveFunction> & fout,
142 vector<SpinorWaveFunction> & aout,
143 bool me) const;
144
145protected:
146
153 virtual IBPtr clone() const { return new_ptr(*this); }
154
159 virtual IBPtr fullclone() const { return new_ptr(*this); }
161
162protected:
163
171 virtual void doinit();
173
174private:
175
180 MEqq2gZ2ff & operator=(const MEqq2gZ2ff &) = delete;
181
182private:
183
191 AbstractFFVVertexPtr _theFFZVertex;
192
196 AbstractFFVVertexPtr _theFFPVertex;
198
207
213
222
227
231 unsigned int _gammaZ;
232
238
243
248};
249
250}
251
252#endif /* HERWIG_MEqq2gZ2ff_H */
The DrellYanBase class class provides a base class for the implemented of Drell-Yan type processes an...
Definition: DrellYanBase.h:23
The MEqq2gZ2ff class implements the products of Standard Model fermion antifermion pairs via the res...
Definition: MEqq2gZ2ff.h:34
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
tcPDPtr _gamma
Pointer to the photon ParticleData object.
Definition: MEqq2gZ2ff.h:211
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition: MEqq2gZ2ff.h:159
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual void constructVertex(tSubProPtr)
Construct the vertex of spin correlations.
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
ProductionMatrixElement _me
Matrix element for spin correlations.
Definition: MEqq2gZ2ff.h:242
int _minflavour
Switches to control the particles in the hard process.
Definition: MEqq2gZ2ff.h:221
virtual IBPtr clone() const
Make a simple clone of this object.
Definition: MEqq2gZ2ff.h:153
MEqq2gZ2ff()
The default constructor.
MEqq2gZ2ff & operator=(const MEqq2gZ2ff &)=delete
The assignment operator is private and must never be called.
static void Init()
The standard Init function used to initialize the interfaces.
int _process
Which processes to include.
Definition: MEqq2gZ2ff.h:236
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
double qqbarME(vector< SpinorWaveFunction > &fin, vector< SpinorBarWaveFunction > &ain, vector< SpinorBarWaveFunction > &fout, vector< SpinorWaveFunction > &aout, bool me) const
Matrix element for .
tcPDPtr _z0
Pointers to the intermediate resonances.
Definition: MEqq2gZ2ff.h:206
AbstractFFVVertexPtr _theFFZVertex
Pointer to the vertices for the helicity calculations.
Definition: MEqq2gZ2ff.h:191
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
int _maxflavour
Maximum allowed flavour for the incoming quarks.
Definition: MEqq2gZ2ff.h:226
unsigned int _gammaZ
Whether to include both and or only one.
Definition: MEqq2gZ2ff.h:231
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
bool spinCorrelations_
Whether of not to construct the vertex for spin correlations.
Definition: MEqq2gZ2ff.h:247
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
AbstractFFVVertexPtr _theFFPVertex
Pointer to the photon vertex.
Definition: MEqq2gZ2ff.h:196
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