herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
SMHiggsWidthGenerator.h
1 // -*- C++ -*-
2 //
3 // SMHiggsWidthGenerator.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_SMHiggsWidthGenerator_H
10 #define HERWIG_SMHiggsWidthGenerator_H
11 //
12 // This is the declaration of the SMHiggsWidthGenerator class.
13 //
14 
15 #include "GenericWidthGenerator.h"
16 
17 namespace Herwig {
18 using namespace ThePEG;
19 
28 
29 public:
30 
35  : widthopt_(2), offshell_(10.), mw_(ZERO), mz_(ZERO), gamw_(ZERO),
36  gamz_(ZERO), qmass_(7,ZERO), lmass_(3,ZERO),
37  sw2_(0.), ca_(0.), cf_(0.), qlast_(ZERO)
38  {}
39 
40 private:
41 
42 
49  virtual Energy width(const ParticleData &, Energy m) const;
50 
54  virtual DecayMap rate(const ParticleData &) const;
55 
59  virtual DecayMap rate(const Particle &);
61 
66  virtual pair<Energy,Energy> width(Energy, const ParticleData &) const;
67 
73  Energy partialWidth(int imode, Energy mH) const;
74 
75 public:
76 
83  void persistentOutput(PersistentOStream & os) const;
84 
90  void persistentInput(PersistentIStream & is, int version);
92 
99  static void Init();
100 
101 protected:
102 
109  virtual IBPtr clone() const;
110 
115  virtual IBPtr fullclone() const;
117 
118 protected:
119 
128  double HwDoubleBW(double x, double y) const;
129 
134  Complex HwW2(double tau) const;
136 
141  DecayMap branching(Energy scale, const ParticleData &) const;
142 
143 protected:
144 
152  virtual void doinit();
154 
155 
156 private:
157 
162  SMHiggsWidthGenerator & operator=(const SMHiggsWidthGenerator &) = delete;
163 
164 private:
165 
169  unsigned int widthopt_;
170 
174  double offshell_;
175 
183  Energy mw_;
184 
188  Energy mz_;
189 
193  Energy gamw_;
194 
198  Energy gamz_;
199 
203  vector<Energy> qmass_;
204 
208  vector<Energy> lmass_;
209 
213  double sw2_;
214 
218  double ca_;
219 
223  double cf_;
225 
233  mutable Energy qlast_;
234 
238  mutable Energy lambdaQCD_;
239 
243  mutable double alphaEM_;
244 
248  mutable double alphaS_;
249 
253  mutable double cd_;
254 
258  mutable Energy2 gfermiinv_;
259 
263  mutable double gam0_;
264 
268  mutable double beta0_;
270 
274  map<int,int> locMap_;
275 };
276 
277 }
278 
279 #endif /* HERWIG_SMHiggsWidthGenerator_H */
SMHiggsWidthGenerator()
The default constructor.
double ca_
The colour factor.
Energy2 gfermiinv_
Fermi constant.
std::complex< double > Complex
double gam0_
The anomalous dimension for .
double beta0_
The function coefficient for .
vector< Energy > lmass_
Masses of the leptons.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Energy mz_
Mass of the Z boson.
Energy qlast_
Storage of parameters for speed.
Energy gamz_
Width of the Z boson.
vector< Energy > qmass_
Masses of the quarks.
map< int, int > locMap_
Map between location in decay modes vector and code here.
Energy gamw_
Width of the W boson.
double offshell_
Number of times the width the Higgs is allowed to be off-shell.
The GenericWidthGenerator class is designed to automatically calculate the running width for a given ...
Energy mw_
Particle properties extracted at initialization.
double cd_
Correction factor for .
unsigned int widthopt_
Type of the Higgs width used (options: fixed, LO running, NLL corrected running)
-*- C++ -*-
double alphaS_
The strong coupling.
double cf_
The colour factor.
The SMHiggsWidthGenerator class calculates the width for the Standard Model Higgs boson...
double alphaEM_
The electromagnetic coupling.
constexpr ZeroUnit ZERO