HiggsKvKf.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 "HiggsKvKf.h"
9 
10 const std::string HiggsKvKf::HKvKfvars[NHKvKfvars] = {
11  "Kv", "Kf", "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> >("Kf", boost::cref(Kf)));
19  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("BrHinv", boost::cref(BrHinv)));
20 }
21 
22 void HiggsKvKf::setParameter(const std::string name, const double& value)
23 {
24  if (name.compare("Kv") == 0)
25  Kv = value;
26  else if (name.compare("Kf") == 0)
27  Kf = value;
28  else if (name.compare("BrHinv") == 0)
29  BrHinv = value;
30  else
31  NPbase::setParameter(name, value);
32 }
33 
34 bool HiggsKvKf::CheckParameters(const std::map<std::string, double>& DPars)
35 {
36  for (int i = 0; i < NHKvKfvars; i++) {
37  if (DPars.find(HKvKfvars[i]) == DPars.end()) {
38  std::cout << "missing mandatory HiggsKvKf parameter " << HKvKfvars[i] << std::endl;
39  return false;
40  }
41  }
42  return (NPbase::CheckParameters(DPars));
43 }
44 
46 
47 double HiggsKvKf::obliqueS() const
48 {
49  double Lambda;
50  if (fabs(1.0 - Kv * Kv) < pow(10.0, -32.0))
51  Lambda = pow(10.0, 19.0);
52  else
53  Lambda = 4.0 * M_PI * v() / sqrt(fabs(1.0 - Kv * Kv));
54 
55  return ( 1.0 / 12.0 / M_PI * (1.0 - Kv * Kv) * log(Lambda * Lambda / mHl / mHl));
56 }
57 
58 double HiggsKvKf::obliqueT() const
59 {
60  double Lambda;
61  double cW2_SM = trueSM.cW2();
62  if (fabs(1.0 - Kv * Kv) < pow(10.0, -32.0))
63  Lambda = pow(10.0, 19.0);
64  else
65  Lambda = 4.0 * M_PI * v() / sqrt(fabs(1.0 - Kv * Kv));
66 
67  return ( -3.0 / 16.0 / M_PI / cW2_SM * (1.0 - Kv * Kv) * log(Lambda * Lambda / mHl / mHl));
68 }
69 
70 double HiggsKvKf::obliqueU() const
71 {
72  return 0.0;
73 }
74 
76 
77 double HiggsKvKf::muggH(const double sqrt_s) const
78 {
79  return (computeKg() * computeKg());
80 }
81 
82 double HiggsKvKf::muVBF(const double sqrt_s) const
83 {
84  double sigmaWF_SM = trueSM.computeSigmaWF(sqrt_s);
85  double sigmaZF_SM = trueSM.computeSigmaZF(sqrt_s);
86  double sigmaZWF_SM = trueSM.computeSigmaZWF(sqrt_s);
87  return (computeKW() * computeKW() * sigmaWF_SM
88  + computeKZ() * computeKZ() * sigmaZF_SM
89  + computeKW() * computeKZ() * sigmaZWF_SM)
90  / (sigmaWF_SM + sigmaZF_SM + sigmaZWF_SM);
91 }
92 
93 double HiggsKvKf::muWH(const double sqrt_s) const
94 {
95  return (computeKW() * computeKW());
96 }
97 
98 double HiggsKvKf::muZH(const double sqrt_s) const
99 {
100  return (computeKZ() * computeKZ());
101 }
102 
103 double HiggsKvKf::muVH(const double sqrt_s) const
104 {
105  double sigmaWH_SM = trueSM.computeSigmaWH(sqrt_s);
106  double sigmaZH_SM = trueSM.computeSigmaZH(sqrt_s);
107  return ((computeKW() * computeKW() * sigmaWH_SM
108  + computeKZ() * computeKZ() * sigmaZH_SM)
109  / (sigmaWH_SM + sigmaZH_SM));
110 }
111 
112 double HiggsKvKf::muVBFpVH(const double sqrt_s) const
113 {
114  double sigmaWH_SM = trueSM.computeSigmaWH(sqrt_s);
115  double sigmaZH_SM = trueSM.computeSigmaZH(sqrt_s);
116  double sigmaWF_SM = trueSM.computeSigmaWF(sqrt_s);
117  double sigmaZF_SM = trueSM.computeSigmaZF(sqrt_s);
118  double sigmaZWF_SM = trueSM.computeSigmaZWF(sqrt_s);
119  double sigmaVBF_SM = sigmaWF_SM + sigmaZF_SM + sigmaZWF_SM;
120 
121  double sigmaWH = muWH(sqrt_s) * sigmaWH_SM;
122  double sigmaZH = muZH(sqrt_s) * sigmaZH_SM;
123  double sigmaVBF = muVBF(sqrt_s) * sigmaVBF_SM;
124 
125  return ((sigmaWH + sigmaZH + sigmaVBF) / (sigmaWH_SM + sigmaZH_SM + sigmaVBF_SM));
126 }
127 
128 double HiggsKvKf::muttH(const double sqrt_s) const
129 {
130  return (computeKt() * computeKt());
131 }
132 
133 double HiggsKvKf::muggHpttH(const double sqrt_s) const
134 {
135  double sigmaggH_SM = trueSM.computeSigmaggH(sqrt_s);
136  double sigmattH_SM = trueSM.computeSigmattH(sqrt_s);
137 
138  double sigmaggH = muggH(sqrt_s) * sigmaggH_SM;
139  double sigmattH = muttH(sqrt_s) * sigmattH_SM;
140 
141  return ((sigmaggH + sigmattH) / (sigmaggH_SM + sigmattH_SM));
142 }
143 
144 double HiggsKvKf::BrHggRatio() const
145 {
146  return (computeKg() * computeKg() / computeGammaTotalRatio());
147 }
148 
149 double HiggsKvKf::BrHWWRatio() const
150 {
151  return (computeKW() * computeKW() / computeGammaTotalRatio());
152 }
153 
154 double HiggsKvKf::BrHZZRatio() const
155 {
156  return (computeKZ() * computeKZ() / computeGammaTotalRatio());
157 }
158 
160 {
162 }
163 
165 {
167 }
168 
170 {
172 }
173 
174 double HiggsKvKf::BrHccRatio() const
175 {
176  return (computeKc() * computeKc() / computeGammaTotalRatio());
177 }
178 
179 double HiggsKvKf::BrHbbRatio() const
180 {
181  return (computeKb() * computeKb() / computeGammaTotalRatio());
182 }
183 
185 {
186  return ((computeKg() * computeKg() * trueSM.computeBrHtogg()
194  / (1.0 - BrHinv));
195 }
196 
198 
199 double HiggsKvKf::computeKg() const
200 {
201  return Kf;
202 }
203 
204 double HiggsKvKf::computeKW() const
205 {
206  return Kv;
207 }
208 
209 double HiggsKvKf::computeKZ() const
210 {
211  return Kv;
212 }
213 
215 {
216  double gtt_SM = trueSM.computeGammaHZga_tt();
217  double gWW_SM = trueSM.computeGammaHZga_WW();
218  double gtW_SM = trueSM.computeGammaHZga_tW();
219  return (sqrt((computeKt() * computeKt() * gtt_SM
220  + computeKW() * computeKW() * gWW_SM
221  + computeKt() * computeKW() * gtW_SM) / (gtt_SM + gWW_SM + gtW_SM)));
222 }
223 
225 {
226  double gtt_SM = trueSM.computeGammaHgaga_tt();
227  double gWW_SM = trueSM.computeGammaHgaga_WW();
228  double gtW_SM = trueSM.computeGammaHgaga_tW();
229  return (sqrt((computeKt() * computeKt() * gtt_SM
230  + computeKW() * computeKW() * gWW_SM
231  + computeKt() * computeKW() * gtW_SM) / (gtt_SM + gWW_SM + gtW_SM)));
232 }
233 
235 {
236  return Kf;
237 }
238 
239 double HiggsKvKf::computeKc() const
240 {
241  return Kf;
242 }
243 
244 double HiggsKvKf::computeKt() const
245 {
246  return Kf;
247 }
248 
249 double HiggsKvKf::computeKb() const
250 {
251  return Kf;
252 }
253 
254 
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 ...
Definition: HiggsKvKf.cpp:112
virtual double computeKZga() const
A method to compute the ratio of the coupling in the current model and in the SM.
Definition: HiggsKvKf.cpp:214
virtual double obliqueT() const
The oblique parameter .
Definition: HiggsKvKf.cpp:58
virtual double computeKg() const
A method to compute the ratio of the coupling in the current model and in the SM.
Definition: HiggsKvKf.cpp:199
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...
Definition: HiggsKvKf.cpp:82
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...
Definition: HiggsKvKf.cpp:93
virtual double BrHgagaRatio() const
The ratio of the Br in the current model and in the Standard Model.
Definition: HiggsKvKf.cpp:164
double computeGammaHgaga_tt() const
The top loop contribution to in the Standard Model.
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...
Definition: HiggsKvKf.cpp:103
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
double computeSigmaZF(const double sqrt_s) const
The Z fusion contribution to higgs-production cross section in the Standard Model.
virtual double obliqueS() const
The oblique parameter .
Definition: HiggsKvKf.cpp:47
double computeGammaHZga_WW() const
The loop contribution to in the Standard Model. Currently it returns the value of tab 41 in ref...
complex pow(const complex &z1, const complex &z2)
double computeGammaHZga_tW() const
The mixed loop contribution to in the Standard Model.
double Kf
The factor rescaling all Higgs couplings to fermions with respect to the SM.
Definition: HiggsKvKf.h:341
virtual double BrHggRatio() const
The ratio of the Br in the current model and in the Standard Model.
Definition: HiggsKvKf.cpp:144
double computeGammaHgaga_WW() const
The loop contribution to 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.
Definition: HiggsKvKf.cpp:224
StandardModel trueSM
Definition: NPbase.h:543
double computeBrHtoWW() const
The Br in the Standard Model.
virtual double BrHZZRatio() const
The ratio of the Br in the current model and in the Standard Model.
Definition: HiggsKvKf.cpp:154
virtual double computeKb() const
A method to compute the ratio of the coupling in the current model and in the SM.
Definition: HiggsKvKf.cpp:249
virtual double computeKc() const
A method to compute the ratio of the coupling in the current model and in the SM.
Definition: HiggsKvKf.cpp:239
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 computeKt() const
A method to compute the ratio of the coupling in the current model and in the SM.
Definition: HiggsKvKf.cpp:244
double mHl
The Higgs mass in GeV.
virtual double computeKtau() const
A method to compute the ratio of the coupling in the current model and in the SM.
Definition: HiggsKvKf.cpp:234
double computeSigmaWF(const double sqrt_s) const
The W fusion contribution to higgs-production cross section in the Standard Model.
static const std::string HKvKfvars[NHKvKfvars]
A string array containing the labels of the model parameters in HiggsKvKf.
Definition: HiggsKvKf.h:79
double computeBrHtogg() const
The Br in the Standard Model.
virtual double computeGammaTotalRatio() const
The ratio of the in the current model and in the Standard Model.
Definition: HiggsKvKf.cpp:184
virtual double v() const
The Higgs vacuum expectation value. where is the Fermi constant, measured through muon decays...
double computeBrHtotautau() const
The Br in the Standard Model.
double BrHinv
The branching ratio of invisible Higgs decays.
Definition: HiggsKvKf.h:342
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of StandardModel.
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
A method to check if all the mandatory parameters for HiggsKvKf have been provided in model initializ...
Definition: HiggsKvKf.cpp:34
static const int NHKvKfvars
The number of the model parameters in HiggsKvKf.
Definition: HiggsKvKf.h:74
virtual double obliqueU() const
The oblique parameter .
Definition: HiggsKvKf.cpp:70
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 BrHbbRatio() const
The ratio of the Br in the current model and in the Standard Model.
Definition: HiggsKvKf.cpp:179
virtual double BrHccRatio() const
The ratio of the Br in the current model and in the Standard Model.
Definition: HiggsKvKf.cpp:174
virtual double BrHZgaRatio() const
The ratio of the Br in the current model and in the Standard Model.
Definition: HiggsKvKf.cpp:159
virtual double BrHtautauRatio() const
The ratio of the Br in the current model and in the Standard Model.
Definition: HiggsKvKf.cpp:169
virtual double BrHWWRatio() const
The ratio of the Br in the current model and in the Standard Model.
Definition: HiggsKvKf.cpp:149
virtual double computeKW() const
A method to compute the ratio of the coupling in the current model and in the SM.
Definition: HiggsKvKf.cpp:204
HiggsKvKf()
The default constructor.
Definition: HiggsKvKf.cpp:14
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...
Definition: HiggsKvKf.cpp:128
complex log(const complex &z)
double Kv
The factor rescaling all Higgs couplings to vector bosons with respect to the SM. ...
Definition: HiggsKvKf.h:340
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 muggH(const double sqrt_s) const
The ratio between the gluon-gluon fusion Higgs production cross-section in the current model and in ...
Definition: HiggsKvKf.cpp:77
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 void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of HiggsKvKf.
Definition: HiggsKvKf.cpp:22
virtual double computeKZ() const
A method to compute the ratio of the coupling in the current model and in the SM.
Definition: HiggsKvKf.cpp:209
double computeBrHtogaga() const
The Br in the Standard Model.
std::map< std::string, boost::reference_wrapper< const double > > ModelParamMap
Definition: Model.h:200
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...
Definition: HiggsKvKf.cpp:133
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...
Definition: HiggsKvKf.cpp:98
complex sqrt(const complex &z)