HiggsKvKfgen.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2014 HEPfit Collaboration
3  * All rights reserved.
4  *
5  * For the licensing terms see doc/COPYING.
6  */
7 
8 #include "HiggsKvKfgen.h"
9 
10 const std::string HiggsKvKfgen::HKvKfgenvars[NHKvKfgenvars] = {
11  "Kv", "Ku", "Kd", "Kl", "BrHinv"
12 };
13 
15 : NPbase()
16 {
17  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("Kv", boost::cref(Kv)));
18  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("Ku", boost::cref(Ku)));
19  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("Kd", boost::cref(Kd)));
20  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("Kl", boost::cref(Kl)));
21  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("BrHinv", boost::cref(BrHinv)));
22 }
23 
24 void HiggsKvKfgen::setParameter(const std::string name, const double& value)
25 {
26  if (name.compare("Kv") == 0)
27  Kv = value;
28  else if (name.compare("Ku") == 0)
29  Ku = value;
30  else if (name.compare("Kd") == 0)
31  Kd = value;
32  else if (name.compare("Kl") == 0)
33  Kl = value;
34  else if (name.compare("BrHinv") == 0)
35  BrHinv = value;
36  else
37  NPbase::setParameter(name, value);
38 }
39 
40 bool HiggsKvKfgen::CheckParameters(const std::map<std::string, double>& DPars)
41 {
42  for (int i = 0; i < NHKvKfgenvars; i++) {
43  if (DPars.find(HKvKfgenvars[i]) == DPars.end()) {
44  std::cout << "missing mandatory HiggsKvKfgen parameter " << HKvKfgenvars[i] << std::endl;
45  return false;
46  }
47  }
48  return (NPbase::CheckParameters(DPars));
49 }
50 
52 
53 double HiggsKvKfgen::obliqueS() const
54 {
55  double Lambda;
56  if (fabs(1.0 - Kv * Kv) < pow(10.0, -32.0))
57  Lambda = pow(10.0, 19.0);
58  else
59  Lambda = 4.0 * M_PI * v() / sqrt(fabs(1.0 - Kv * Kv));
60 
61  return ( 1.0 / 12.0 / M_PI * (1.0 - Kv * Kv) * log(Lambda * Lambda / mHl / mHl));
62 }
63 
64 double HiggsKvKfgen::obliqueT() const
65 {
66  double Lambda;
67  double cW2_SM = trueSM.cW2();
68  if (fabs(1.0 - Kv * Kv) < pow(10.0, -32.0))
69  Lambda = pow(10.0, 19.0);
70  else
71  Lambda = 4.0 * M_PI * v() / sqrt(fabs(1.0 - Kv * Kv));
72 
73  return ( -3.0 / 16.0 / M_PI / cW2_SM * (1.0 - Kv * Kv) * log(Lambda * Lambda / mHl / mHl));
74 }
75 
76 double HiggsKvKfgen::obliqueU() const
77 {
78  return 0.0;
79 }
80 
82 
83 double HiggsKvKfgen::muggH(const double sqrt_s) const
84 {
85  return (computeKg(sqrt_s) * computeKg(sqrt_s));
86 }
87 
88 double HiggsKvKfgen::muVBF(const double sqrt_s) const
89 {
90  double sigmaWF_SM = trueSM.computeSigmaWF(sqrt_s);
91  double sigmaZF_SM = trueSM.computeSigmaZF(sqrt_s);
92  double sigmaZWF_SM = trueSM.computeSigmaZWF(sqrt_s);
93  return (computeKW() * computeKW() * sigmaWF_SM
94  + computeKZ() * computeKZ() * sigmaZF_SM
95  + computeKW() * computeKZ() * sigmaZWF_SM)
96  / (sigmaWF_SM + sigmaZF_SM + sigmaZWF_SM);
97 }
98 
99 double HiggsKvKfgen::muWH(const double sqrt_s) const
100 {
101  return (computeKW() * computeKW());
102 }
103 
104 double HiggsKvKfgen::muZH(const double sqrt_s) const
105 {
106  return (computeKZ() * computeKZ());
107 }
108 
109 double HiggsKvKfgen::muVH(const double sqrt_s) const
110 {
111  double sigmaWH_SM = trueSM.computeSigmaWH(sqrt_s);
112  double sigmaZH_SM = trueSM.computeSigmaZH(sqrt_s);
113  return ((computeKW() * computeKW() * sigmaWH_SM
114  + computeKZ() * computeKZ() * sigmaZH_SM)
115  / (sigmaWH_SM + sigmaZH_SM));
116 }
117 
118 double HiggsKvKfgen::muVBFpVH(const double sqrt_s) const
119 {
120  double sigmaWH_SM = trueSM.computeSigmaWH(sqrt_s);
121  double sigmaZH_SM = trueSM.computeSigmaZH(sqrt_s);
122  double sigmaWF_SM = trueSM.computeSigmaWF(sqrt_s);
123  double sigmaZF_SM = trueSM.computeSigmaZF(sqrt_s);
124  double sigmaZWF_SM = trueSM.computeSigmaZWF(sqrt_s);
125  double sigmaVBF_SM = sigmaWF_SM + sigmaZF_SM + sigmaZWF_SM;
126 
127  double sigmaWH = muWH(sqrt_s) * sigmaWH_SM;
128  double sigmaZH = muZH(sqrt_s) * sigmaZH_SM;
129  double sigmaVBF = muVBF(sqrt_s) * sigmaVBF_SM;
130 
131  return ((sigmaWH + sigmaZH + sigmaVBF) / (sigmaWH_SM + sigmaZH_SM + sigmaVBF_SM));
132 }
133 
134 double HiggsKvKfgen::muttH(const double sqrt_s) const
135 {
136  return (computeKt() * computeKt());
137 }
138 
139 double HiggsKvKfgen::muggHpttH(const double sqrt_s) const
140 {
141  double sigmaggH_SM = trueSM.computeSigmaggH(sqrt_s);
142  double sigmattH_SM = trueSM.computeSigmattH(sqrt_s);
143 
144  double sigmaggH = muggH(sqrt_s) * sigmaggH_SM;
145  double sigmattH = muttH(sqrt_s) * sigmattH_SM;
146 
147  return ((sigmaggH + sigmattH) / (sigmaggH_SM + sigmattH_SM));
148 }
149 
151 {
152  double gtt_SM = trueSM.computeGammaHgg_tt();
153  double gbb_SM = trueSM.computeGammaHgg_bb();
154  double gtb_SM = trueSM.computeGammaHgg_tb();
155  double Ggg_over_GggSM = (computeKt() * computeKt() * gtt_SM
156  + computeKb() * computeKb() * gbb_SM
157  + computeKt() * computeKb() * gtb_SM) / (gtt_SM + gbb_SM + gtb_SM);
158  return (Ggg_over_GggSM / computeGammaTotalRatio());
159 }
160 
162 {
163  return (computeKW() * computeKW() / computeGammaTotalRatio());
164 }
165 
167 {
168  return (computeKZ() * computeKZ() / computeGammaTotalRatio());
169 }
170 
172 {
174 }
175 
177 {
179 }
180 
182 {
184 }
185 
187 {
188  return (computeKc() * computeKc() / computeGammaTotalRatio());
189 }
190 
192 {
193  return (computeKb() * computeKb() / computeGammaTotalRatio());
194 }
195 
197 {
198  double gtt_SM = trueSM.computeGammaHgg_tt();
199  double gbb_SM = trueSM.computeGammaHgg_bb();
200  double gtb_SM = trueSM.computeGammaHgg_tb();
201  double Ggg_over_GggSM = (computeKt() * computeKt() * gtt_SM
202  + computeKb() * computeKb() * gbb_SM
203  + computeKt() * computeKb() * gtb_SM) / (gtt_SM + gbb_SM + gtb_SM);
204  return ((Ggg_over_GggSM * trueSM.computeBrHtogg()
212  / (1.0 - BrHinv));
213 }
214 
216 
217 double HiggsKvKfgen::computeKg(const double sqrt_s) const
218 {
219  if (sqrt_s == 1.96)
220  return computeKt();
221 
222  double sigmatt_SM = trueSM.computeSigmaggH_tt(sqrt_s);
223  double sigmabb_SM = trueSM.computeSigmaggH_bb(sqrt_s);
224  double sigmatb_SM = trueSM.computeSigmaggH_tb(sqrt_s);
225  return (sqrt((computeKt() * computeKt() * sigmatt_SM
226  + computeKb() * computeKb() * sigmabb_SM
227  + computeKt() * computeKb() * sigmatb_SM)
228  / (sigmatt_SM + sigmabb_SM + sigmatb_SM)));
229 }
230 
232 {
233  return Kv;
234 }
235 
237 {
238  return Kv;
239 }
240 
242 {
243  double gtt_SM = trueSM.computeGammaHZga_tt();
244  double gWW_SM = trueSM.computeGammaHZga_WW();
245  double gtW_SM = trueSM.computeGammaHZga_tW();
246  return (sqrt((computeKt() * computeKt() * gtt_SM
247  + computeKW() * computeKW() * gWW_SM
248  + computeKt() * computeKW() * gtW_SM) / (gtt_SM + gWW_SM + gtW_SM)));
249 }
250 
252 {
253  double gtt_SM = trueSM.computeGammaHgaga_tt();
254  double gWW_SM = trueSM.computeGammaHgaga_WW();
255  double gtW_SM = trueSM.computeGammaHgaga_tW();
256  return (sqrt((computeKt() * computeKt() * gtt_SM
257  + computeKW() * computeKW() * gWW_SM
258  + computeKt() * computeKW() * gtW_SM) / (gtt_SM + gWW_SM + gtW_SM)));
259 }
260 
262 {
263  return Kl;
264 }
265 
267 {
268  return Ku;
269 }
270 
272 {
273  return Ku;
274 }
275 
277 {
278  return Kd;
279 }
280 
281 
double computeGammaHgg_tt() const
The top loop contribution to in the Standard Model.
double computeGammaHgg_tb() const
The top-bottom interference contribution to in the Standard Model.
virtual double computeGammaTotalRatio() const
The ratio of the in the current model and in the Standard Model.
virtual double computeKW() const
A method to compute the ratio of the coupling in the current model and in the SM.
virtual double muWH(const double sqrt_s) const
The ratio between the W-Higgs associated production cross-section in the current model and in the St...
double computeGammaHgaga_tt() const
The top loop contribution to in the Standard Model.
virtual double BrHWWRatio() const
The ratio of the Br in the current model and in the Standard Model.
double computeSigmaZH(const double sqrt_s) const
The ZH production cross section in the Standard Model.
The auxiliary base model class for other model classes.
Definition: NPbase.h:66
virtual double computeKc() const
A method to compute the ratio of the coupling in the current model and in the SM.
virtual double BrHccRatio() const
The ratio of the Br in the current model and in the Standard Model.
double computeGammaHgg_bb() const
The bottom loop contribution to in the Standard Model.
double computeSigmaggH_tt(const double sqrt_s) const
The square of the top-quark contribution to the ggH cross section in the Standard Model...
double computeSigmaZF(const double sqrt_s) const
The Z fusion contribution to higgs-production cross section in the Standard Model.
virtual double computeKgaga() const
A method to compute the ratio of the coupling in the current model and in the SM.
double computeGammaHZga_WW() const
The loop contribution to in the Standard Model. Currently it returns the value of tab 41 in ref...
virtual double computeKg(const double sqrt_s) const
A method to compute the ratio of the coupling in the current model and in the SM.
complex pow(const complex &z1, const complex &z2)
double Kl
The factor rescaling all Higgs couplings to leptons with respect to the SM.
Definition: HiggsKvKfgen.h:389
double computeGammaHZga_tW() const
The mixed loop contribution to in the Standard Model.
double computeGammaHgaga_WW() const
The loop contribution to in the Standard Model.
virtual double computeKt() const
A method to compute the ratio of the coupling in the current model and in the SM.
virtual double BrHZZRatio() const
The ratio of the Br in the current model and in the Standard Model.
StandardModel trueSM
Definition: NPbase.h:543
virtual double muVBF(const double sqrt_s) const
The ratio between the vector-boson fusion Higgs production cross-section in the current model and in...
double computeBrHtoWW() const
The Br in the Standard Model.
virtual double muZH(const double sqrt_s) const
The ratio between the Z-Higgs associated production cross-section in the current model and in the St...
double computeSigmaWH(const double sqrt_s) const
The WH production cross section in the Standard Model.
double computeBrHtoZZ() const
The Br in the Standard Model.
double computeSigmattH(const double sqrt_s) const
The ttH production cross section in the Standard Model.
double computeBrHtobb() const
The Br in the Standard Model.
virtual double muttH(const double sqrt_s) const
The ratio between the t-tbar-Higgs associated production cross-section in the current model and in t...
virtual double muVH(const double sqrt_s) const
The ratio between the WH+ZH associated production cross-section in the current model and in the Stan...
double mHl
The Higgs mass in GeV.
HiggsKvKfgen()
The default constructor.
double computeSigmaggH_bb(const double sqrt_s) const
The square of the bottom-quark contribution to the ggH cross section in the Standard Model...
static const std::string HKvKfgenvars[NHKvKfgenvars]
A string array containing the labels of the model parameters in HiggsKvKf.
Definition: HiggsKvKfgen.h:85
double computeSigmaWF(const double sqrt_s) const
The W fusion contribution to higgs-production cross section in the Standard Model.
double Kd
The factor rescaling all Higgs couplings to down-type fermions with respect to the SM...
Definition: HiggsKvKfgen.h:388
static const int NHKvKfgenvars
The number of the model parameters in HiggsKvKf.
Definition: HiggsKvKfgen.h:80
double computeBrHtogg() const
The Br in the Standard Model.
virtual double v() const
The Higgs vacuum expectation value. where is the Fermi constant, measured through muon decays...
double Kv
The factor rescaling all Higgs couplings to vector bosons with respect to the SM. ...
Definition: HiggsKvKfgen.h:386
double computeBrHtotautau() const
The Br in the Standard Model.
double Ku
The factor rescaling all Higgs couplings to up-type fermions with respect to the SM.
Definition: HiggsKvKfgen.h:387
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of StandardModel.
virtual double computeKb() const
A method to compute the ratio of the coupling in the current model and in the SM.
virtual double BrHtautauRatio() const
The ratio of the Br in the current model and in the Standard Model.
virtual double BrHggRatio() const
The ratio of the Br in the current model and in the Standard Model.
virtual double obliqueS() const
The oblique parameter .
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of HiggsKvKf.
virtual double computeKtau() const
A method to compute the ratio of the coupling in the current model and in the SM.
virtual double computeKZ() const
A method to compute the ratio of the coupling in the current model and in the SM.
virtual double BrHbbRatio() const
The ratio of the Br in the current model and in the Standard Model.
double computeSigmaggH_tb(const double sqrt_s) const
The top-bottom interference contribution to the ggH cross section in the Standard Model...
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
A method to check if all the mandatory parameters for StandardModel have been provided in model initi...
double computeGammaHgaga_tW() const
The mixed loop contribution to in the Standard Model.
double computeBrHtoZga() const
The Br in the Standard Model.
virtual double BrHgagaRatio() const
The ratio of the Br in the current model and in the Standard Model.
virtual double obliqueT() const
The oblique parameter .
double BrHinv
The branching ratio of invisible Higgs decays.
Definition: HiggsKvKfgen.h:390
virtual double muggH(const double sqrt_s) const
The ratio between the gluon-gluon fusion Higgs production cross-section in the current model and in ...
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
A method to check if all the mandatory parameters for HiggsKvKfgen have been provided in model initia...
complex log(const complex &z)
virtual double BrHZgaRatio() const
The ratio of the Br in the current model and in the Standard Model.
double computeSigmaggH(const double sqrt_s) const
The ggH cross section in the Standard Model.
double computeGammaHZga_tt() const
The top loop contribution to in the Standard Model.
double computeSigmaZWF(const double sqrt_s) const
The Z W interference fusion contribution to higgs-production cross section in the Standard Model...
double computeBrHtocc() const
The Br in the Standard Model.
virtual double cW2(const double Mw_i) const
The square of the cosine of the weak mixing angle in the on-shell scheme, denoted as ...
virtual double computeKZga() const
A method to compute the ratio of the coupling in the current model and in the SM.
virtual double muggHpttH(const double sqrt_s) const
The ratio between the sum of gluon-gluon fusion and t-tbar-Higgs associated production cross-section...
virtual double obliqueU() const
The oblique parameter .
double computeBrHtogaga() const
The Br in the Standard Model.
virtual double muVBFpVH(const double sqrt_s) const
The ratio between the sum of VBF and WH+ZH associated production cross-section in the current model ...
std::map< std::string, boost::reference_wrapper< const double > > ModelParamMap
Definition: Model.h:200
complex sqrt(const complex &z)