herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MEfftoVH.h
1// -*- C++ -*-
2#ifndef HERWIG_MEfftoVH_H
3#define HERWIG_MEfftoVH_H
4//
5// This is the declaration of the MEfftoVH class.
6//
7
8#include "DrellYanBase.h"
9#include "ThePEG/Helicity/Vertex/AbstractFFVVertex.h"
10#include "ThePEG/Helicity/Vertex/AbstractVVSVertex.h"
11#include "Herwig/MatrixElement/ProductionMatrixElement.h"
12#include "Herwig/PDT/GenericMassGenerator.h"
13
14namespace Herwig {
15using namespace ThePEG;
16
25class MEfftoVH: public DrellYanBase {
26
27public:
28
32 MEfftoVH() : _shapeopt(2), _maxflavour(5), _mh(), _wh() {}
33
40 virtual unsigned int orderInAlphaS() const;
41
46 virtual unsigned int orderInAlphaEW() const;
47
55 virtual double me2() const;
56
60 virtual Energy2 scale() const;
61
69 virtual void setKinematics();
70
75 virtual int nDim() const;
76
85 virtual bool generateKinematics(const double * r);
86
91 virtual CrossSection dSigHatDR() const;
92
102
111 colourGeometries(tcDiagPtr diag) const;
112
118
119
120public:
121
129
135 void persistentInput(PersistentIStream & is, int version);
137
144 static void Init();
145
146protected:
147
156 double helicityME(vector<SpinorWaveFunction> & fin ,
157 vector<SpinorBarWaveFunction> & ain ,
158 vector<SpinorBarWaveFunction> & fout,
159 vector<SpinorWaveFunction> & aout,
160 bool me) const;
161
169 PDPtr WPlus() const { return _wplus; }
170
174 PDPtr WMinus() const { return _wminus; }
175
179 PDPtr Z0() const { return _z0; }
180
184 PDPtr higgs() const { return _higgs; }
185
189 void higgs(PDPtr in) {_higgs =in;}
191
195 void setWWHVertex(AbstractVVSVertexPtr in) {
196 _vertexWWH = in;
197 }
198
202 void lineShape(unsigned int in) {_shapeopt=in;}
203
207 unsigned int maxFlavour() const {return _maxflavour;}
208
209protected:
210
218 virtual void doinit();
220
221private:
222
227 MEfftoVH & operator=(const MEfftoVH &) = delete;
228
229private:
230
234 unsigned int _shapeopt;
235
239 unsigned int _maxflavour;
240
249
254
259
265
273 AbstractFFVVertexPtr _vertexFFW;
274
278 AbstractFFVVertexPtr _vertexFFZ;
279
283 AbstractVVSVertexPtr _vertexWWH;
285
289 Energy _mh;
290
294 Energy _wh;
295
299 GenericMassGeneratorPtr _hmass;
300
305};
306
307}
308
309#endif /* HERWIG_MEfftoVH_H */
The DrellYanBase class class provides a base class for the implemented of Drell-Yan type processes an...
Definition: DrellYanBase.h:23
The MEfftoVH class is the base class for processes.
Definition: MEfftoVH.h:25
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
double helicityME(vector< SpinorWaveFunction > &fin, vector< SpinorBarWaveFunction > &ain, vector< SpinorBarWaveFunction > &fout, vector< SpinorWaveFunction > &aout, bool me) const
Matrix element for .
virtual CrossSection dSigHatDR() const
Return the matrix element squared differential in the variables given by the last call to generateKin...
PDPtr WPlus() const
Access to the vector ParticleData objects.
Definition: MEfftoVH.h:169
void setWWHVertex(AbstractVVSVertexPtr in)
Set the pointer to the vector-vector-Higgs vertex.
Definition: MEfftoVH.h:195
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
unsigned int maxFlavour() const
Maximum flavour of the incoming partons.
Definition: MEfftoVH.h:207
AbstractFFVVertexPtr _vertexFFW
The vertices for the calculation of the matrix element.
Definition: MEfftoVH.h:273
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
PDPtr _higgs
The higgs bosom.
Definition: MEfftoVH.h:263
AbstractFFVVertexPtr _vertexFFZ
Vertex for fermion-fermion-Z.
Definition: MEfftoVH.h:278
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
AbstractVVSVertexPtr _vertexWWH
Vertex for vector-vector-Higgs.
Definition: MEfftoVH.h:283
PDPtr WMinus() const
Access to the data.
Definition: MEfftoVH.h:174
virtual void constructVertex(tSubProPtr)
Construct the vertex of spin correlations.
ProductionMatrixElement _me
Matrix element for spin correlations.
Definition: MEfftoVH.h:304
virtual void setKinematics()
Set the typed and momenta of the incoming and outgoing partons to be used in subsequent calls to me()...
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
virtual int nDim() const
The number of internal degrees of freedom used in the matrix element.
static void Init()
The standard Init function used to initialize the interfaces.
MEfftoVH()
The default constructor.
Definition: MEfftoVH.h:32
Energy _mh
On-shell mass for the higgs.
Definition: MEfftoVH.h:289
void higgs(PDPtr in)
Set the higgs data.
Definition: MEfftoVH.h:189
Energy _wh
On-shell width for the higgs.
Definition: MEfftoVH.h:294
MEfftoVH & operator=(const MEfftoVH &)=delete
The assignment operator is private and must never be called.
unsigned int _maxflavour
The allowed flavours of the incoming quarks.
Definition: MEfftoVH.h:239
PDPtr Z0() const
Access to the data.
Definition: MEfftoVH.h:179
virtual bool generateKinematics(const double *r)
Generate internal degrees of freedom given nDim() uniform random numbers in the interval .
GenericMassGeneratorPtr _hmass
The mass generator for the Higgs.
Definition: MEfftoVH.h:299
unsigned int _shapeopt
Defines the Higgs resonance shape.
Definition: MEfftoVH.h:234
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
void lineShape(unsigned int in)
Set the line shape treatment.
Definition: MEfftoVH.h:202
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
PDPtr higgs() const
Access to the higgs data.
Definition: MEfftoVH.h:184
PDPtr _wplus
The intermediate vector bosons.
Definition: MEfftoVH.h:248
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
The storage of the helicity amplitude expression for the matrix element of a hard process.
vector< DiagPtr > DiagramVector
-*- C++ -*-
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr