herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
14 namespace Herwig {
15 using namespace ThePEG;
16 
25 class MEfftoVH: public DrellYanBase {
26 
27 public:
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 
101  virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
102 
111  colourGeometries(tcDiagPtr diag) const;
112 
116  virtual void constructVertex(tSubProPtr);
118 
119 
120 public:
121 
128  void persistentOutput(PersistentOStream & os) const;
129 
135  void persistentInput(PersistentIStream & is, int version);
137 
144  static void Init();
145 
146 protected:
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 
209 protected:
210 
218  virtual void doinit();
220 
221 private:
222 
227  MEfftoVH & operator=(const MEfftoVH &) = delete;
228 
229 private:
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 */
unsigned int maxFlavour() const
Maximum flavour of the incoming partons.
Definition: MEfftoVH.h:207
ProductionMatrixElement _me
Matrix element for spin correlations.
Definition: MEfftoVH.h:304
The DrellYanBase class class provides a base class for the implemented of Drell-Yan type processes an...
Definition: DrellYanBase.h:23
AbstractVVSVertexPtr _vertexWWH
Vertex for vector-vector-Higgs.
Definition: MEfftoVH.h:283
AbstractFFVVertexPtr _vertexFFZ
Vertex for fermion-fermion-Z.
Definition: MEfftoVH.h:278
PDPtr higgs() const
Access to the higgs data.
Definition: MEfftoVH.h:184
GenericMassGeneratorPtr _hmass
The mass generator for the Higgs.
Definition: MEfftoVH.h:299
PDPtr Z0() const
Access to the data.
Definition: MEfftoVH.h:179
AbstractFFVVertexPtr _vertexFFW
The vertices for the calculation of the matrix element.
Definition: MEfftoVH.h:273
Energy _mh
On-shell mass for the higgs.
Definition: MEfftoVH.h:289
The storage of the helicity amplitude expression for the matrix element of a hard process...
unsigned int _maxflavour
The allowed flavours of the incoming quarks.
Definition: MEfftoVH.h:239
void higgs(PDPtr in)
Set the higgs data.
Definition: MEfftoVH.h:189
MEfftoVH()
The default constructor.
Definition: MEfftoVH.h:32
The MEfftoVH class is the base class for processes.
Definition: MEfftoVH.h:25
PDPtr _wplus
The intermediate vector bosons.
Definition: MEfftoVH.h:248
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr
unsigned int _shapeopt
Defines the Higgs resonance shape.
Definition: MEfftoVH.h:234
vector< DiagPtr > DiagramVector
PDPtr WMinus() const
Access to the data.
Definition: MEfftoVH.h:174
void lineShape(unsigned int in)
Set the line shape treatment.
Definition: MEfftoVH.h:202
-*- C++ -*-
PDPtr WPlus() const
Access to the vector ParticleData objects.
Definition: MEfftoVH.h:169
PDPtr _wminus
Definition: MEfftoVH.h:253
void setWWHVertex(AbstractVVSVertexPtr in)
Set the pointer to the vector-vector-Higgs vertex.
Definition: MEfftoVH.h:195
PDPtr _higgs
The higgs bosom.
Definition: MEfftoVH.h:263
Energy _wh
On-shell width for the higgs.
Definition: MEfftoVH.h:294