a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
HiggsKvgenKfgen.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2014 HEPfit Collaboration
3  *
4  *
5  * For the licensing terms see doc/COPYING.
6  */
7 
8 #include "HiggsKvgenKfgen.h"
9 
10 const std::string HiggsKvgenKfgen::HKvgenKfgenvars[NHKvgenKfgenvars] = {
11  "KW", "KZ", "Ku", "Kd", "Kl", "BrHinv"
12 };
13 
15 : NPbase()
16 {
17  ModelParamMap.insert(std::make_pair("KW", std::cref(KW)));
18  ModelParamMap.insert(std::make_pair("KZ", std::cref(KZ)));
19  ModelParamMap.insert(std::make_pair("Ku", std::cref(Ku)));
20  ModelParamMap.insert(std::make_pair("Kd", std::cref(Kd)));
21  ModelParamMap.insert(std::make_pair("Kl", std::cref(Kl)));
22  ModelParamMap.insert(std::make_pair("BrHinv", std::cref(BrHinv)));
23 }
24 
25 void HiggsKvgenKfgen::setParameter(const std::string name, const double& value)
26 {
27  if (name.compare("KW") == 0)
28  KW = value;
29  else if (name.compare("KZ") == 0)
30  KZ = value;
31  else if (name.compare("Ku") == 0)
32  Ku = value;
33  else if (name.compare("Kd") == 0)
34  Kd = value;
35  else if (name.compare("Kl") == 0)
36  Kl = value;
37  else if (name.compare("BrHinv") == 0)
38  BrHinv = value;
39  else
40  NPbase::setParameter(name, value);
41 }
42 
43 bool HiggsKvgenKfgen::CheckParameters(const std::map<std::string, double>& DPars)
44 {
45  for (int i = 0; i < NHKvgenKfgenvars; i++) {
46  if (DPars.find(HKvgenKfgenvars[i]) == DPars.end()) {
47  std::cout << "ERROR: missing mandatory HiggsKvgenKfgen parameter " << HKvgenKfgenvars[i] << std::endl;
50  }
51  }
52  return (NPbase::CheckParameters(DPars));
53 }
54 
56 
57 double HiggsKvgenKfgen::muggH(const double sqrt_s) const
58 {
59  return (computeKg(sqrt_s) * computeKg(sqrt_s));
60 }
61 
62 double HiggsKvgenKfgen::muVBF(const double sqrt_s) const
63 {
64  double sigmaWF_SM = trueSM.computeSigmaWF(sqrt_s);
65  double sigmaZF_SM = trueSM.computeSigmaZF(sqrt_s);
66  double sigmaZWF_SM = trueSM.computeSigmaZWF(sqrt_s);
67  return (computeKW() * computeKW() * sigmaWF_SM
68  + computeKZ() * computeKZ() * sigmaZF_SM
69  + computeKW() * computeKZ() * sigmaZWF_SM)
70  / (sigmaWF_SM + sigmaZF_SM + sigmaZWF_SM);
71 }
72 
73 double HiggsKvgenKfgen::mueeWBF(const double sqrt_s) const
74 {
75  return (computeKW() * computeKW());
76 }
77 
78 double HiggsKvgenKfgen::muWH(const double sqrt_s) const
79 {
80  return (computeKW() * computeKW());
81 }
82 
83 double HiggsKvgenKfgen::muZH(const double sqrt_s) const
84 {
85  return (computeKZ() * computeKZ());
86 }
87 
88 double HiggsKvgenKfgen::mueeZH(const double sqrt_s) const
89 {
90  return (computeKZ() * computeKZ());
91 }
92 
93 double HiggsKvgenKfgen::muVH(const double sqrt_s) const
94 {
95  double sigmaWH_SM = trueSM.computeSigmaWH(sqrt_s);
96  double sigmaZH_SM = trueSM.computeSigmaZH(sqrt_s);
97  return ((computeKW() * computeKW() * sigmaWH_SM
98  + computeKZ() * computeKZ() * sigmaZH_SM)
99  / (sigmaWH_SM + sigmaZH_SM));
100 }
101 
102 double HiggsKvgenKfgen::muVBFpVH(const double sqrt_s) const
103 {
104  double sigmaWH_SM = trueSM.computeSigmaWH(sqrt_s);
105  double sigmaZH_SM = trueSM.computeSigmaZH(sqrt_s);
106  double sigmaWF_SM = trueSM.computeSigmaWF(sqrt_s);
107  double sigmaZF_SM = trueSM.computeSigmaZF(sqrt_s);
108  double sigmaZWF_SM = trueSM.computeSigmaZWF(sqrt_s);
109  double sigmaVBF_SM = sigmaWF_SM + sigmaZF_SM + sigmaZWF_SM;
110 
111  double sigmaWH = muWH(sqrt_s) * sigmaWH_SM;
112  double sigmaZH = muZH(sqrt_s) * sigmaZH_SM;
113  double sigmaVBF = muVBF(sqrt_s) * sigmaVBF_SM;
114 
115  return ((sigmaWH + sigmaZH + sigmaVBF) / (sigmaWH_SM + sigmaZH_SM + sigmaVBF_SM));
116 }
117 
118 double HiggsKvgenKfgen::muttH(const double sqrt_s) const
119 {
120  return (computeKt() * computeKt());
121 }
122 
123 double HiggsKvgenKfgen::muggHpttH(const double sqrt_s) const
124 {
125  double sigmaggH_SM = trueSM.computeSigmaggH(sqrt_s);
126  double sigmattH_SM = trueSM.computeSigmattH(sqrt_s);
127 
128  double sigmaggH = muggH(sqrt_s) * sigmaggH_SM;
129  double sigmattH = muttH(sqrt_s) * sigmattH_SM;
130 
131  return ((sigmaggH + sigmattH) / (sigmaggH_SM + sigmattH_SM));
132 }
133 
134 double HiggsKvgenKfgen::mueettH(const double sqrt_s) const
135 {
136  return (computeKt() * computeKt());
137 }
138 
140 {
141  double gtt_SM = trueSM.computeGammaHgg_tt();
142  double gbb_SM = trueSM.computeGammaHgg_bb();
143  double gtb_SM = trueSM.computeGammaHgg_tb();
144  double Ggg_over_GggSM = (computeKt() * computeKt() * gtt_SM
145  + computeKb() * computeKb() * gbb_SM
146  + computeKt() * computeKb() * gtb_SM) / (gtt_SM + gbb_SM + gtb_SM);
147  return (Ggg_over_GggSM / computeGammaTotalRatio());
148 }
149 
151 {
152  return (computeKW() * computeKW() / computeGammaTotalRatio());
153 }
154 
156 {
157  return (computeKZ() * computeKZ() / computeGammaTotalRatio());
158 }
159 
161 {
163 }
164 
166 {
168 }
169 
171 {
172  return (computeKmu() * computeKmu() / computeGammaTotalRatio());
173 }
174 
176 {
178 }
179 
181 {
182  return (computeKc() * computeKc() / computeGammaTotalRatio());
183 }
184 
186 {
187  return (computeKb() * computeKb() / computeGammaTotalRatio());
188 }
189 
191 {
192  double gtt_SM = trueSM.computeGammaHgg_tt();
193  double gbb_SM = trueSM.computeGammaHgg_bb();
194  double gtb_SM = trueSM.computeGammaHgg_tb();
195  double Ggg_over_GggSM = (computeKt() * computeKt() * gtt_SM
196  + computeKb() * computeKb() * gbb_SM
197  + computeKt() * computeKb() * gtb_SM) / (gtt_SM + gbb_SM + gtb_SM);
198  return ((Ggg_over_GggSM * trueSM.computeBrHtogg()
207  + BrHinv)
216  + trueSM.computeBrHtobb()));
217 }
218 
220 
221 double HiggsKvgenKfgen::computeKg(const double sqrt_s) const
222 {
223  if (sqrt_s == 1.96)
224  return computeKt();
225 
226  double sigmatt_SM = trueSM.computeSigmaggH_tt(sqrt_s);
227  double sigmabb_SM = trueSM.computeSigmaggH_bb(sqrt_s);
228  double sigmatb_SM = trueSM.computeSigmaggH_tb(sqrt_s);
229  return (sqrt((computeKt() * computeKt() * sigmatt_SM
230  + computeKb() * computeKb() * sigmabb_SM
231  + computeKt() * computeKb() * sigmatb_SM)
232  / (sigmatt_SM + sigmabb_SM + sigmatb_SM)));
233 }
234 
236 {
237  return KW;
238 }
239 
241 {
242  return KZ;
243 }
244 
246 {
247  double gtt_SM = trueSM.computeGammaHZga_tt();
248  double gWW_SM = trueSM.computeGammaHZga_WW();
249  double gtW_SM = trueSM.computeGammaHZga_tW();
250  return (sqrt((computeKt() * computeKt() * gtt_SM
251  + computeKW() * computeKW() * gWW_SM
252  + computeKt() * computeKW() * gtW_SM) / (gtt_SM + gWW_SM + gtW_SM)));
253 }
254 
256 {
257  double gtt_SM = trueSM.computeGammaHgaga_tt();
258  double gWW_SM = trueSM.computeGammaHgaga_WW();
259  double gtW_SM = trueSM.computeGammaHgaga_tW();
260  return (sqrt((computeKt() * computeKt() * gtt_SM
261  + computeKW() * computeKW() * gWW_SM
262  + computeKt() * computeKW() * gtW_SM) / (gtt_SM + gWW_SM + gtW_SM)));
263 }
264 
266 {
267  return Kl;
268 }
269 
271 {
272  return Kl;
273 }
274 
276 {
277  return Ku;
278 }
279 
281 {
282  return Ku;
283 }
284 
286 {
287  return Kd;
288 }
289 
290 
HiggsKvgenKfgen::mueettH
virtual double mueettH(const double sqrt_s) const
The ratio between the production cross-section in the current model and in the Standard Model.
Definition: HiggsKvgenKfgen.cpp:134
sigmattH
Definition: NPSMEFT6dtopquark.h:659
StandardModel::setParameter
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of StandardModel.
Definition: StandardModel.cpp:257
HiggsKvgenKfgen::KW
double KW
The factor rescaling Higgs couplings to bosons with respect to the SM.
Definition: HiggsKvgenKfgen.h:430
HiggsKvgenKfgen::muWH
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: HiggsKvgenKfgen.cpp:78
StandardModel::computeSigmaWH
double computeSigmaWH(const double sqrt_s) const
The WH production cross section in the Standard Model.
Definition: StandardModel.h:2102
StandardModel::computeGammaHZga_tt
double computeGammaHZga_tt() const
The top loop contribution to in the Standard Model.
Definition: StandardModel.h:2369
HiggsKvgenKfgen::BrHmumuRatio
virtual double BrHmumuRatio() const
The ratio of the Br in the current model and in the Standard Model.
Definition: HiggsKvgenKfgen.cpp:170
StandardModel::computeBrHtotautau
double computeBrHtotautau() const
The Br in the Standard Model.
Definition: StandardModel.h:2278
HiggsKvgenKfgen::computeKZ
virtual double computeKZ() const
A method to compute the ratio of the coupling in the current model and in the SM.
Definition: HiggsKvgenKfgen.cpp:240
HiggsKvgenKfgen::computeKW
virtual double computeKW() const
A method to compute the ratio of the coupling in the current model and in the SM.
Definition: HiggsKvgenKfgen.cpp:235
HiggsKvgenKfgen::BrHtautauRatio
virtual double BrHtautauRatio() const
The ratio of the Br in the current model and in the Standard Model.
Definition: HiggsKvgenKfgen.cpp:175
HiggsKvgenKfgen::muggHpttH
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: HiggsKvgenKfgen.cpp:123
HiggsKvgenKfgen::computeKb
virtual double computeKb() const
A method to compute the ratio of the coupling in the current model and in the SM.
Definition: HiggsKvgenKfgen.cpp:285
StandardModel::computeSigmaWF
double computeSigmaWF(const double sqrt_s) const
The W fusion contribution to higgs-production cross section in the Standard Model.
Definition: StandardModel.h:2031
StandardModel::computeGammaHgaga_tW
double computeGammaHgaga_tW() const
The mixed loop contribution to in the Standard Model.
Definition: StandardModel.h:2424
HiggsKvgenKfgen::muggH
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: HiggsKvgenKfgen.cpp:57
Model::addMissingModelParameter
void addMissingModelParameter(const std::string &missingParameterName)
Definition: Model.h:240
StandardModel::computeGammaHgg_tb
double computeGammaHgg_tb() const
The top-bottom interference contribution to in the Standard Model.
Definition: StandardModel.h:2358
StandardModel::CheckParameters
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...
Definition: StandardModel.cpp:339
StandardModel::computeBrHtobb
double computeBrHtobb() const
The Br in the Standard Model.
Definition: StandardModel.h:2313
HiggsKvgenKfgen::BrHbbRatio
virtual double BrHbbRatio() const
The ratio of the Br in the current model and in the Standard Model.
Definition: HiggsKvgenKfgen.cpp:185
HiggsKvgenKfgen::muVBFpVH
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: HiggsKvgenKfgen.cpp:102
HiggsKvgenKfgen::computeKg
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.
Definition: HiggsKvgenKfgen.cpp:221
HiggsKvgenKfgen::computeKmu
virtual double computeKmu() const
A method to compute the ratio of the coupling in the current model and in the SM.
Definition: HiggsKvgenKfgen.cpp:265
Model::ModelParamMap
std::map< std::string, std::reference_wrapper< const double > > ModelParamMap
Definition: Model.h:270
StandardModel::computeSigmaZF
double computeSigmaZF(const double sqrt_s) const
The Z fusion contribution to higgs-production cross section in the Standard Model.
Definition: StandardModel.h:2059
HiggsKvgenKfgen::BrHZgaRatio
virtual double BrHZgaRatio() const
The ratio of the Br in the current model and in the Standard Model.
Definition: HiggsKvgenKfgen.cpp:160
NPbase::trueSM
StandardModel trueSM
Definition: NPbase.h:2787
StandardModel::computeBrHtoZZ
double computeBrHtoZZ() const
The Br in the Standard Model.
Definition: StandardModel.h:2222
StandardModel::computeGammaHgg_bb
double computeGammaHgg_bb() const
The bottom loop contribution to in the Standard Model.
Definition: StandardModel.h:2347
HiggsKvgenKfgen::CheckParameters
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
A method to check if all the mandatory parameters for HiggsKvgenKfgen have been provided in model ini...
Definition: HiggsKvgenKfgen.cpp:43
StandardModel::computeGammaHgaga_tt
double computeGammaHgaga_tt() const
The top loop contribution to in the Standard Model.
Definition: StandardModel.h:2402
HiggsKvgenKfgen::Ku
double Ku
The factor rescaling all Higgs couplings to up-type fermions with respect to the SM.
Definition: HiggsKvgenKfgen.h:432
NPbase
The auxiliary base model class for other model classes.
Definition: NPbase.h:66
HiggsKvgenKfgen::setParameter
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of HiggsKvgenKf.
Definition: HiggsKvgenKfgen.cpp:25
StandardModel::computeSigmaggH_bb
double computeSigmaggH_bb(const double sqrt_s) const
The square of the bottom-quark contribution to the ggH cross section in the Standard Model.
Definition: StandardModel.h:1949
HiggsKvgenKfgen::computeKt
virtual double computeKt() const
A method to compute the ratio of the coupling in the current model and in the SM.
Definition: HiggsKvgenKfgen.cpp:280
StandardModel::computeGammaHgaga_WW
double computeGammaHgaga_WW() const
The loop contribution to in the Standard Model.
Definition: StandardModel.h:2413
HiggsKvgenKfgen::computeGammaTotalRatio
virtual double computeGammaTotalRatio() const
The ratio of the in the current model and in the Standard Model.
Definition: HiggsKvgenKfgen.cpp:190
Model::raiseMissingModelParameterCount
void raiseMissingModelParameterCount()
Definition: Model.h:250
gslpp::sqrt
complex sqrt(const complex &z)
Definition: gslpp_complex.cpp:385
HiggsKvgenKfgen::mueeWBF
virtual double mueeWBF(const double sqrt_s) const
The ratio between the production cross-section in the current model and in the Standard Model.
Definition: HiggsKvgenKfgen.cpp:73
HiggsKvgenKfgen::computeKtau
virtual double computeKtau() const
A method to compute the ratio of the coupling in the current model and in the SM.
Definition: HiggsKvgenKfgen.cpp:270
StandardModel::computeBrHtoZga
double computeBrHtoZga() const
The Br in the Standard Model.
Definition: StandardModel.h:2244
StandardModel::computeBrHtogaga
double computeBrHtogaga() const
The Br in the Standard Model.
Definition: StandardModel.h:2256
StandardModel::computeSigmaggH
double computeSigmaggH(const double sqrt_s) const
The ggH cross section in the Standard Model.
Definition: StandardModel.h:1897
HiggsKvgenKfgen::BrHgagaRatio
virtual double BrHgagaRatio() const
The ratio of the Br in the current model and in the Standard Model.
Definition: HiggsKvgenKfgen.cpp:165
StandardModel::computeGammaHZga_tW
double computeGammaHZga_tW() const
The mixed loop contribution to in the Standard Model.
Definition: StandardModel.h:2391
HiggsKvgenKfgen::muZH
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: HiggsKvgenKfgen.cpp:83
StandardModel::computeSigmattH
double computeSigmattH(const double sqrt_s) const
The ttH production cross section in the Standard Model.
Definition: StandardModel.h:2171
HiggsKvgenKfgen::computeKZga
virtual double computeKZga() const
A method to compute the ratio of the coupling in the current model and in the SM.
Definition: HiggsKvgenKfgen.cpp:245
HiggsKvgenKfgen::NHKvgenKfgenvars
static const int NHKvgenKfgenvars
The number of the model parameters in HiggsKvgenKf.
Definition: HiggsKvgenKfgen.h:86
HiggsKvgenKfgen::BrHggRatio
virtual double BrHggRatio() const
The ratio of the Br in the current model and in the Standard Model.
Definition: HiggsKvgenKfgen.cpp:139
HiggsKvgenKfgen::HiggsKvgenKfgen
HiggsKvgenKfgen()
The default constructor.
Definition: HiggsKvgenKfgen.cpp:14
HiggsKvgenKfgen::KZ
double KZ
The factor rescaling Higgs couplings to bosons with respect to the SM.
Definition: HiggsKvgenKfgen.h:431
StandardModel::computeGammaHZga_WW
double computeGammaHZga_WW() const
The loop contribution to in the Standard Model. Currently it returns the value of tab 41 in ref....
Definition: StandardModel.h:2380
StandardModel::computeSigmaZH
double computeSigmaZH(const double sqrt_s) const
The ZH production cross section in the Standard Model.
Definition: StandardModel.h:2135
StandardModel::computeBrHtocc
double computeBrHtocc() const
The Br in the Standard Model.
Definition: StandardModel.h:2290
StandardModel::computeBrHtomumu
double computeBrHtomumu() const
The Br in the Standard Model.
Definition: StandardModel.h:2267
HiggsKvgenKfgen::computeKc
virtual double computeKc() const
A method to compute the ratio of the coupling in the current model and in the SM.
Definition: HiggsKvgenKfgen.cpp:275
StandardModel::computeBrHtoWW
double computeBrHtoWW() const
The Br in the Standard Model.
Definition: StandardModel.h:2210
StandardModel::computeSigmaggH_tt
double computeSigmaggH_tt(const double sqrt_s) const
The square of the top-quark contribution to the ggH cross section in the Standard Model.
Definition: StandardModel.h:1924
HiggsKvgenKfgen::Kl
double Kl
The factor rescaling all Higgs couplings to leptons with respect to the SM.
Definition: HiggsKvgenKfgen.h:434
HiggsKvgenKfgen::BrHccRatio
virtual double BrHccRatio() const
The ratio of the Br in the current model and in the Standard Model.
Definition: HiggsKvgenKfgen.cpp:180
HiggsKvgenKfgen::muttH
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: HiggsKvgenKfgen.cpp:118
HiggsKvgenKfgen::Kd
double Kd
The factor rescaling all Higgs couplings to down-type fermions with respect to the SM.
Definition: HiggsKvgenKfgen.h:433
StandardModel::computeBrHtogg
double computeBrHtogg() const
The Br in the Standard Model.
Definition: StandardModel.h:2199
Model::name
std::string name
The name of the model.
Definition: Model.h:275
StandardModel::computeSigmaZWF
double computeSigmaZWF(const double sqrt_s) const
The Z W interference fusion contribution to higgs-production cross section in the Standard Model.
Definition: StandardModel.h:2086
HiggsKvgenKfgen::computeKgaga
virtual double computeKgaga() const
A method to compute the ratio of the coupling in the current model and in the SM.
Definition: HiggsKvgenKfgen.cpp:255
HiggsKvgenKfgen::BrHinv
double BrHinv
The branching ratio of invisible Higgs decays.
Definition: HiggsKvgenKfgen.h:435
HiggsKvgenKfgen::BrHZZRatio
virtual double BrHZZRatio() const
The ratio of the Br in the current model and in the Standard Model.
Definition: HiggsKvgenKfgen.cpp:155
HiggsKvgenKfgen::muVH
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: HiggsKvgenKfgen.cpp:93
HiggsKvgenKfgen::muVBF
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: HiggsKvgenKfgen.cpp:62
HiggsKvgenKfgen.h
StandardModel::computeGammaHgg_tt
double computeGammaHgg_tt() const
The top loop contribution to in the Standard Model.
Definition: StandardModel.h:2336
HiggsKvgenKfgen::mueeZH
virtual double mueeZH(const double sqrt_s) const
The ratio between the associated production cross-section in the current model and in the Standard ...
Definition: HiggsKvgenKfgen.cpp:88
HiggsKvgenKfgen::BrHWWRatio
virtual double BrHWWRatio() const
The ratio of the Br in the current model and in the Standard Model.
Definition: HiggsKvgenKfgen.cpp:150
HiggsKvgenKfgen::HKvgenKfgenvars
static const std::string HKvgenKfgenvars[NHKvgenKfgenvars]
A string array containing the labels of the model parameters in HiggsKvgenKf.
Definition: HiggsKvgenKfgen.h:91
StandardModel::computeSigmaggH_tb
double computeSigmaggH_tb(const double sqrt_s) const
The top-bottom interference contribution to the ggH cross section in the Standard Model.
Definition: StandardModel.h:1974