herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MEfftoffH.h
1// -*- C++ -*-
2#ifndef HERWIG_MEfftoffH_H
3#define HERWIG_MEfftoffH_H
4//
5// This is the declaration of the MEfftoffH class.
6//
7
8#include "HwMEBase.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 {
15
16using namespace ThePEG;
17
25class MEfftoffH: public HwMEBase {
26
27public:
28
33 _mh(), _wh(), _swap(false) {}
34
41 virtual unsigned int orderInAlphaS() const;
42
47 virtual unsigned int orderInAlphaEW() const;
48
56 virtual double me2() const;
57
61 virtual Energy2 scale() const;
62
70 virtual void setKinematics();
71
76 virtual int nDim() const;
77
86 virtual bool generateKinematics(const double * r);
87
92 virtual CrossSection dSigHatDR() const;
93
103
112 colourGeometries(tcDiagPtr diag) const;
113
119
120
121public:
122
130
136 void persistentInput(PersistentIStream & is, int version);
138
145 static void Init();
146
147protected:
148
159 double helicityME(vector<SpinorWaveFunction> & f1 ,
160 vector<SpinorWaveFunction> & f2 ,
161 vector<SpinorBarWaveFunction> & a1,
162 vector<SpinorBarWaveFunction> & a2,
163 bool swap1, bool swap2,
164 bool me) const;
165
173 PDPtr WPlus() const {return _wplus;}
174
178 PDPtr WMinus() const {return _wminus;}
179
183 PDPtr Z0() const {return _z0;}
184
188 PDPtr higgs() const {return _higgs;}
189
193 void higgs(PDPtr in) {_higgs=in;}
195
199 void setWWHVertex(AbstractVVSVertexPtr in) {
200 _vertexWWH = in;
201 }
202
206 void lineShape(unsigned int in) {_shapeopt=in;}
207
211 unsigned int process() const {return _process;}
212
216 bool swapOrder() {return _swap;}
217
221 void process(unsigned int in) {_process = in;}
222
226 unsigned int maxFlavour() const {return _maxflavour;}
227
231 unsigned int minFlavour() const {return _minflavour;}
232
233protected:
234
242 virtual void doinit();
244
245private:
246
251 MEfftoffH & operator=(const MEfftoffH &) = delete;
252
253private:
254
258 unsigned int _shapeopt;
259
263 unsigned int _maxflavour;
264
268 unsigned int _minflavour;
269
273 unsigned int _process;
274
283
288
293
299
307 AbstractFFVVertexPtr _vertexFFW;
308
312 AbstractFFVVertexPtr _vertexFFZ;
313
317 AbstractVVSVertexPtr _vertexWWH;
319
323 Energy _mh;
324
328 Energy _wh;
329
333 GenericMassGeneratorPtr _hmass;
334
335
340
344 bool _swap;
345};
346
347}
348
349#endif /* HERWIG_MEfftoffH_H */
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35
The MEfftoffH class is the base class for vector boson fusion type processes in Herwig.
Definition: MEfftoffH.h:25
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
unsigned int minFlavour() const
Minimum flavour of the incoming partons.
Definition: MEfftoffH.h:231
PDPtr WMinus() const
Access to the data.
Definition: MEfftoffH.h:178
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
bool swapOrder()
Whether momenta are swapped.
Definition: MEfftoffH.h:216
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: MEfftoffH.h:333
unsigned int _process
Whether to include $WW$ and $ZZ$ processes or both.
Definition: MEfftoffH.h:273
virtual int nDim() const
The number of internal degrees of freedom used in the matrix element.
void lineShape(unsigned int in)
Set the line shape treatment.
Definition: MEfftoffH.h:206
ProductionMatrixElement _me
Matrix element for spin correlations.
Definition: MEfftoffH.h:339
unsigned int _shapeopt
Defines the Higgs resonance shape.
Definition: MEfftoffH.h:258
virtual CrossSection dSigHatDR() const
Return the matrix element squared differential in the variables given by the last call to generateKin...
double helicityME(vector< SpinorWaveFunction > &f1, vector< SpinorWaveFunction > &f2, vector< SpinorBarWaveFunction > &a1, vector< SpinorBarWaveFunction > &a2, bool swap1, bool swap2, bool me) const
Matrix element for .
virtual void setKinematics()
Set the typed and momenta of the incoming and outgoing partons to be used in subsequent calls to me()...
bool _swap
if order swaped
Definition: MEfftoffH.h:344
PDPtr _wplus
The intermediate vector bosons.
Definition: MEfftoffH.h:282
static void Init()
The standard Init function used to initialize the interfaces.
unsigned int _maxflavour
Maximum flavour of the quarks involved.
Definition: MEfftoffH.h:263
PDPtr Z0() const
Access to the data.
Definition: MEfftoffH.h:183
AbstractFFVVertexPtr _vertexFFZ
Vertex for fermion-fermion-Z.
Definition: MEfftoffH.h:312
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
MEfftoffH & operator=(const MEfftoffH &)=delete
The assignment operator is private and must never be called.
PDPtr _higgs
Higgs boson.
Definition: MEfftoffH.h:297
unsigned int _minflavour
Minimum flavour of the quarks involved.
Definition: MEfftoffH.h:268
Energy _wh
On-shell width for the higgs.
Definition: MEfftoffH.h:328
void higgs(PDPtr in)
Set the Higgs boson.
Definition: MEfftoffH.h:193
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
PDPtr WPlus() const
Access to the vector ParticleData objects.
Definition: MEfftoffH.h:173
Energy _mh
On-shell mass for the higgs.
Definition: MEfftoffH.h:323
void setWWHVertex(AbstractVVSVertexPtr in)
Set the pointer to the vector-vector-Higgs vertex.
Definition: MEfftoffH.h:199
MEfftoffH()
The default constructor.
Definition: MEfftoffH.h:32
void process(unsigned int in)
Which process to generate.
Definition: MEfftoffH.h:221
PDPtr higgs() const
Access to the Higgs boson.
Definition: MEfftoffH.h:188
unsigned int process() const
Which process to generate.
Definition: MEfftoffH.h:211
unsigned int maxFlavour() const
Maximum flavour of the incoming partons.
Definition: MEfftoffH.h:226
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
AbstractVVSVertexPtr _vertexWWH
Vertex for vector-vector-Higgs.
Definition: MEfftoffH.h:317
virtual void constructVertex(tSubProPtr)
Construct the vertex of spin correlations.
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
AbstractFFVVertexPtr _vertexFFW
The vertices for the calculation of the matrix element.
Definition: MEfftoffH.h:307
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