herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
17namespace Herwig {
18using namespace ThePEG;
19
28
29public:
30
35 : widthopt_(2), offshell_(10.), mw_(ZERO), mz_(ZERO), gamw_(ZERO),
37 sw2_(0.), ca_(0.), cf_(0.), qlast_(ZERO)
38 {}
39
40private:
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
75public:
76
84
90 void persistentInput(PersistentIStream & is, int version);
92
99 static void Init();
100
101protected:
102
109 virtual IBPtr clone() const;
110
115 virtual IBPtr fullclone() const;
117
118protected:
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
143protected:
144
152 virtual void doinit();
154
155
156private:
157
163
164private:
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 */
The GenericWidthGenerator class is designed to automatically calculate the running width for a given ...
The SMHiggsWidthGenerator class calculates the width for the Standard Model Higgs boson.
Energy gamw_
Width of the W boson.
double alphaEM_
The electromagnetic coupling.
unsigned int widthopt_
Type of the Higgs width used (options: fixed, LO running, NLL corrected running)
Energy mw_
Particle properties extracted at initialization.
double cd_
Correction factor for .
SMHiggsWidthGenerator & operator=(const SMHiggsWidthGenerator &)=delete
The assignment operator is private and must never be called.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Energy mz_
Mass of the Z boson.
virtual DecayMap rate(const ParticleData &) const
Return decay map for the given particle type.
Energy partialWidth(int imode, Energy mH) const
Calculate the partial width for a given mode.
double offshell_
Number of times the width the Higgs is allowed to be off-shell.
virtual DecayMap rate(const Particle &)
Return a decay map for a given Particle instance.
vector< Energy > lmass_
Masses of the leptons.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
static void Init()
The standard Init function used to initialize the interfaces.
virtual Energy width(const ParticleData &, Energy m) const
Given a particle type and a mass of an instance of that particle type, calculate a width.
virtual IBPtr clone() const
Make a simple clone of this object.
vector< Energy > qmass_
Masses of the quarks.
SMHiggsWidthGenerator()
The default constructor.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
double beta0_
The function coefficient for .
Complex HwW2(double tau) const
Calculate a loop function for the triangle vertex GGH/AAH.
Energy qlast_
Storage of parameters for speed.
double gam0_
The anomalous dimension for .
DecayMap branching(Energy scale, const ParticleData &) const
Return the branching ratios at the given scale.
map< int, int > locMap_
Map between location in decay modes vector and code here.
double HwDoubleBW(double x, double y) const
Calculates the double Breit-Wigner Integral a-la FORTRAN HERWIG.
virtual pair< Energy, Energy > width(Energy, const ParticleData &) const
Return the total width and the sum of the partial widths for modes which are used.
Energy gamz_
Width of the Z boson.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
double alphaS_
The strong coupling.
-*- C++ -*-
std::complex< double > Complex
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
constexpr ZeroUnit ZERO