herwig is hosted by Hepforge, IPPP Durham
Herwig  7.1.5
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 
14 namespace Herwig {
15 
16 using namespace ThePEG;
17 
25 class MEfftoffH: public HwMEBase {
26 
27 public:
28 
32  MEfftoffH() : _shapeopt(2), _maxflavour(5), _minflavour(1), _process(0),
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 
102  virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
103 
112  colourGeometries(tcDiagPtr diag) const;
113 
117  virtual void constructVertex(tSubProPtr);
119 
120 
121 public:
122 
129  void persistentOutput(PersistentOStream & os) const;
130 
136  void persistentInput(PersistentIStream & is, int version);
138 
145  static void Init();
146 
147 protected:
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 
233 protected:
234 
242  virtual void doinit();
244 
245 private:
246 
252 
257  MEfftoffH & operator=(const MEfftoffH &) = delete;
258 
259 private:
260 
264  unsigned int _shapeopt;
265 
269  unsigned int _maxflavour;
270 
274  unsigned int _minflavour;
275 
279  unsigned int _process;
280 
289 
294 
299 
305 
313  AbstractFFVVertexPtr _vertexFFW;
314 
318  AbstractFFVVertexPtr _vertexFFZ;
319 
323  AbstractVVSVertexPtr _vertexWWH;
325 
329  Energy _mh;
330 
334  Energy _wh;
335 
339  GenericMassGeneratorPtr _hmass;
340 
341 
346 
350  bool _swap;
351 };
352 
353 }
354 
355 #include "ThePEG/Utilities/ClassTraits.h"
356 
357 namespace ThePEG {
358 
363 template <>
364 struct BaseClassTrait<Herwig::MEfftoffH,1> {
366  typedef Herwig::HwMEBase NthBase;
367 };
368 
371 template <>
372 struct ClassTraits<Herwig::MEfftoffH>
373  : public ClassTraitsBase<Herwig::MEfftoffH> {
375  static string className() { return "Herwig::MEfftoffH"; }
376 };
377 
380 }
381 
382 #endif /* HERWIG_MEfftoffH_H */
void setWWHVertex(AbstractVVSVertexPtr in)
Set the pointer to the vector-vector-Higgs vertex.
Definition: MEfftoffH.h:199
unsigned int _shapeopt
Defines the Higgs resonance shape.
Definition: MEfftoffH.h:264
PDPtr Z0() const
Access to the data.
Definition: MEfftoffH.h:183
AbstractFFVVertexPtr _vertexFFZ
Vertex for fermion-fermion-Z.
Definition: MEfftoffH.h:318
unsigned int _process
Whether to include $WW$ and $ZZ$ processes or both.
Definition: MEfftoffH.h:279
MEfftoffH()
The default constructor.
Definition: MEfftoffH.h:32
Energy _mh
On-shell mass for the higgs.
Definition: MEfftoffH.h:329
void process(unsigned int in)
Which process to generate.
Definition: MEfftoffH.h:221
void higgs(PDPtr in)
Set the Higgs boson.
Definition: MEfftoffH.h:193
The MEfftoffH class is the base class for vector boson fusion type processes in Herwig.
Definition: MEfftoffH.h:25
unsigned int _maxflavour
Maximum flavour of the quarks involved.
Definition: MEfftoffH.h:269
Energy _wh
On-shell width for the higgs.
Definition: MEfftoffH.h:334
void lineShape(unsigned int in)
Set the line shape treatment.
Definition: MEfftoffH.h:206
bool _swap
if order swaped
Definition: MEfftoffH.h:350
The storage of the helicity amplitude expression for the matrix element of a hard process...
unsigned int maxFlavour() const
Maximum flavour of the incoming partons.
Definition: MEfftoffH.h:226
unsigned int process() const
Which process to generate.
Definition: MEfftoffH.h:211
unsigned int _minflavour
Minimum flavour of the quarks involved.
Definition: MEfftoffH.h:274
AbstractVVSVertexPtr _vertexWWH
Vertex for vector-vector-Higgs.
Definition: MEfftoffH.h:323
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr
static AbstractClassDescription< MEfftoffH > initMEfftoffH
The static object used to initialize the description of this class.
Definition: MEfftoffH.h:251
ProductionMatrixElement _me
Matrix element for spin correlations.
Definition: MEfftoffH.h:345
PDPtr _higgs
Higgs boson.
Definition: MEfftoffH.h:303
PDPtr WMinus() const
Access to the data.
Definition: MEfftoffH.h:178
GenericMassGeneratorPtr _hmass
The mass generator for the Higgs.
Definition: MEfftoffH.h:339
PDPtr WPlus() const
Access to the vector ParticleData objects.
Definition: MEfftoffH.h:173
PDPtr higgs() const
Access to the Higgs boson.
Definition: MEfftoffH.h:188
vector< DiagPtr > DiagramVector
-*- C++ -*-
PDPtr _wplus
The intermediate vector bosons.
Definition: MEfftoffH.h:288
AbstractFFVVertexPtr _vertexFFW
The vertices for the calculation of the matrix element.
Definition: MEfftoffH.h:313
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:37
unsigned int minFlavour() const
Minimum flavour of the incoming partons.
Definition: MEfftoffH.h:231
bool swapOrder()
Whether momenta are swapped.
Definition: MEfftoffH.h:216