15 : br_aa(19961, 2, 0.),
18 br_tautau(19961, 2, 0.),
20 br_mumu(19961, 2, 0.),
23 GammaHtot_SM(19961, 2, 0.),
24 log_cs_ggH_8(199, 2, 0.),
25 log_cs_VBF_8(199, 2, 0.),
26 log_cs_WH_8(199, 2, 0.),
27 log_cs_ZH_8(199, 2, 0.),
28 log_cs_ggH_13(199, 2, 0.),
29 log_cs_VBF_13(199, 2, 0.),
30 log_cs_WH_13(199, 2, 0.),
31 log_cs_ZH_13(199, 2, 0.),
32 log_cs_ttH_8(199, 2, 0.),
33 log_cs_ttH_13(199, 2, 0.),
34 log_cs_bbH_8(199, 2, 0.),
35 log_cs_bbH_13(199, 2, 0.),
36 log_cs_ggA_8(199, 2, 0.),
37 log_cs_ttA_8(199, 2, 0.),
38 log_cs_bbA_8(199, 2, 0.),
39 log_cs_ggA_13(199, 2, 0.),
40 log_cs_ttA_13(199, 2, 0.),
41 log_cs_bbA_13(199, 2, 0.),
42 log_cs_ggHp_8(744, 3, 0.),
43 log_cs_ggHp_13(1104, 3, 0.),
44 log_cs_ppH5ppH5mm_8(18, 2, 0.),
45 log_cs_ppH5ppH5mm_13(38, 2, 0.),
46 log_cs_VBFH5_8(41, 2, 0.),
47 log_cs_VBFH5_13(91, 2, 0.),
48 log_cs_VBFH5m_8(41, 2, 0.),
49 log_cs_VBFH5m_13(91, 2, 0.),
50 log_cs_VBFH5mm_8(41, 2, 0.),
51 log_cs_VBFH5mm_13(91, 2, 0.),
52 log_cs_VBFH5p_8(41, 2, 0.),
53 log_cs_VBFH5p_13(91, 2, 0.),
54 log_cs_VBFH5pp_8(41, 2, 0.),
55 log_cs_VBFH5pp_13(91, 2, 0.),
56 log_cs_VHH5_8(18, 2, 0.),
57 log_cs_VHH5_13(38, 2, 0.),
58 log_cs_VHH5mm_8(18, 2, 0.),
59 log_cs_VHH5mm_13(38, 2, 0.),
60 log_cs_VHH5pp_8(18, 2, 0.),
61 log_cs_VHH5pp_13(38, 2, 0.),
63 ATLAS13_tt_phi_tt(61,2,0.),
64 ATLAS13_bb_phi_tt(61,2,0.),
65 CMS8_bb_phi_bb(81, 2, 0.),
66 CMS8_gg_phi_bb(88, 2, 0.),
67 CMS13_pp_phi_bb(66,2,0.),
68 CMS13_bb_phi_bb(101, 2, 0.),
69 ATLAS8_gg_phi_tautau(92, 2, 0.),
70 CMS8_gg_phi_tautau(92,2,0.),
71 ATLAS8_bb_phi_tautau(92, 2, 0.),
72 CMS8_bb_phi_tautau(92,2,0.),
73 ATLAS13_gg_phi_tautau(206,2,0.),
74 CMS13_gg_phi_tautau(312,2,0.),
75 ATLAS13_bb_phi_tautau(206,2,0.),
76 CMS13_bb_phi_tautau(312,2,0.),
77 ATLAS8_gg_phi_gaga(108, 2, 0.),
78 ATLAS13_pp_phi_gaga(251,2,0.),
79 CMS13_gg_phi_gaga(351,2,0.),
80 ATLAS8_pp_phi_Zga_llga(141, 2, 0.),
81 CMS8_pp_phi_Zga_llga(101,2,0.),
82 ATLAS13_gg_phi_Zga_llga(216,2,0.),
83 ATLAS13_gg_phi_Zga_qqga(581,2,0.),
84 CMS13_gg_phi_Zga(366,2,0.),
85 ATLAS8_gg_phi_ZZ(173,2,0.),
86 ATLAS8_VV_phi_ZZ(173,2,0.),
87 ATLAS13_gg_phi_ZZ_llllnunu(101,2,0.),
88 ATLAS13_VV_phi_ZZ_llllnunu(101,2,0.),
89 ATLAS13_gg_phi_ZZ_qqllnunu(271,2,0.),
90 ATLAS13_VV_phi_ZZ_qqllnunu(271,2,0.),
91 CMS13_pp_phi_ZZ_llqqnunull(288,2,0.),
92 CMS13_VV_phi_ZZ_llqqnunull(288,2,0.),
93 CMS13_pp_phi_ZZ_qqnunu(301,2,0.),
94 ATLAS8_gg_phi_WW(13,2,0.),
95 ATLAS8_VV_phi_WW(13,2,0.),
96 ATLAS13_gg_phi_WW_enumunu(381,2,0.),
97 ATLAS13_VV_phi_WW_enumunu(281,2,0.),
98 ATLAS13_gg_phi_WW_lnuqq(271,2,0.),
99 ATLAS13_VV_phi_WW_lnuqq(271,2,0.),
100 CMS13_ggVV_phi_WW_lnulnu(81,2,0.),
101 CMS13_pp_phi_WW_lnuqq(341,2,0.),
102 CMS8_mu_pp_phi_VV(172, 2, 0.),
103 ATLAS13_pp_phi_VV_qqqq(181,2,0.),
104 ATLAS8_gg_phi_hh(75,2,0.),
105 CMS8_pp_phi_hh_bbbb(167, 2, 0.),
106 CMS8_pp_phi_hh_gagabb(85, 2, 0.),
107 CMS8_gg_phi_hh_bbtautau(10,2,0.),
108 CMS8_pp_phi_hh_bbtautau(71,2,0.),
109 ATLAS13_pp_phi_hh_bbbb(275,2,0.),
110 CMS13_pp_phi_hh_bbbb_1(95,2,0.),
111 CMS13_pp_phi_hh_bbbb_2(181,2,0.),
112 CMS13_gg_phi_hh_bbbb(226,2,0.),
113 ATLAS13_pp_phi_hh_gagabb(75,2,0.),
114 CMS13_pp_phi_hh_gagabb(66,2,0.),
115 ATLAS13_pp_phi_hh_bbtautau(75,2,0.),
116 CMS13_pp_phi_hh_bbtautau_1(66,2,0.),
117 CMS13_pp_phi_hh_bbtautau_2(311,2,0.),
118 CMS13_pp_phi_hh_bblnulnu(65,2,0.),
119 ATLAS13_gg_phi_hh_gagaWW(25,2,0.),
120 ATLAS8_gg_A_hZ_bbZ(79, 2, 0.),
121 CMS8_gg_A_hZ_bbll(16, 2, 0.),
122 ATLAS8_gg_A_hZ_tautauZ(79, 2, 0.),
123 CMS8_gg_A_hZ_tautaull(14,2,0.),
124 ATLAS13_gg_A_Zh_Zbb(181,2,0.),
125 ATLAS13_bb_A_Zh_Zbb(181,2,0.),
126 CMS13_gg_A_Zh_Zbb_1(79,2,0.),
127 CMS13_bb_A_Zh_Zbb_1(79,2,0.),
128 CMS13_gg_A_Zh_Zbb_2(121,2,0.),
129 CMS13_bb_A_Zh_Zbb_2(121,2,0.),
130 CMS8_pp_A_phiZ_bbll(28718, 3, 0.),
131 CMS8_pp_phi_AZ_bbll(29050, 3, 0.),
132 ATLAS13_gg_A_phiZ_bbll(3364, 3, 0.),
133 ATLAS13_bb_A_phiZ_bbll(3364, 3, 0.),
135 ATLAS8_pp_Hpm_taunu(83,2,0.),
136 CMS8_pp_Hp_taunu(43,2,0.),
137 ATLAS13_pp_Hpm_taunu(192,2,0.),
138 CMS13_pp_Hpm_taunu(283,2,0.),
139 ATLAS8_pp_Hpm_tb(41,2,0.),
140 CMS8_pp_Hp_tb(43,2,0.),
141 ATLAS13_pp_Hpm_tb(181,2,0.),
142 ATLAS8_WZ_H5pm_WZ_qqll(81,2,0.),
143 ATLAS13_WZ_H5pm_WZ_lnull(71,2,0.),
144 CMS13_WZ_H5pm_WZ_lnull_1(181,2,0.),
145 CMS13_WZ_H5pm_WZ_lnull_2(171,2,0.),
146 ATLAS8_pp_H5ppmmH5mmpp_eeee(50,2,0.),
147 ATLAS8_pp_H5ppmmH5mmpp_emuemu(57,2,0.),
148 ATLAS8_pp_H5ppmmH5mmpp_mumumumu(57,2,0.),
149 ATLAS13_pp_H5ppmmH5mmpp_llll(96,2,0.),
150 ATLAS13_pp_H5ppmmH5mmpp_WWWW(51,2,0.),
151 CMS8_VV_H5ppmm_WW_jjll(65,2,0.),
152 CMS13_VV_H5ppmm_WW_jjll(81,2,0.),
153 ATLAS13_WZ_H5pm_WZ_lnull_e(15,2,0.),
154 unitarityeigenvalues(17, 0.),
169 const int NumPar,
const double params[])
const {
173 for(
int j=0; j<NumPar; j++)
174 bCache &= (params[j] == cache[j][i].real());
175 if (bCache)
return i;
181 const int NumPar,
const double params[])
const {
185 for(
int j=0; j<NumPar; j++)
186 bCache &= (params[j] == cache[j][i]);
187 if (bCache)
return i;
196 for(
int j=0; j<NumPar+1; j++)
197 cache[j][i] = cache[j][i-1];
200 for(
int j=0; j<NumPar; j++) {
202 cache[NumPar][0] = newResult;
207 const double params[],
const double newResult)
const {
210 for(
int j=0; j<NumPar+1; j++)
211 cache[j][i] = cache[j][i-1];
214 for(
int j=0; j<NumPar; j++) {
215 cache[j][0] = params[j];
216 cache[NumPar][0] = newResult;
222 std::stringstream br1,br1a,br2,br3,br4,br5,br6,br7;
223 std::stringstream dw1;
224 std::stringstream cs1,cs2,cs3,cs4,cs5,cs6,cs7,cs8,cs9;
225 std::stringstream cs11,cs12,cs13,cs14,cs15,cs16,cs17,cs18,cs19;
226 std::stringstream cs20,cs21,cs22,cs23,cs24,cs25,cs26,cs27,cs28,cs29;
227 std::stringstream cs30,cs31,cs32,cs33,cs34,cs35,cs36,cs37,cs38,cs39;
228 std::stringstream ex1,ex2,ex3,ex4,ex5,ex6,ex7,ex8,ex9,ex10,ex11,ex12,ex13,ex14,ex15;
229 std::stringstream ex16,ex17,ex18,ex19,ex20,ex21,ex22,ex23,ex24,ex25,ex26,ex27,ex28,ex29,ex30;
230 std::stringstream ex31,ex32,ex33,ex34,ex35,ex36,ex37,ex38,ex39,ex40,ex41,ex42,ex43,ex44,ex45;
231 std::stringstream ex46,ex47,ex48,ex49,ex50,ex51,ex52,ex53,ex54,ex55,ex56,ex57,ex58,ex59,ex60;
232 std::stringstream ex61,ex62,ex63,ex64,ex65,ex66,ex67,ex68,ex69,ex70,ex71,ex72,ex73;
233 std::stringstream ex74,ex75,ex76,ex77,ex78,ex79,ex80,ex81,ex82,ex83;
234 std::stringstream ex28a,ex43a,ex70a,ex70b;
235 std::stringstream ex59a,ex59b;
236 std::stringstream ex68e;
238 std::cout<<
"reading tables"<<std::endl;
240 std::stringstream path;
241 path << getenv(
"HEPFITTABS") <<
"/THDM/tabs/";
242 std::string tablepath=path.str();
244 br1 << tablepath <<
"br1.dat";
246 br1a << tablepath <<
"br1.dat";
248 br2 << tablepath <<
"br2.dat";
250 br3 << tablepath <<
"br3.dat";
252 br4 << tablepath <<
"br4.dat";
254 br5 << tablepath <<
"br5.dat";
256 br6 << tablepath <<
"br6.dat";
258 br7 << tablepath <<
"br7.dat";
260 dw1 << tablepath <<
"dw1.dat";
262 cs1 << tablepath <<
"log_cs_ggH_8.dat";
264 cs11 << tablepath <<
"log_cs_ggH_13.dat";
266 cs2 << tablepath <<
"log_cs_VBF_8.dat";
268 cs12 << tablepath <<
"log_cs_VBF_13.dat";
270 cs3 << tablepath <<
"log_cs_WH_8.dat";
272 cs13 << tablepath <<
"log_cs_WH_13.dat";
274 cs4 << tablepath <<
"log_cs_ZH_8.dat";
276 cs14 << tablepath <<
"log_cs_ZH_13.dat";
278 cs5 << tablepath <<
"log_cs_ttH_8.dat";
280 cs15 << tablepath <<
"log_cs_ttH_13.dat";
282 cs6 << tablepath <<
"log_cs_bbH_8.dat";
284 cs16 << tablepath <<
"log_cs_bbH_13.dat";
286 cs7 << tablepath <<
"log_cs_ggA_8.dat";
288 cs17 << tablepath <<
"log_cs_ggA_13.dat";
290 cs8 << tablepath <<
"log_cs_ttA_8.dat";
292 cs18 << tablepath <<
"log_cs_ttA_13.dat";
294 cs9 << tablepath <<
"log_cs_bbA_8.dat";
296 cs19 << tablepath <<
"log_cs_bbA_13.dat";
298 cs20 << tablepath <<
"log_cs_ggHp_8.dat";
300 cs21 << tablepath <<
"log_cs_ggHp_13.dat";
302 cs22 << tablepath <<
"log_cs_ppH5ppH5mm_8.dat";
304 cs23 << tablepath <<
"log_cs_ppH5ppH5mm_13.dat";
306 cs24 << tablepath <<
"log_cs_VBFH5_8.dat";
308 cs25 << tablepath <<
"log_cs_VBFH5_13.dat";
310 cs26 << tablepath <<
"log_cs_VBFH5m_8.dat";
312 cs27 << tablepath <<
"log_cs_VBFH5m_13.dat";
314 cs28 << tablepath <<
"log_cs_VBFH5mm_8.dat";
316 cs29 << tablepath <<
"log_cs_VBFH5mm_13.dat";
318 cs30 << tablepath <<
"log_cs_VBFH5p_8.dat";
320 cs31 << tablepath <<
"log_cs_VBFH5p_13.dat";
322 cs32 << tablepath <<
"log_cs_VBFH5pp_8.dat";
324 cs33 << tablepath <<
"log_cs_VBFH5pp_13.dat";
326 cs34 << tablepath <<
"log_cs_VHH5_8.dat";
328 cs35 << tablepath <<
"log_cs_VHH5_13.dat";
330 cs36 << tablepath <<
"log_cs_VHH5mm_8.dat";
332 cs37 << tablepath <<
"log_cs_VHH5mm_13.dat";
334 cs38 << tablepath <<
"log_cs_VHH5pp_8.dat";
336 cs39 << tablepath <<
"log_cs_VHH5pp_13.dat";
338 ex1 << tablepath <<
"180711883.dat";
340 ex2 << tablepath <<
"ATLAS-CONF-2016-104_b.dat";
342 ex3 << tablepath <<
"150608329.dat";
344 ex4 << tablepath <<
"180206149.dat";
346 ex5 << tablepath <<
"CMS-PAS-HIG-16-025.dat";
348 ex6 << tablepath <<
"180512191.dat";
350 ex7 << tablepath <<
"14096064_a.dat";
352 ex8 << tablepath <<
"CMS-PAS-HIG-14-029_a.dat";
354 ex9 << tablepath <<
"14096064_b.dat";
356 ex10 << tablepath <<
"CMS-PAS-HIG-14-029_b.dat";
358 ex11 << tablepath <<
"170907242_a.dat";
360 ex12 << tablepath <<
"180306553_a.dat";
362 ex13 << tablepath <<
"170907242_b.dat";
364 ex14 << tablepath <<
"180306553_b.dat";
366 ex15 << tablepath <<
"14076583.dat";
368 ex16 << tablepath <<
"170704147.dat";
370 ex17 << tablepath <<
"160902507.dat";
372 ex18 << tablepath <<
"14078150.dat";
374 ex19 << tablepath <<
"CMS-PAS-HIG-16-014.dat";
376 ex20 << tablepath <<
"170800212.dat";
378 ex21 << tablepath <<
"171203143.dat";
380 ex22 << tablepath <<
"150705930_a.dat";
382 ex23 << tablepath <<
"150705930_b.dat";
384 ex24 << tablepath <<
"171206386_a.dat";
386 ex25 << tablepath <<
"171206386_b.dat";
388 ex26 << tablepath <<
"170809638_a.dat";
390 ex27 << tablepath <<
"170809638_b.dat";
392 ex28 << tablepath <<
"180401939_a.dat";
394 ex28a << tablepath <<
"180401939_b.dat";
396 ex29 << tablepath <<
"180303838.dat";
398 ex30 << tablepath <<
"150900389_a.dat";
400 ex31 << tablepath <<
"150900389_b.dat";
402 ex32 << tablepath <<
"171001123_a.dat";
404 ex33 << tablepath <<
"171001123_b.dat";
406 ex34 << tablepath <<
"171007235_a.dat";
408 ex35 << tablepath <<
"171007235_b.dat";
410 ex36 << tablepath <<
"CMS-PAS-HIG-16-023.dat";
412 ex37 << tablepath <<
"180209407.dat";
414 ex38 << tablepath <<
"150400936.dat";
416 ex39 << tablepath <<
"170804445.dat";
418 ex40 << tablepath <<
"150904670.dat";
420 ex41 << tablepath <<
"150304114.dat";
422 ex42 << tablepath <<
"160306896.dat";
424 ex43 << tablepath <<
"151001181_a.dat";
426 ex43a << tablepath <<
"170700350.dat";
428 ex44 << tablepath <<
"180406174.dat";
430 ex45 << tablepath <<
"180603548.dat";
432 ex46 << tablepath <<
"171004960.dat";
434 ex47 << tablepath <<
"180704873.dat";
436 ex48 << tablepath <<
"180600408.dat";
438 ex49 << tablepath <<
"170702909.dat";
440 ex50 << tablepath <<
"170804188.dat";
442 ex51 << tablepath <<
"180708567.dat";
444 ex52 << tablepath <<
"150204478_b.dat";
446 ex53 << tablepath <<
"150404710.dat";
448 ex54 << tablepath <<
"150204478_a.dat";
450 ex55 << tablepath <<
"151001181_b.dat";
452 ex56 << tablepath <<
"171206518_a.dat";
454 ex57 << tablepath <<
"171206518_b.dat";
456 ex58 << tablepath <<
"160302991_a.dat";
458 ex59 << tablepath <<
"160302991_b.dat";
460 ex59a << tablepath <<
"180401126_a.dat";
462 ex59b << tablepath <<
"180401126_b.dat";
464 ex60 << tablepath <<
"14126663.dat";
466 ex61 << tablepath <<
"150807774_a.dat";
468 ex62 << tablepath <<
"180707915.dat";
470 ex63 << tablepath <<
"CMS-PAS-HIG-16-031.dat";
472 ex64 << tablepath <<
"151203704.dat";
474 ex65 << tablepath <<
"150807774_b.dat";
476 ex66 << tablepath <<
"180803599.dat";
478 ex67 << tablepath <<
"150304233.dat";
480 ex68 << tablepath <<
"180601532.dat";
482 ex68e << tablepath <<
"180601532_e.dat";
484 ex69 << tablepath <<
"170502942.dat";
486 ex70 << tablepath <<
"14120237_a.dat";
488 ex70a << tablepath <<
"14120237_b.dat";
490 ex70b << tablepath <<
"14120237_c.dat";
492 ex71 << tablepath <<
"171009748.dat";
494 ex72 << tablepath <<
"14106315.dat";
496 ex73 << tablepath <<
"170905822.dat";
498 ex74 << tablepath <<
"180501908.dat";
500 ex75 << tablepath <<
"180801473.dat";
502 ex76 << tablepath <<
"180800336.dat";
504 ex77 << tablepath <<
"180801365.dat";
506 ex78 << tablepath <<
"CMS-PAS-HIG-18-005_a.dat";
508 ex79 << tablepath <<
"CMS-PAS-HIG-18-005_b.dat";
510 ex80 << tablepath <<
"180702826_a.dat";
512 ex81 << tablepath <<
"180702826_b.dat";
514 ex82 << tablepath <<
"CMS-PAS-SMP-18-001.dat";
516 ex83 << tablepath <<
"180801899.dat";
524 double params[] = {mass};
540 double params[] = {mass};
556 double params[] = {mass};
572 double params[] = {mass};
588 double params[] = {mass};
604 double params[] = {mass};
620 double params[] = {mass};
636 double params[] = {mass};
651 double params[] = {mass};
657 double newResult = 0.0;
658 if (mass>=20. && mass <=2000.) {
670 double params[] = {mass};
676 double newResult = 0.0;
677 if (mass>=20. && mass <=2000.) {
689 double params[] = {mass};
695 double newResult = 0.0;
696 if (mass>=20. && mass <=2000.) {
708 double params[] = {mass};
714 double newResult = 0.0;
715 if (mass>=20. && mass <=2000.) {
727 double params[] = {mass};
733 double newResult = 0.0;
734 if (mass>=20. && mass <=2000.) {
746 double params[] = {mass};
752 double newResult = 0.0;
753 if (mass>=20. && mass <=2000.) {
765 double params[] = {mass};
771 double newResult = 0.0;
772 if (mass>=20. && mass <=2000.) {
784 double params[] = {mass};
790 double newResult = 0.0;
791 if (mass>=20. && mass <=2000.) {
803 double params[] = {mass};
809 double newResult = 0.0;
810 if (mass>=20. && mass <=2000.) {
822 double params[] = {mass};
828 double newResult = 0.0;
829 if (mass>=20. && mass <=2000.) {
841 double params[] = {mass};
847 double newResult = 0.0;
848 if (mass>=20. && mass <=2000.) {
860 double params[] = {mass};
866 double newResult = 0.0;
867 if (mass>=20. && mass <=2000.) {
879 double params[] = {mass};
885 double newResult = 0.0;
886 if (mass>=20. && mass <=2000.) {
898 double params[] = {mass};
904 double newResult = 0.0;
905 if (mass>=20. && mass <=2000.) {
917 double params[] = {mass};
923 double newResult = 0.0;
924 if (mass>=20. && mass <=2000.) {
936 double params[] = {mass};
942 double newResult = 0.0;
943 if (mass>=20. && mass <=2000.) {
955 double params[] = {mass};
961 double newResult = 0.0;
962 if (mass>=20. && mass <=2000.) {
974 double params[] = {mass};
980 double newResult = 0.0;
981 if (mass>=20. && mass <=2000.) {
993 double params[] = {mHp, logtb};
999 double newResult = 0.0;
1000 if (mHp>=180. && mHp <=1400. && logtb>=-1. && logtb<=1.75) {
1012 double params[] = {mHp, logtb};
1018 double newResult = 0.0;
1019 if (mHp>=180. && mHp <=2000. && logtb>=-1. && logtb<=1.75) {
1031 double params[] = {mass};
1037 double newResult = 0.0;
1038 if (mass>=150. && mass <=1000.) {
1050 double params[] = {mass};
1056 double newResult = 0.0;
1057 if (mass>=150. && mass <=2000.) {
1069 double params[] = {mass};
1075 double newResult = 0.0;
1076 if (mass>=200. && mass <=1000.) {
1088 double params[] = {mass};
1094 double newResult = 0.0;
1095 if (mass>=200. && mass <=2000.) {
1107 double params[] = {mass};
1113 double newResult = 0.0;
1114 if (mass>=200. && mass <=1000.) {
1126 double params[] = {mass};
1132 double newResult = 0.0;
1133 if (mass>=200. && mass <=2000.) {
1145 double params[] = {mass};
1151 double newResult = 0.0;
1152 if (mass>=200. && mass <=1000.) {
1164 double params[] = {mass};
1170 double newResult = 0.0;
1171 if (mass>=200. && mass <=2000.) {
1183 double params[] = {mass};
1189 double newResult = 0.0;
1190 if (mass>=200. && mass <=1000.) {
1202 double params[] = {mass};
1208 double newResult = 0.0;
1209 if (mass>=200. && mass <=2000.) {
1221 double params[] = {mass};
1227 double newResult = 0.0;
1228 if (mass>=200. && mass <=1000.) {
1240 double params[] = {mass};
1246 double newResult = 0.0;
1247 if (mass>=200. && mass <=2000.) {
1259 double params[] = {mass};
1265 double newResult = 0.0;
1266 if (mass>=150. && mass <=1000.) {
1278 double params[] = {mass};
1284 double newResult = 0.0;
1285 if (mass>=150. && mass <=2000.) {
1297 double params[] = {mass};
1303 double newResult = 0.0;
1304 if (mass>=150. && mass <=1000.) {
1316 double params[] = {mass};
1322 double newResult = 0.0;
1323 if (mass>=150. && mass <=2000.) {
1335 double params[] = {mass};
1341 double newResult = 0.0;
1342 if (mass>=150. && mass <=1000.) {
1354 double params[] = {mass};
1360 double newResult = 0.0;
1361 if (mass>=150. && mass <=2000.) {
1373 double params[] = {mass};
1387 double params[] = {mass};
1401 double params[] = {mass};
1415 double params[] = {mass};
1429 double params[] = {mass};
1443 double params[] = {mass};
1457 double params[] = {mass};
1471 double params[] = {mass};
1485 double params[] = {mass};
1499 double params[] = {mass};
1513 double params[] = {mass};
1527 double params[] = {mass};
1541 double params[] = {mass};
1555 double params[] = {mass};
1569 double params[] = {mass};
1583 double params[] = {mass};
1597 double params[] = {mass};
1611 double params[] = {mass};
1625 double params[] = {mass};
1639 double params[] = {mass};
1653 double params[] = {mass};
1667 double params[] = {mass};
1681 double params[] = {mass};
1695 double params[] = {mass};
1709 double params[] = {mass};
1723 double params[] = {mass};
1737 double params[] = {mass};
1751 double params[] = {mass};
1765 double params[] = {mass};
1779 double params[] = {mass};
1793 double params[] = {mass};
1807 double params[] = {mass};
1821 double params[] = {mass};
1835 double params[] = {mass};
1849 double params[] = {mass};
1863 double params[] = {mass};
1877 double params[] = {mass};
1891 double params[] = {mass};
1905 double params[] = {mass};
1919 double params[] = {mass};
1933 double params[] = {mass};
1947 double params[] = {mass};
1961 double params[] = {mass};
1975 double params[] = {mass};
1989 double params[] = {mass};
2003 double params[] = {mass};
2017 double params[] = {mass};
2031 double params[] = {mass};
2045 double params[] = {mass};
2059 double params[] = {mass};
2073 double params[] = {mass};
2087 double params[] = {mass};
2101 double params[] = {mass};
2115 double params[] = {mass};
2129 double params[] = {mass};
2143 double params[] = {mass};
2157 double params[] = {mass};
2171 double params[] = {mass};
2185 double params[] = {mass};
2199 double params[] = {mass};
2213 double params[] = {mass};
2227 double params[] = {mass};
2241 double params[] = {mass};
2255 double params[] = {mass};
2269 double params[] = {mass};
2283 double params[] = {mass};
2297 double params[] = {mass};
2311 double params[] = {mA,mH};
2325 double params[] = {mA,mH};
2339 double params[] = {mA,mH};
2353 double params[] = {mA,mH};
2367 double params[] = {mHp};
2381 double params[] = {mHp};
2395 double params[] = {mHp};
2409 double params[] = {mHp};
2423 double params[] = {mHp};
2437 double params[] = {mHp};
2451 double params[] = {mHp};
2465 double params[] = {mH5};
2479 double params[] = {mH5};
2493 double params[] = {mH5};
2507 double params[] = {mH5};
2521 double params[] = {mH5};
2535 double params[] = {mH5};
2549 double params[] = {mH5};
2563 double params[] = {mH5};
2577 double params[] = {mH5};
2591 double params[] = {mH5};
2605 double params[] = {mH5};
2619 double params[] = {mH5};
2636 std::ifstream INfile;
2637 std::string lineTab;
2638 INfile.open( filename.c_str() );
2640 std::cout<<
"error: in GMcache, table doesn't exist!"<<std::endl;
2647 while(INfile.good()){
2648 while(getline(INfile, lineTab)){
2649 if( lineTab[0]==
'#' )
continue;
2651 std::istringstream streamTab(lineTab);
2653 while(streamTab >>v){
2669 int rowN=arrayTab.
size_i();
2671 double xmin = arrayTab(0,0);
2672 double xmax = arrayTab(rowN-1,0);
2673 double interval = arrayTab(1,0)-arrayTab(0,0);
2674 int Nintervals = (x-xmin)/interval;
2686 y =(arrayTab(Nintervals+1,1)-arrayTab(Nintervals,1))/interval*(x-arrayTab(Nintervals,0))
2687 +arrayTab(Nintervals,1);
2696 int rowN=arrayTab.
size_i();
2698 double xmin = arrayTab(0,0);
2699 double xmax = arrayTab(rowN-1,0);
2700 double ymin = arrayTab(0,1);
2701 double ymax = arrayTab(rowN-1,1);
2702 double intervalx = arrayTab(1,0)-arrayTab(0,0);
2705 while(arrayTab(i,1)-arrayTab(i-1,1)==0&&i<30000);
2706 double intervaly = arrayTab(i,1)-arrayTab(i-1,1);
2707 int Nintervalsx = (x-xmin)/intervalx;
2708 int Nintervalsy = (y-ymin)/intervaly;
2709 if(x<xmin||x>xmax||y<ymin||y>ymax){
2714 double x1=arrayTab(i*Nintervalsy+Nintervalsx,0);
2715 double x2=arrayTab(i*Nintervalsy+Nintervalsx+1,0);
2716 double y1=arrayTab(i*Nintervalsy+Nintervalsx,1);
2717 double y2=arrayTab(i*(Nintervalsy+1)+Nintervalsx,1);
2718 return (arrayTab(i*Nintervalsy+Nintervalsx,2) * (x2-x) * (y2-y)
2719 +arrayTab(i*Nintervalsy+Nintervalsx+1,2) * (x-x1) * (y2-y)
2720 +arrayTab(i*(Nintervalsy+1)+Nintervalsx,2) * (x2-x) * (y-y1)
2721 +arrayTab(i*(Nintervalsy+1)+Nintervalsx+1,2) * (x-x1) * (y-y1))
2729 double params[] = {
mHl2, Mu, Mc, Mt};
2735 double TAUu=4.0*Mu*Mu/
mHl2;
2736 double TAUc=4.0*Mc*Mc/
mHl2;
2737 double TAUt=4.0*Mt*Mt/
mHl2;
2739 +TAUc*(1.0+(1.0-TAUc)*
f_func(TAUc))+TAUt*(1.0+(1.0-TAUt)*
f_func(TAUt)));
2747 double params[] = {mHh2, Mc, Mt};
2753 double TAUc=4.0*Mc*Mc/mHh2;
2754 double TAUt=4.0*Mt*Mt/mHh2;
2756 +TAUt*(1.0+(1.0-TAUt)*
f_func(TAUt)));
2764 double params[] = {mA2, Mc, Mt};
2770 double TAUc=4.0*Mc*Mc/mA2;
2771 double TAUt=4.0*Mt*Mt/mA2;
2780 double params[] = {
mHl2, Md, Ms, Mb};
2786 double TAUd=4.0*Md*Md/
mHl2;
2787 double TAUs=4.0*Ms*Ms/
mHl2;
2788 double TAUb=4.0*Mb*Mb/
mHl2;
2790 +TAUs*(1.0+(1.0-TAUs)*
f_func(TAUs))+TAUb*(1.0+(1.0-TAUb)*
f_func(TAUb)));
2798 double params[] = {mHh2, Ms, Mb};
2804 double TAUs=4.0*Ms*Ms/mHh2;
2805 double TAUb=4.0*Mb*Mb/mHh2;
2807 +TAUb*(1.0+(1.0-TAUb)*
f_func(TAUb)));
2815 double params[] = {mA2, Ms, Mb};
2821 double TAUs=4.0*Ms*Ms/mA2;
2822 double TAUb=4.0*Mb*Mb/mA2;
2831 double params[] = {
mHl2, Me, Mmu, Mtau};
2837 double TAUe=4.0*Me*Me/
mHl2;
2838 double TAUmu=4.0*Mmu*Mmu/
mHl2;
2839 double TAUtau=4.0*Mtau*Mtau/
mHl2;
2841 +TAUmu*(1.0+(1.0-TAUmu)*
f_func(TAUmu))
2842 +TAUtau*(1.0+(1.0-TAUtau)*
f_func(TAUtau)));
2850 double params[] = {mHh2, Mmu, Mtau};
2856 double TAUmu=4.0*Mmu*Mmu/mHh2;
2857 double TAUtau=4.0*Mtau*Mtau/mHh2;
2859 TAUtau*(1.0+(1.0-TAUtau)*
f_func(TAUtau)));
2867 double params[] = {mA2, Mmu, Mtau};
2873 double TAUmu=4.0*Mmu*Mmu/mA2;
2874 double TAUtau=4.0*Mtau*Mtau/mA2;
2883 double params[] = {mH,
MW};
2889 double TAUw=4.0*
MW*
MW/(mH*mH);
2898 double params[] = {mHp2, mH};
2904 double TAUhp=4.0*mHp2/(mH*mH);
2913 double params[] = {
mHl2,
cW2, Mu, Mc, Mt,
MZ};
2919 double TAUu=4.0*Mu*Mu/
mHl2;
2920 double TAUc=4.0*Mc*Mc/
mHl2;
2921 double TAUt=4.0*Mt*Mt/
mHl2;
2922 double LAMu=4.0*Mu*Mu/(
MZ*
MZ);
2923 double LAMc=4.0*Mc*Mc/(
MZ*
MZ);
2924 double LAMt=4.0*Mt*Mt/(
MZ*
MZ);
2935 double params[] = {mHh2,
cW2, Mc, Mt,
MZ};
2941 double TAUc=4.0*Mc*Mc/mHh2;
2942 double TAUt=4.0*Mt*Mt/mHh2;
2943 double LAMc=4.0*Mc*Mc/(
MZ*
MZ);
2944 double LAMt=4.0*Mt*Mt/(
MZ*
MZ);
2955 double params[] = {mA2,
cW2, Mc, Mt,
MZ};
2961 double TAUc=4.0*Mc*Mc/mA2;
2962 double TAUt=4.0*Mt*Mt/mA2;
2963 double LAMc=4.0*Mc*Mc/(
MZ*
MZ);
2964 double LAMt=4.0*Mt*Mt/(
MZ*
MZ);
2974 double params[] = {
mHl2,
cW2, Md, Ms, Mb,
MZ};
2980 double TAUd=4.0*Md*Md/
mHl2;
2981 double TAUs=4.0*Ms*Ms/
mHl2;
2982 double TAUb=4.0*Mb*Mb/
mHl2;
2983 double LAMd=4.0*Md*Md/(
MZ*
MZ);
2984 double LAMs=4.0*Ms*Ms/(
MZ*
MZ);
2985 double LAMb=4.0*Mb*Mb/(
MZ*
MZ);
2996 double params[] = {mHh2,
cW2, Ms, Mb,
MZ};
3002 double TAUs=4.0*Ms*Ms/mHh2;
3003 double TAUb=4.0*Mb*Mb/mHh2;
3004 double LAMs=4.0*Ms*Ms/(
MZ*
MZ);
3005 double LAMb=4.0*Mb*Mb/(
MZ*
MZ);
3016 double params[] = {mA2,
cW2, Ms, Mb,
MZ};
3022 double TAUs=4.0*Ms*Ms/mA2;
3023 double TAUb=4.0*Mb*Mb/mA2;
3024 double LAMs=4.0*Ms*Ms/(
MZ*
MZ);
3025 double LAMb=4.0*Mb*Mb/(
MZ*
MZ);
3035 double params[] = {
mHl2,
cW2, Me, Mmu, Mtau,
MZ};
3041 double TAUe=4.0*Me*Me/
mHl2;
3042 double TAUmu=4.0*Mmu*Mmu/
mHl2;
3043 double TAUtau=4.0*Mtau*Mtau/
mHl2;
3044 double LAMe=4.0*Me*Me/(
MZ*
MZ);
3045 double LAMmu=4.0*Mmu*Mmu/(
MZ*
MZ);
3046 double LAMtau=4.0*Mtau*Mtau/(
MZ*
MZ);
3050 -
Int2(TAUtau,LAMtau));
3058 double params[] = {mHh2,
cW2, Mmu, Mtau,
MZ};
3064 double TAUmu=4.0*Mmu*Mmu/mHh2;
3065 double TAUtau=4.0*Mtau*Mtau/mHh2;
3066 double LAMmu=4.0*Mmu*Mmu/(
MZ*
MZ);
3067 double LAMtau=4.0*Mtau*Mtau/(
MZ*
MZ);
3070 +
Int1(TAUtau,LAMtau)-
Int2(TAUtau,LAMtau));
3078 double params[] = {mA2,
cW2, Mmu, Mtau,
MZ};
3084 double TAUmu=4.0*Mmu*Mmu/mA2;
3085 double TAUtau=4.0*Mtau*Mtau/mA2;
3086 double LAMmu=4.0*Mmu*Mmu/(
MZ*
MZ);
3087 double LAMtau=4.0*Mtau*Mtau/(
MZ*
MZ);
3097 double params[] = {mH,
cW2,
MW,
MZ};
3103 double TAUw=4.0*
MW*
MW/(mH*mH);
3107 +((1.0+2.0/TAUw)*sW2/
cW2-(5.0+2.0/TAUw))*
Int1(TAUw,LAMw));
3115 double params[] = {mHp2, mH,
cW2,
MZ};
3121 double TAUhp=4.0*mHp2/(mH*mH);
3122 double LAMhp=4.0*mHp2/(
MZ*
MZ);
3136 return pow(asin(
sqrt(1.0/x)),2);
3153 return tau*lambda/(tau-lambda)/2.0+tau*tau*lambda*lambda/((tau-lambda)
3154 *(tau-lambda))/2.0*(
f_func(tau)-
f_func(lambda))+tau*tau*lambda/((tau-lambda)
3159 return -tau*lambda/(tau-lambda)/2.0*(
f_func(tau)-
f_func(lambda));
3187 double sqrtrh_ff=0., sqrtrh_VV=0., gh_H3=0., gh_H5=0.;
3203 rh_ff = sqrtrh_ff*sqrtrh_ff;
3204 rh_VV = sqrtrh_VV*sqrtrh_VV;
3214 double ABSgagaGM=(I_h_F+I_h_W+I_h_Hp).abs2();
3215 double ABSgagaSM=(I_hSM_F+I_hSM_W).abs2();
3225 gslpp::complex A_hSM_F =
A_h_U(
mHl2,
cW2,Mu,Mc,Mt,
MZ)+
A_h_D(
mHl2,
cW2,Md,Ms,Mb,
MZ)+
A_h_L(
mHl2,
cW2,Me,Mmu,Mtau,
MZ);
3231 double ABSZgaGM=(A_h_F+A_h_W+A_h_Hp).abs2();
3232 double ABSZgaSM=(A_hSM_F+A_hSM_W).abs2();
3233 rh_Zga=ABSZgaGM/ABSZgaSM;
3263 else if(x==0)
return 0.5;
3269 double params[] = {a2, b2, c2};
3276 double newResult = 0.0;
3277 double x = (a2-b2-c2)*(a2-b2-c2)-4.0*b2*c2;
3278 if(x>0) newResult =
sqrt(std::fabs(x/a2))/2.0;
3286 double params[] = {k};
3293 double newResult=0.0;
3295 newResult = (((1.0-8.0*k+20.0*k*k)/
sqrt(fabs(4.0*k-1.0)))*acos(
HSTheta(k-0.25)*(3.0*k-1.0)/(2.0*k*
sqrt(k)))
3296 -(1.0-k)/(6.0*k)*(2.0-13.0*k+47.0*k*k) - 0.5*(1.0-6.0*k+4.0*k*k)*
log(k));
3325 double sqrtrHH_ff=0., sqrtrHH_VV=0., gHH_H3=0., gHH_H5=0.;
3341 rHH_ff = sqrtrHH_ff*sqrtrHH_ff;
3342 rHH_VV = sqrtrHH_VV*sqrtrHH_VV;
3362 I_HH_F=sqrtrHH_ff*(I_HH_Ux+I_HH_Dx+I_HH_Lx);
3363 A_HH_F=sqrtrHH_ff*(A_HH_Ux+A_HH_Dx+A_HH_Lx)/
sqrt(sW2*
cW2);
3366 *(I_HH_F+I_HH_W+I_HH_Hp).abs2();
3375 *(A_HH_F+A_HH_W+A_HH_Hp).abs2();
3384 *(9.0/4.0)*(I_HH_Ux/4.0+I_HH_Dx).abs2();
3387 gslpp::complex A_A_F=
sqrt(rA_ff)*(
A_A_U(
mAsq,
cW2,Mc,Mt,
MZ)+
A_A_D(
mAsq,
cW2,Ms,Mb,
MZ)+
A_A_L(
mAsq,
cW2,Mmu,Mtau,
MZ));
3392 *(1.0-
MZ*
MZ/(mA*mA))*(1.0-
MZ*
MZ/(mA*mA))*(1.0-
MZ*
MZ/(mA*mA))
3395 double Gamma_Agg=rA_ff*
GF*Als*Als*mA*
mAsq/(
sqrt(2.0)*16.0*M_PI*M_PI*M_PI)
3398 double Gamma_Att=
HSTheta(mA-2.0*MtPole)*rA_ff*3.0*Mt*Mt*
sqrt(fabs(
mAsq-4.0*MtPole*MtPole))/(8.0*M_PI*
vev*
vev);
3410 double Gamma_H5gg=0.0;
3413 *(A_H5_W+A_H5_Hp).abs2();
3427 if (mHh>=20. && mHh <=2000.) {
3430 if (mH5>=20. && mH5 <=2000.) {
3493 *(
mAsq*(MtPole*MtPole+Mb*Mb) - (MtPole*MtPole-Mb*Mb)*(MtPole*MtPole-Mb*Mb))
3505 *(1.0-4.0*kW+12.0*kW*kW)
3523 double GammaH5ppWW =
3525 *(1.0-4.0*kW+12.0*kW*kW)
3612 double GammaHH5pH5m = 2.0*GammaHH5H5;
3614 double GammaHH5ppH5mm = 2.0*GammaHH5H5;
3628 GammaH1tot= (
rHH_ff*(BrSM_Htott+BrSM_Htocc+BrSM_Htobb+BrSM_Htotautau+BrSM_Htomumu)
3630 +Gamma_Hgg+Gamma_Hgaga+Gamma_HZga
3632 +GammaHhh+GammaHHpHm+GammaHAA
3633 +GammaHH5H5+GammaHH5pH5m+GammaHH5ppH5mm;
3636 +Gamma_Att+Gamma_Agg+Gamma_Agaga+Gamma_AZga
3638 +GammaAH5Z+GammaAH5pW;
3641 +GammaHphW+GammaHpHW
3642 +GammaHpH5pZ+GammaHpH5W+GammaHpH5ppW+1.e-20;
3645 +Gamma_H5gg+Gamma_H5gaga+Gamma_H5Zga
3646 +GammaH5AZ+GammaH5HpW
3647 +GammaH5HpHm+GammaH5AA+1.e-20;
3649 GammaH5ptot= GammaH5pZW+GammaH5pAW+GammaH5pHpZ+GammaH5pHpA+1.e-20;
3651 GammaH5pptot= GammaH5ppWW+GammaH5ppHpW+GammaH5ppHpHp+1.e-20;
3770 double Br_Ztoee=0.03363;
3771 double Br_Ztomumu=0.03366;
3774 double Br_Wtoenu=0.1071;
3775 double Br_Wtomunu=0.1063;
4253 double nftos=1.95996398454;
4632 sinb=std::numeric_limits<double>::quiet_NaN();
4647 double mHlsq, mHhsq;