a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
GeneralTHDMcache.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016 HEPfit Collaboration
3  * All rights reserved.
4  *
5  * For the licensing terms see doc/COPYING.
6  */
7 
8 #include "GeneralTHDMcache.h"
9 #include <fstream>
10 #include "gslpp.h"
11 #include <sstream>
12 #include <string>
13 
14 //#include "log_cs_ggH_13.h"
15 
16 
17 
19 : br_tt(19961, 2, 0.),
20  br_bb(19961, 2, 0.),
21  br_tautau(19961, 2, 0.),
22  br_cc(19961, 2, 0.),
23  br_mumu(19961, 2, 0.),
24  br_ZZ(19961, 2, 0.),
25  br_WW(19961, 2, 0.),
26  GammaHtot_SM(19961, 2, 0.),
27  log_cs_ggH_8(199, 2, 0.),
28  log_cs_VBF_8(199, 2, 0.),
29  log_cs_WH_8(199, 2, 0.),
30  log_cs_ZH_8(199, 2, 0.),
31  log_cs_ggH_13(199, 2, 0.),
32  log_cs_VBF_13(199, 2, 0.),
33  log_cs_WH_13(199, 2, 0.),
34  log_cs_ZH_13(199, 2, 0.),
35  log_cs_ttH_8(199, 2, 0.),
36  log_cs_ttH_13(199, 2, 0.),
37  log_cs_bbH_8(199, 2, 0.),
38  log_cs_bbH_13(199, 2, 0.),
39  log_cs_ggA_8(199, 2, 0.),
40  log_cs_ttA_8(199, 2, 0.),
41  log_cs_bbA_8(199, 2, 0.),
42  log_cs_ggA_13(199, 2, 0.),
43  log_cs_ttA_13(199, 2, 0.),
44  log_cs_bbA_13(199, 2, 0.),
45  log_cs_ggHp_8(744, 3, 0.),
46  log_cs_ggHp_13(1104, 3, 0.),
47  csrH_top_8(199, 2, 0.),
48  csrH_bottom_8(199, 2, 0.),
49  csrA_top_8(199, 2, 0.),
50  csrA_bottom_8(199, 2, 0.),
51  csrH_top_13(199, 2, 0.),
52  csrH_bottom_13(199, 2, 0.),
53  csrA_top_13(199, 2, 0.),
54  csrA_bottom_13(199, 2, 0.),
55  //
56  ATLAS8_gg_phi_tautau(92, 2, 0.),
57  ATLAS8_bb_phi_tautau(92, 2, 0.),
58  ATLAS8_gg_phi_gaga(108, 2, 0.),
59  ATLAS8_pp_phi_Zga_llga(141, 2, 0.),
60  ATLAS8_gg_phi_ZZ(173, 2, 0.),
61  ATLAS8_VV_phi_ZZ(173, 2, 0.),
62  ATLAS8_gg_phi_WW(13, 2, 0.),
63  ATLAS8_VV_phi_WW(13, 2, 0.),
64  ATLAS8_gg_phi_phi1phi1(75, 2, 0.),
65  ATLAS8_gg_phi_phi1Z_bbZ(79, 2, 0.),
66  ATLAS8_gg_phi_phi1Z_tautauZ(79, 2, 0.),
67  CMS8_mu_pp_phi_VV(172, 2, 0.),
68  CMS8_bb_phi_bb(81, 2, 0.),
69  CMS8_gg_phi_bb(88, 2, 0.),
70  CMS8_gg_phi_tautau(92, 2, 0.),
71  CMS8_bb_phi_tautau(92, 2, 0.),
72  CMS8_pp_phi_Zga_llga(101, 2, 0.),
73  CMS8_pp_phi_phi1phi1_bbbb(167, 2, 0.),
74  CMS8_pp_phi_phi1phi1_bbgaga(85, 2, 0.),
75  CMS8_gg_phi_phi1phi1_bbtautau(10, 2, 0.),
76  CMS8_pp_phi_phi1phi1_bbtautau(71, 2, 0.),
77  CMS8_gg_phi_phi1Z_bbll(16, 2, 0.),
78  CMS8_gg_phi_phi1Z_tautaull(14, 2, 0.),
79  CMS8_pp_phii_phijZ_bbll_1(28718, 3, 0.),
80  CMS8_pp_phii_phijZ_bbll_2(29050, 3, 0.),
81  CMS8_pp_phii_phijZ_tautaull_1(400, 3, 0.),
82  CMS8_pp_phii_phijZ_tautaull_2(400, 3, 0.),
83  ATLAS13_tt_phi_tt(61, 2, 0.),
84  ATLAS13_bb_phi_tt(61, 2, 0.),
85  ATLAS13_gg_phi_tautau(206, 2, 0.),
86  ATLAS13_bb_phi_tautau(206, 2, 0.),
87  ATLAS13_pp_phi_gaga(251, 2, 0.),
88  ATLAS13_gg_phi_Zga_llga(216, 2, 0.),
89  ATLAS13_gg_phi_Zga_qqga(581, 2, 0.),
90  ATLAS13_gg_phi_ZZ_llllnunu(101, 2, 0.),
91  ATLAS13_VV_phi_ZZ_llllnunu(101, 2, 0.),
92  ATLAS13_gg_phi_ZZ_qqllnunu(271, 2, 0.),
93  ATLAS13_VV_phi_ZZ_qqllnunu(271, 2, 0.),
94  ATLAS13_gg_phi_WW_enumunu(381, 2, 0.),
95  ATLAS13_VV_phi_WW_enumunu(281, 2, 0.),
96  ATLAS13_gg_phi_WW_lnuqq(271, 2, 0.),
97  ATLAS13_VV_phi_WW_lnuqq(271, 2, 0.),
98  ATLAS13_pp_phi_VV_qqqq(181, 2, 0.),
99  ATLAS13_pp_phi_phi1phi1_bbbb(275, 2, 0.),
100  ATLAS13_pp_phi_phi1phi1_bbgaga(75, 2, 0.),
101  ATLAS13_pp_phi_phi1phi1_bbtautau(75, 2, 0.),
102  ATLAS13_pp_phi_phi1phi1_bbWW(51, 2, 0.),
103  ATLAS13_gg_phi_phi1phi1_gagaWW(25, 2, 0.),
104  ATLAS13_gg_phi_phi1Z_bbZ(181, 2, 0.),
105  ATLAS13_bb_phi_phi1Z_bbZ(181, 2, 0.),
106  ATLAS13_gg_phii_phijZ_bbZ(3364, 3, 0.),
107  ATLAS13_bb_phii_phijZ_bbZ(3364, 3, 0.),
108  CMS13_pp_phi_bb(66, 2, 0.),
109  CMS13_bb_phi_bb(101, 2, 0.),
110  CMS13_gg_phi_tautau(312, 2, 0.),
111  CMS13_bb_phi_tautau(312, 2, 0.),
112  CMS13_gg_phi_gaga(351, 2, 0.),
113  CMS13_gg_phi_Zga(366, 2, 0.),
114  CMS13_pp_phi_ZZ_llqqnunull(288, 2, 0.),
115  CMS13_pp_phi_ZZ_qqnunu(301, 2, 0.),
116  CMS13_ggVV_phi_WW_lnulnu(81, 2, 0.),
117  CMS13_pp_phi_WW_lnuqq(341, 2, 0.),
118  CMS13_pp_phi_phi1phi1_bbbb_1(95, 2, 0.),
119  CMS13_pp_phi_phi1phi1_bbbb_2(181, 2, 0.),
120  CMS13_pp_phi_phi1phi1_bbgaga(66, 2, 0.),
121  CMS13_pp_phi_phi1phi1_bbtautau_1(66, 2, 0.),
122  CMS13_pp_phi_phi1phi1_bbtautau_2(311, 2, 0.),
123  CMS13_pp_phi_phi1phi1_bbVV(65, 2, 0.),
124  CMS13_gg_phi_phi1Z_bbZ_1(79, 2, 0.),
125  CMS13_gg_phi_phi1Z_bbZ_2(121, 2, 0.),
126  CMS13_bb_phi_phi1Z_bbZ_1(79, 2, 0.),
127  CMS13_bb_phi_phi1Z_bbZ_2(121, 2, 0.),
128  ATLAS8_pp_Hpm_taunu(83, 2, 0.),
129  ATLAS8_pp_Hpm_tb(41, 2, 0.),
130  CMS8_pp_Hp_taunu(43, 2, 0.),
131  CMS8_pp_Hp_tb(43, 2, 0.),
132  ATLAS13_pp_Hpm_taunu(192, 2, 0.),
133  ATLAS13_pp_Hpm_tb(181, 2, 0.),
134  CMS13_pp_Hpm_taunu(283, 2, 0.),
135  arraybsgamma(1111, 3, 0.),
136  Mu_GTHDM(3,3,0.), Md_GTHDM(3,3,0.), Ml_GTHDM(3,3,0.),
137  Nu_GTHDM(3,3,0.), Nd_GTHDM(3,3,0.), Nl_GTHDM(3,3,0.),
138  Yu1_GTHDM(3,3,0.), Yu2_GTHDM(3,3,0.), Yd1_GTHDM(3,3,0.), Yd2_GTHDM(3,3,0.),
139  Yl1_GTHDM(3,3,0.), Yl2_GTHDM(3,3,0.),
140  //
141  myGTHDM(static_cast<const GeneralTHDM*> (&SM_i)),
142  PV(true)
143 {
144  read();
145 }
147 {}
148 
150 
151 int GeneralTHDMcache::CacheCheck(const gslpp::complex cache[][CacheSize],
152  const int NumPar, const double params[]) const {
153  bool bCache;
154  for(int i=0; i<CacheSize; i++) {
155  bCache = true;
156  for(int j=0; j<NumPar; j++)
157  bCache &= (params[j] == cache[j][i].real());
158  if (bCache) return i;
159  }
160  return -1;
161 }
162 
163 int GeneralTHDMcache::CacheCheckReal(const double cache[][CacheSize],
164  const int NumPar, const double params[]) const {
165  bool bCache;
166  for(int i=0; i<CacheSize; i++) {
167  bCache = true;
168  for(int j=0; j<NumPar; j++)
169  bCache &= (params[j] == cache[j][i]);
170  if (bCache) return i;
171  }
172  return -1;
173 }
174 
175 
176 void GeneralTHDMcache::CacheShift(gslpp::complex cache[][CacheSize], const int NumPar,
177  const double params[], const gslpp::complex newResult) const {
178  // shift old parameters and result
179  for(int i=CacheSize-1; i>0; i--)
180  for(int j=0; j<NumPar+1; j++)
181  cache[j][i] = cache[j][i-1];
182 
183  // store new parameters and result
184  for(int j=0; j<NumPar; j++) {
185  cache[j][0] = gslpp::complex(params[j], 0.0, false);
186  cache[NumPar][0] = newResult;
187  }
188 }
189 
190 void GeneralTHDMcache::CacheShiftReal(double cache[][CacheSize], const int NumPar,
191  const double params[], const double newResult) const {
192  // shift old parameters and result
193  for(int i=CacheSize-1; i>0; i--)
194  for(int j=0; j<NumPar+1; j++)
195  cache[j][i] = cache[j][i-1];
196 
197  // store new parameters and result
198  for(int j=0; j<NumPar; j++) {
199  cache[j][0] = params[j];
200  cache[NumPar][0] = newResult;
201  }
202 }
203 
205 /*One-loop functions*/
207 
208 gslpp::complex GeneralTHDMcache::B0_MZ2_0_MW2_mHh2(const double MZ2, const double MW2, const double mHh2) const {
209  int NumPar = 3;
210  double params[] = {MZ2, MW2, mHh2};
211 
212  int i = CacheCheck(B0_MZ2_0_MW2_mHh2_cache, NumPar, params);
213  if (i>=0) {
214  return ( B0_MZ2_0_MW2_mHh2_cache[NumPar][i] );
215  } else {
216  gslpp::complex newResult = PV.B0(MZ2, 0., MW2, mHh2);
217  CacheShift(B0_MZ2_0_MW2_mHh2_cache, NumPar, params, newResult);
218  return newResult;
219  }
220 }
221 
222 gslpp::complex GeneralTHDMcache::B0_MZ2_0_MW2_mHl2(const double MZ2, const double MW2, const double mHl2) const {
223  int NumPar = 3;
224  double params[] = {MZ2, MW2, mHl2};
225 
226  int i = CacheCheck(B0_MZ2_0_MW2_mHl2_cache, NumPar, params);
227  if (i>=0) {
228  return ( B0_MZ2_0_MW2_mHl2_cache[NumPar][i] );
229  } else {
230  gslpp::complex newResult = PV.B0(MZ2, 0., MW2, mHl2);
231  CacheShift(B0_MZ2_0_MW2_mHl2_cache, NumPar, params, newResult);
232  return newResult;
233  }
234 }
235 
236 gslpp::complex GeneralTHDMcache::B0_MZ2_0_MZ2_mHh2(const double MZ2, const double mHh2) const {
237  int NumPar = 2;
238  double params[] = {MZ2, mHh2};
239 
240  int i = CacheCheck(B0_MZ2_0_MZ2_mHh2_cache, NumPar, params);
241  if (i>=0) {
242  return ( B0_MZ2_0_MZ2_mHh2_cache[NumPar][i] );
243  } else {
244  gslpp::complex newResult = PV.B0(MZ2, 0., MZ2, mHh2);
245  CacheShift(B0_MZ2_0_MZ2_mHh2_cache, NumPar, params, newResult);
246  return newResult;
247  }
248 }
249 
250 gslpp::complex GeneralTHDMcache::B0_MZ2_0_MZ2_mHl2(const double MZ2, const double mHl2) const {
251  int NumPar = 2;
252  double params[] = {MZ2, mHl2};
253 
254  int i = CacheCheck(B0_MZ2_0_MZ2_mHl2_cache, NumPar, params);
255  if (i>=0) {
256  return ( B0_MZ2_0_MZ2_mHl2_cache[NumPar][i] );
257  } else {
258  gslpp::complex newResult = PV.B0(MZ2, 0., MZ2, mHl2);
259  CacheShift(B0_MZ2_0_MZ2_mHl2_cache, NumPar, params, newResult);
260  return newResult;
261  }
262 }
263 
264 gslpp::complex GeneralTHDMcache::B0_MZ2_MW2_MW2_mHh2(const double MZ2, const double MW2, const double mHh2) const {
265  int NumPar = 3;
266  double params[] = {MZ2, MW2, mHh2};
267 
268  int i = CacheCheck(B0_MZ2_MW2_MW2_mHh2_cache, NumPar, params);
269  if (i>=0) {
270  return ( B0_MZ2_MW2_MW2_mHh2_cache[NumPar][i] );
271  } else {
272  gslpp::complex newResult = PV.B0(MZ2, MW2, MW2, mHh2);
273  CacheShift(B0_MZ2_MW2_MW2_mHh2_cache, NumPar, params, newResult);
274  return newResult;
275  }
276 }
277 
278 gslpp::complex GeneralTHDMcache::B0_MZ2_MW2_MW2_mHl2(const double MZ2, const double MW2, const double mHl2) const {
279  int NumPar = 3;
280  double params[] = {MZ2, MW2, mHl2};
281 
282  int i = CacheCheck(B0_MZ2_MW2_MW2_mHl2_cache, NumPar, params);
283  if (i>=0) {
284  return ( B0_MZ2_MW2_MW2_mHl2_cache[NumPar][i] );
285  } else {
286  gslpp::complex newResult = PV.B0(MZ2, MW2, MW2, mHl2);
287  CacheShift(B0_MZ2_MW2_MW2_mHl2_cache, NumPar, params, newResult);
288  return newResult;
289  }
290 }
291 
292 gslpp::complex GeneralTHDMcache::B0_MZ2_MZ2_MZ2_mHh2(const double MZ2, const double mHh2) const {
293  int NumPar = 2;
294  double params[] = {MZ2, mHh2};
295 
296  int i = CacheCheck(B0_MZ2_MZ2_MZ2_mHh2_cache, NumPar, params);
297  if (i>=0) {
298  return ( B0_MZ2_MZ2_MZ2_mHh2_cache[NumPar][i] );
299  } else {
300  gslpp::complex newResult = PV.B0(MZ2, MZ2, MZ2, mHh2);
301  CacheShift(B0_MZ2_MZ2_MZ2_mHh2_cache, NumPar, params, newResult);
302  return newResult;
303  }
304 }
305 
306 gslpp::complex GeneralTHDMcache::B0_MZ2_MZ2_MZ2_mHl2(const double MZ2, const double mHl2) const {
307  int NumPar = 2;
308  double params[] = {MZ2, mHl2};
309 
310  int i = CacheCheck(B0_MZ2_MZ2_MZ2_mHl2_cache, NumPar, params);
311  if (i>=0) {
312  return ( B0_MZ2_MZ2_MZ2_mHl2_cache[NumPar][i] );
313  } else {
314  gslpp::complex newResult = PV.B0(MZ2, MZ2, MZ2, mHl2);
315  CacheShift(B0_MZ2_MZ2_MZ2_mHl2_cache, NumPar, params, newResult);
316  return newResult;
317  }
318 }
319 
320 gslpp::complex GeneralTHDMcache::B0_MZ2_0_0_mHl2(const double MZ2, const double mHl2) const {
321  int NumPar = 2;
322  double params[] = {MZ2, mHl2};
323 
324  int i = CacheCheck(B0_MZ2_0_0_mHl2_cache, NumPar, params);
325  if (i>=0) {
326  return ( B0_MZ2_0_0_mHl2_cache[NumPar][i] );
327  } else {
328  gslpp::complex newResult = PV.B0(MZ2, 0.0, 0.0, mHl2);
329  CacheShift(B0_MZ2_0_0_mHl2_cache, NumPar, params, newResult);
330  return newResult;
331  }
332 }
333 
334 gslpp::complex GeneralTHDMcache::B0_MZ2_0_0_mHh2(const double MZ2, const double mHh2) const {
335  int NumPar = 2;
336  double params[] = {MZ2, mHh2};
337 
338  int i = CacheCheck(B0_MZ2_0_0_mHh2_cache, NumPar, params);
339  if (i>=0) {
340  return ( B0_MZ2_0_0_mHh2_cache[NumPar][i] );
341  } else {
342  gslpp::complex newResult = PV.B0(MZ2, 0.0, 0.0, mHh2);
343  CacheShift(B0_MZ2_0_0_mHh2_cache, NumPar, params, newResult);
344  return newResult;
345  }
346 }
347 
348 gslpp::complex GeneralTHDMcache::B0_MZ2_0_mHp2_mHl2(const double MZ2, const double mHp2, const double mHl2) const {
349  int NumPar = 3;
350  double params[] = {MZ2, mHp2, mHl2};
351 
352  int i = CacheCheck(B0_MZ2_0_mHp2_mHl2_cache, NumPar, params);
353  if (i>=0) {
354  return ( B0_MZ2_0_mHp2_mHl2_cache[NumPar][i] );
355  } else {
356  gslpp::complex newResult = PV.B0(MZ2, 0.0, mHp2, mHl2);
357  CacheShift(B0_MZ2_0_mHp2_mHl2_cache, NumPar, params, newResult);
358  return newResult;
359  }
360 }
361 
362 gslpp::complex GeneralTHDMcache::B0_MZ2_0_mHp2_mHh2(const double MZ2, const double mHp2, const double mHh2) const {
363  int NumPar = 3;
364  double params[] = {MZ2, mHp2, mHh2};
365 
366  int i = CacheCheck(B0_MZ2_0_mHp2_mHh2_cache, NumPar, params);
367  if (i>=0) {
368  return ( B0_MZ2_0_mHp2_mHh2_cache[NumPar][i] );
369  } else {
370  gslpp::complex newResult = PV.B0(MZ2, 0.0, mHp2, mHh2);
371  CacheShift(B0_MZ2_0_mHp2_mHh2_cache, NumPar, params, newResult);
372  return newResult;
373  }
374 }
375 
376 gslpp::complex GeneralTHDMcache::B0_MZ2_0_mA2_mHl2(const double MZ2, const double mA2, const double mHl2) const {
377  int NumPar = 3;
378  double params[] = {MZ2, mA2, mHl2};
379 
380  int i = CacheCheck(B0_MZ2_0_mA2_mHl2_cache, NumPar, params);
381  if (i>=0) {
382  return ( B0_MZ2_0_mA2_mHl2_cache[NumPar][i] );
383  } else {
384  gslpp::complex newResult = PV.B0(MZ2, 0.0, mA2, mHl2);
385  CacheShift(B0_MZ2_0_mA2_mHl2_cache, NumPar, params, newResult);
386  return newResult;
387  }
388 }
389 
390 gslpp::complex GeneralTHDMcache::B0_MZ2_0_mA2_mHh2(const double MZ2, const double mA2, const double mHh2) const {
391  int NumPar = 3;
392  double params[] = {MZ2, mA2, mHh2};
393 
394  int i = CacheCheck(B0_MZ2_0_mA2_mHh2_cache, NumPar, params);
395  if (i>=0) {
396  return ( B0_MZ2_0_mA2_mHh2_cache[NumPar][i] );
397  } else {
398  gslpp::complex newResult = PV.B0(MZ2, 0.0, mA2, mHh2);
399  CacheShift(B0_MZ2_0_mA2_mHh2_cache, NumPar, params, newResult);
400  return newResult;
401  }
402 }
403 
404 gslpp::complex GeneralTHDMcache::B0_MZ2_mHl2_0_0(const double MZ2, const double mHl2) const {
405  int NumPar = 2;
406  double params[] = {MZ2, mHl2};
407 
408  int i = CacheCheck(B0_MZ2_mHl2_0_0_cache, NumPar, params);
409  if (i>=0) {
410  return ( B0_MZ2_mHl2_0_0_cache[NumPar][i] );
411  } else {
412  gslpp::complex newResult = PV.B0(MZ2, mHl2, 0.0, 0.0);
413  CacheShift(B0_MZ2_mHl2_0_0_cache, NumPar, params, newResult);
414  return newResult;
415  }
416 }
417 
418 gslpp::complex GeneralTHDMcache::B0_MZ2_mHl2_0_mHp2(const double MZ2, const double mHl2, const double mHp2) const {
419  int NumPar = 3;
420  double params[] = {MZ2, mHl2, mHp2};
421 
422  int i = CacheCheck(B0_MZ2_mHl2_0_mHp2_cache, NumPar, params);
423  if (i>=0) {
424  return ( B0_MZ2_mHl2_0_mHp2_cache[NumPar][i] );
425  } else {
426  gslpp::complex newResult = PV.B0(MZ2, mHl2, 0.0, mHp2);
427  CacheShift(B0_MZ2_mHl2_0_mHp2_cache, NumPar, params, newResult);
428  return newResult;
429  }
430 }
431 
432 gslpp::complex GeneralTHDMcache::B0_MZ2_mHl2_0_mA2(const double MZ2, const double mHl2, const double mA2) const {
433  int NumPar = 3;
434  double params[] = {MZ2, mHl2, mA2};
435 
436  int i = CacheCheck(B0_MZ2_mHl2_0_mA2_cache, NumPar, params);
437  if (i>=0) {
438  return ( B0_MZ2_mHl2_0_mA2_cache[NumPar][i] );
439  } else {
440  gslpp::complex newResult = PV.B0(MZ2, mHl2, 0.0, mA2);
441  CacheShift(B0_MZ2_mHl2_0_mA2_cache, NumPar, params, newResult);
442  return newResult;
443  }
444 }
445 
446 gslpp::complex GeneralTHDMcache::B0_MZ2_mHl2_mHl2_mHl2(const double MZ2, const double mHl2) const {
447  int NumPar = 2;
448  double params[] = {MZ2, mHl2};
449 
450  int i = CacheCheck(B0_MZ2_mHl2_mHl2_mHl2_cache, NumPar, params);
451  if (i>=0) {
452  return ( B0_MZ2_mHl2_mHl2_mHl2_cache[NumPar][i] );
453  } else {
454  gslpp::complex newResult = PV.B0(MZ2, mHl2, mHl2, mHl2);
455  CacheShift(B0_MZ2_mHl2_mHl2_mHl2_cache, NumPar, params, newResult);
456  return newResult;
457  }
458 }
459 
460 gslpp::complex GeneralTHDMcache::B0_MZ2_mHl2_mHh2_mHl2(const double MZ2, const double mHl2, const double mHh2) const {
461  int NumPar = 3;
462  double params[] = {MZ2, mHl2, mHh2};
463 
464  int i = CacheCheck(B0_MZ2_mHl2_mHh2_mHl2_cache, NumPar, params);
465  if (i>=0) {
466  return ( B0_MZ2_mHl2_mHh2_mHl2_cache[NumPar][i] );
467  } else {
468  gslpp::complex newResult = PV.B0(MZ2, mHl2, mHh2, mHl2);
469  CacheShift(B0_MZ2_mHl2_mHh2_mHl2_cache, NumPar, params, newResult);
470  return newResult;
471  }
472 }
473 
474 gslpp::complex GeneralTHDMcache::B0_MZ2_mHl2_mHh2_mHh2(const double MZ2, const double mHl2, const double mHh2) const {
475  int NumPar = 3;
476  double params[] = {MZ2, mHl2, mHh2};
477 
478  int i = CacheCheck(B0_MZ2_mHl2_mHh2_mHh2_cache, NumPar, params);
479  if (i>=0) {
480  return ( B0_MZ2_mHl2_mHh2_mHh2_cache[NumPar][i] );
481  } else {
482  gslpp::complex newResult = PV.B0(MZ2, mHl2, mHh2, mHh2);
483  CacheShift(B0_MZ2_mHl2_mHh2_mHh2_cache, NumPar, params, newResult);
484  return newResult;
485  }
486 }
487 
488 gslpp::complex GeneralTHDMcache::B0_MZ2_mHl2_mHp2_mHp2(const double MZ2, const double mHl2, const double mHp2) const {
489  int NumPar = 3;
490  double params[] = {MZ2, mHl2, mHp2};
491 
492  int i = CacheCheck(B0_MZ2_mHl2_mHp2_mHp2_cache, NumPar, params);
493  if (i>=0) {
494  return ( B0_MZ2_mHl2_mHp2_mHp2_cache[NumPar][i] );
495  } else {
496  gslpp::complex newResult = PV.B0(MZ2, mHl2, mHp2, mHp2);
497  CacheShift(B0_MZ2_mHl2_mHp2_mHp2_cache, NumPar, params, newResult);
498  return newResult;
499  }
500 }
501 
502 gslpp::complex GeneralTHDMcache::B0_MZ2_mHl2_mA2_mA2(const double MZ2, const double mHl2, const double mA2) const {
503  int NumPar = 3;
504  double params[] = {MZ2, mHl2, mA2};
505 
506  int i = CacheCheck(B0_MZ2_mHl2_mA2_mA2_cache, NumPar, params);
507  if (i>=0) {
508  return ( B0_MZ2_mHl2_mA2_mA2_cache[NumPar][i] );
509  } else {
510  gslpp::complex newResult = PV.B0(MZ2, mHl2, mA2, mA2);
511  CacheShift(B0_MZ2_mHl2_mA2_mA2_cache, NumPar, params, newResult);
512  return newResult;
513  }
514 }
515 
516 gslpp::complex GeneralTHDMcache::B0_MZ2_mHh2_0_0(const double MZ2, const double mHh2) const {
517  int NumPar = 2;
518  double params[] = {MZ2, mHh2};
519 
520  int i = CacheCheck(B0_MZ2_mHh2_0_0_cache, NumPar, params);
521  if (i>=0) {
522  return ( B0_MZ2_mHh2_0_0_cache[NumPar][i] );
523  } else {
524  gslpp::complex newResult = PV.B0(MZ2, mHh2, 0.0, 0.0);
525  CacheShift(B0_MZ2_mHh2_0_0_cache, NumPar, params, newResult);
526  return newResult;
527  }
528 }
529 
530 gslpp::complex GeneralTHDMcache::B0_MZ2_mHh2_0_mHp2(const double MZ2, const double mHh2, const double mHp2) const {
531  int NumPar = 3;
532  double params[] = {MZ2, mHh2, mHp2};
533 
534  int i = CacheCheck(B0_MZ2_mHh2_0_mHp2_cache, NumPar, params);
535  if (i>=0) {
536  return ( B0_MZ2_mHh2_0_mHp2_cache[NumPar][i] );
537  } else {
538  gslpp::complex newResult = PV.B0(MZ2, mHh2, 0.0, mHp2);
539  CacheShift(B0_MZ2_mHh2_0_mHp2_cache, NumPar, params, newResult);
540  return newResult;
541  }
542 }
543 
544 gslpp::complex GeneralTHDMcache::B0_MZ2_mHh2_0_mA2(const double MZ2, const double mHh2, const double mA2) const {
545  int NumPar = 3;
546  double params[] = {MZ2, mHh2, mA2};
547 
548  int i = CacheCheck(B0_MZ2_mHh2_0_mA2_cache, NumPar, params);
549  if (i>=0) {
550  return ( B0_MZ2_mHh2_0_mA2_cache[NumPar][i] );
551  } else {
552  gslpp::complex newResult = PV.B0(MZ2, mHh2, 0.0, mA2);
553  CacheShift(B0_MZ2_mHh2_0_mA2_cache, NumPar, params, newResult);
554  return newResult;
555  }
556 }
557 
558 gslpp::complex GeneralTHDMcache::B0_MZ2_mHh2_mHl2_mHl2(const double MZ2, const double mHh2, const double mHl2) const {
559  int NumPar = 3;
560  double params[] = {MZ2, mHh2, mHl2};
561 
562  int i = CacheCheck(B0_MZ2_mHh2_mHl2_mHl2_cache, NumPar, params);
563  if (i>=0) {
564  return ( B0_MZ2_mHh2_mHl2_mHl2_cache[NumPar][i] );
565  } else {
566  gslpp::complex newResult = PV.B0(MZ2, mHh2, mHl2, mHl2);
567  CacheShift(B0_MZ2_mHh2_mHl2_mHl2_cache, NumPar, params, newResult);
568  return newResult;
569  }
570 }
571 
572 gslpp::complex GeneralTHDMcache::B0_MZ2_mHh2_mHh2_mHl2(const double MZ2, const double mHh2, const double mHl2) const {
573  int NumPar = 3;
574  double params[] = {MZ2, mHh2, mHl2};
575 
576  int i = CacheCheck(B0_MZ2_mHh2_mHh2_mHl2_cache, NumPar, params);
577  if (i>=0) {
578  return ( B0_MZ2_mHh2_mHh2_mHl2_cache[NumPar][i] );
579  } else {
580  gslpp::complex newResult = PV.B0(MZ2, mHh2, mHh2, mHl2);
581  CacheShift(B0_MZ2_mHh2_mHh2_mHl2_cache, NumPar, params, newResult);
582  return newResult;
583  }
584 }
585 
586 gslpp::complex GeneralTHDMcache::B0_MZ2_mHh2_mHh2_mHh2(const double MZ2, const double mHh2) const {
587  int NumPar = 2;
588  double params[] = {MZ2, mHh2};
589 
590  int i = CacheCheck(B0_MZ2_mHh2_mHh2_mHh2_cache, NumPar, params);
591  if (i>=0) {
592  return ( B0_MZ2_mHh2_mHh2_mHh2_cache[NumPar][i] );
593  } else {
594  gslpp::complex newResult = PV.B0(MZ2, mHh2, mHh2, mHh2);
595  CacheShift(B0_MZ2_mHh2_mHh2_mHh2_cache, NumPar, params, newResult);
596  return newResult;
597  }
598 }
599 
600 gslpp::complex GeneralTHDMcache::B0_MZ2_mHh2_mHp2_mHp2(const double MZ2, const double mHh2, const double mHp2) const {
601  int NumPar = 3;
602  double params[] = {MZ2, mHh2, mHp2};
603 
604  int i = CacheCheck(B0_MZ2_mHh2_mHp2_mHp2_cache, NumPar, params);
605  if (i>=0) {
606  return ( B0_MZ2_mHh2_mHp2_mHp2_cache[NumPar][i] );
607  } else {
608  gslpp::complex newResult = PV.B0(MZ2, mHh2, mHp2, mHp2);
609  CacheShift(B0_MZ2_mHh2_mHp2_mHp2_cache, NumPar, params, newResult);
610  return newResult;
611  }
612 }
613 
614 gslpp::complex GeneralTHDMcache::B0_MZ2_mHh2_mA2_mA2(const double MZ2, const double mHh2, const double mA2) const {
615  int NumPar = 3;
616  double params[] = {MZ2, mHh2, mA2};
617 
618  int i = CacheCheck(B0_MZ2_mHh2_mA2_mA2_cache, NumPar, params);
619  if (i>=0) {
620  return ( B0_MZ2_mHh2_mA2_mA2_cache[NumPar][i] );
621  } else {
622  gslpp::complex newResult = PV.B0(MZ2, mHh2, mA2, mA2);
623  CacheShift(B0_MZ2_mHh2_mA2_mA2_cache, NumPar, params, newResult);
624  return newResult;
625  }
626 }
627 
628 gslpp::complex GeneralTHDMcache::B0_MZ2_mHp2_0_mHl2(const double MZ2, const double mHp2, const double mHl2) const {
629  int NumPar = 3;
630  double params[] = {MZ2, mHp2, mHl2};
631 
632  int i = CacheCheck(B0_MZ2_mHp2_0_mHl2_cache, NumPar, params);
633  if (i>=0) {
634  return ( B0_MZ2_mHp2_0_mHl2_cache[NumPar][i] );
635  } else {
636  gslpp::complex newResult = PV.B0(MZ2, mHp2, 0.0, mHl2);
637  CacheShift(B0_MZ2_mHp2_0_mHl2_cache, NumPar, params, newResult);
638  return newResult;
639  }
640 }
641 
642 gslpp::complex GeneralTHDMcache::B0_MZ2_mHp2_0_mHh2(const double MZ2, const double mHp2, const double mHh2) const {
643  int NumPar = 3;
644  double params[] = {MZ2, mHp2, mHh2};
645 
646  int i = CacheCheck(B0_MZ2_mHp2_0_mHh2_cache, NumPar, params);
647  if (i>=0) {
648  return ( B0_MZ2_mHp2_0_mHh2_cache[NumPar][i] );
649  } else {
650  gslpp::complex newResult = PV.B0(MZ2, mHp2, 0.0, mHh2);
651  CacheShift(B0_MZ2_mHp2_0_mHh2_cache, NumPar, params, newResult);
652  return newResult;
653  }
654 }
655 
656 gslpp::complex GeneralTHDMcache::B0_MZ2_mHp2_mHp2_mHl2(const double MZ2, const double mHp2, const double mHl2) const {
657  int NumPar = 3;
658  double params[] = {MZ2, mHp2, mHl2};
659 
660  int i = CacheCheck(B0_MZ2_mHp2_mHp2_mHl2_cache, NumPar, params);
661  if (i>=0) {
662  return ( B0_MZ2_mHp2_mHp2_mHl2_cache[NumPar][i] );
663  } else {
664  gslpp::complex newResult = PV.B0(MZ2, mHp2, mHp2, mHl2);
665  CacheShift(B0_MZ2_mHp2_mHp2_mHl2_cache, NumPar, params, newResult);
666  return newResult;
667  }
668 }
669 
670 gslpp::complex GeneralTHDMcache::B0_MZ2_mHp2_mHp2_mHh2(const double MZ2, const double mHp2, const double mHh2) const {
671  int NumPar = 3;
672  double params[] = {MZ2, mHp2, mHh2};
673 
674  int i = CacheCheck(B0_MZ2_mHp2_mHp2_mHh2_cache, NumPar, params);
675  if (i>=0) {
676  return ( B0_MZ2_mHp2_mHp2_mHh2_cache[NumPar][i] );
677  } else {
678  gslpp::complex newResult = PV.B0(MZ2, mHp2, mHp2, mHh2);
679  CacheShift(B0_MZ2_mHp2_mHp2_mHh2_cache, NumPar, params, newResult);
680  return newResult;
681  }
682 }
683 
684 gslpp::complex GeneralTHDMcache::B0_MZ2_mA2_0_mHl2(const double MZ2, const double mA2, const double mHl2) const {
685  int NumPar = 3;
686  double params[] = {MZ2, mA2, mHl2};
687 
688  int i = CacheCheck(B0_MZ2_mA2_0_mHl2_cache, NumPar, params);
689  if (i>=0) {
690  return ( B0_MZ2_mA2_0_mHl2_cache[NumPar][i] );
691  } else {
692  gslpp::complex newResult = PV.B0(MZ2, mA2, 0.0, mHl2);
693  CacheShift(B0_MZ2_mA2_0_mHl2_cache, NumPar, params, newResult);
694  return newResult;
695  }
696 }
697 
698 gslpp::complex GeneralTHDMcache::B0_MZ2_mA2_0_mHh2(const double MZ2, const double mA2, const double mHh2) const {
699  int NumPar = 3;
700  double params[] = {MZ2, mA2, mHh2};
701 
702  int i = CacheCheck(B0_MZ2_mA2_0_mHh2_cache, NumPar, params);
703  if (i>=0) {
704  return ( B0_MZ2_mA2_0_mHh2_cache[NumPar][i] );
705  } else {
706  gslpp::complex newResult = PV.B0(MZ2, mA2, 0.0, mHh2);
707  CacheShift(B0_MZ2_mA2_0_mHh2_cache, NumPar, params, newResult);
708  return newResult;
709  }
710 }
711 
712 gslpp::complex GeneralTHDMcache::B0_MZ2_mA2_mA2_mHl2(const double MZ2, const double mA2, const double mHl2) const {
713  int NumPar = 3;
714  double params[] = {MZ2, mA2, mHl2};
715 
716  int i = CacheCheck(B0_MZ2_mA2_mA2_mHl2_cache, NumPar, params);
717  if (i>=0) {
718  return ( B0_MZ2_mA2_mA2_mHl2_cache[NumPar][i] );
719  } else {
720  gslpp::complex newResult = PV.B0(MZ2, mA2, mA2, mHl2);
721  CacheShift(B0_MZ2_mA2_mA2_mHl2_cache, NumPar, params, newResult);
722  return newResult;
723  }
724 }
725 
726 gslpp::complex GeneralTHDMcache::B0_MZ2_mA2_mA2_mHh2(const double MZ2, const double mA2, const double mHh2) const {
727  int NumPar = 3;
728  double params[] = {MZ2, mA2, mHh2};
729 
730  int i = CacheCheck(B0_MZ2_mA2_mA2_mHh2_cache, NumPar, params);
731  if (i>=0) {
732  return ( B0_MZ2_mA2_mA2_mHh2_cache[NumPar][i] );
733  } else {
734  gslpp::complex newResult = PV.B0(MZ2, mA2, mA2, mHh2);
735  CacheShift(B0_MZ2_mA2_mA2_mHh2_cache, NumPar, params, newResult);
736  return newResult;
737  }
738 }
739 
741 
743 
744 gslpp::complex GeneralTHDMcache::B0p_MZ2_0_0_mHl2(const double MZ2, const double mHl2) const {
745  int NumPar = 2;
746  double params[] = {MZ2, mHl2};
747 
748  int i = CacheCheck(B0p_MZ2_0_0_mHl2_cache, NumPar, params);
749  if (i>=0) {
750  return ( B0p_MZ2_0_0_mHl2_cache[NumPar][i] );
751  } else {
752  gslpp::complex newResult = PV.B0p(MZ2, 0.0, 0.0, mHl2);
753  CacheShift(B0p_MZ2_0_0_mHl2_cache, NumPar, params, newResult);
754  return newResult;
755  }
756 }
757 
758 gslpp::complex GeneralTHDMcache::B0p_MZ2_0_0_mHh2(const double MZ2, const double mHh2) const {
759  int NumPar = 2;
760  double params[] = {MZ2, mHh2};
761 
762  int i = CacheCheck(B0p_MZ2_0_0_mHh2_cache, NumPar, params);
763  if (i>=0) {
764  return ( B0p_MZ2_0_0_mHh2_cache[NumPar][i] );
765  } else {
766  gslpp::complex newResult = PV.B0p(MZ2, 0.0, 0.0, mHh2);
767  CacheShift(B0p_MZ2_0_0_mHh2_cache, NumPar, params, newResult);
768  return newResult;
769  }
770 }
771 
772 gslpp::complex GeneralTHDMcache::B0p_MZ2_0_mHp2_mHl2(const double MZ2, const double mHp2, const double mHl2) const {
773  int NumPar = 3;
774  double params[] = {MZ2, mHp2, mHl2};
775 
776  int i = CacheCheck(B0p_MZ2_0_mHp2_mHl2_cache, NumPar, params);
777  if (i>=0) {
778  return ( B0p_MZ2_0_mHp2_mHl2_cache[NumPar][i] );
779  } else {
780  gslpp::complex newResult = PV.B0p(MZ2, 0.0, mHp2, mHl2);
781  CacheShift(B0p_MZ2_0_mHp2_mHl2_cache, NumPar, params, newResult);
782  return newResult;
783  }
784 }
785 
786 gslpp::complex GeneralTHDMcache::B0p_MZ2_0_mHp2_mHh2(const double MZ2, const double mHp2, const double mHh2) const {
787  int NumPar = 3;
788  double params[] = {MZ2, mHp2, mHh2};
789 
790  int i = CacheCheck(B0p_MZ2_0_mHp2_mHh2_cache, NumPar, params);
791  if (i>=0) {
792  return ( B0p_MZ2_0_mHp2_mHh2_cache[NumPar][i] );
793  } else {
794  gslpp::complex newResult = PV.B0p(MZ2, 0.0, mHp2, mHh2);
795  CacheShift(B0p_MZ2_0_mHp2_mHh2_cache, NumPar, params, newResult);
796  return newResult;
797  }
798 }
799 
800 gslpp::complex GeneralTHDMcache::B0p_MZ2_0_mHp2_mA2(const double MZ2, const double mHp2, const double mA2) const {
801  int NumPar = 3;
802  double params[] = {MZ2, mHp2, mA2};
803 
804  int i = CacheCheck(B0p_MZ2_0_mHp2_mA2_cache, NumPar, params);
805  if (i>=0) {
806  return ( B0p_MZ2_0_mHp2_mA2_cache[NumPar][i] );
807  } else {
808  gslpp::complex newResult = PV.B0p(MZ2, 0.0, mHp2, mA2);
809  CacheShift(B0p_MZ2_0_mHp2_mA2_cache, NumPar, params, newResult);
810  return newResult;
811  }
812 }
813 
814 gslpp::complex GeneralTHDMcache::B0p_MZ2_0_mA2_mHl2(const double MZ2, const double mA2, const double mHl2) const {
815  int NumPar = 3;
816  double params[] = {MZ2, mA2, mHl2};
817 
818  int i = CacheCheck(B0p_MZ2_0_mA2_mHl2_cache, NumPar, params);
819  if (i>=0) {
820  return ( B0p_MZ2_0_mA2_mHl2_cache[NumPar][i] );
821  } else {
822  gslpp::complex newResult = PV.B0p(MZ2, 0.0, mA2, mHl2);
823  CacheShift(B0p_MZ2_0_mA2_mHl2_cache, NumPar, params, newResult);
824  return newResult;
825  }
826 }
827 
828 gslpp::complex GeneralTHDMcache::B0p_MZ2_0_mA2_mHh2(const double MZ2, const double mA2, const double mHh2) const {
829  int NumPar = 3;
830  double params[] = {MZ2, mA2, mHh2};
831 
832  int i = CacheCheck(B0p_MZ2_0_mA2_mHh2_cache, NumPar, params);
833  if (i>=0) {
834  return ( B0p_MZ2_0_mA2_mHh2_cache[NumPar][i] );
835  } else {
836  gslpp::complex newResult = PV.B0p(MZ2, 0.0, mA2, mHh2);
837  CacheShift(B0p_MZ2_0_mA2_mHh2_cache, NumPar, params, newResult);
838  return newResult;
839  }
840 }
841 
842 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHl2_0_0(const double MZ2, const double mHl2) const {
843  int NumPar = 2;
844  double params[] = {MZ2, mHl2};
845 
846  int i = CacheCheck(B0p_MZ2_0_0_mHl2_cache, NumPar, params);
847  if (i>=0) {
848  return ( B0p_MZ2_0_0_mHl2_cache[NumPar][i] );
849  } else {
850  gslpp::complex newResult = PV.B0p(MZ2, mHl2, 0.0, 0.0);
851  CacheShift(B0p_MZ2_0_0_mHl2_cache, NumPar, params, newResult);
852  return newResult;
853  }
854 }
855 
856 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHl2_0_mHp2(const double MZ2, const double mHl2, const double mHp2) const {
857  int NumPar = 3;
858  double params[] = {MZ2, mHl2, mHp2};
859 
860  int i = CacheCheck(B0p_MZ2_mHl2_0_mHp2_cache, NumPar, params);
861  if (i>=0) {
862  return ( B0p_MZ2_mHl2_0_mHp2_cache[NumPar][i] );
863  } else {
864  gslpp::complex newResult = PV.B0p(MZ2, mHl2, 0.0, mHp2);
865  CacheShift(B0p_MZ2_mHl2_0_mHp2_cache, NumPar, params, newResult);
866  return newResult;
867  }
868 }
869 
870 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHl2_0_mA2(const double MZ2, const double mHl2, const double mA2) const {
871  int NumPar = 3;
872  double params[] = {MZ2, mHl2, mA2};
873 
874  int i = CacheCheck(B0p_MZ2_mHl2_0_mA2_cache, NumPar, params);
875  if (i>=0) {
876  return ( B0p_MZ2_mHl2_0_mA2_cache[NumPar][i] );
877  } else {
878  gslpp::complex newResult = PV.B0p(MZ2, mHl2, 0.0, mA2);
879  CacheShift(B0p_MZ2_mHl2_0_mA2_cache, NumPar, params, newResult);
880  return newResult;
881  }
882 }
883 
884 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHl2_mHl2_mHl2(const double MZ2, const double mHl2) const {
885  int NumPar = 2;
886  double params[] = {MZ2, mHl2};
887 
888  int i = CacheCheck(B0p_MZ2_mHl2_mHl2_mHl2_cache, NumPar, params);
889  if (i>=0) {
890  return ( B0p_MZ2_mHl2_mHl2_mHl2_cache[NumPar][i] );
891  } else {
892  gslpp::complex newResult = PV.B0p(MZ2, mHl2, mHl2, mHl2);
893  CacheShift(B0p_MZ2_mHl2_mHl2_mHl2_cache, NumPar, params, newResult);
894  return newResult;
895  }
896 }
897 
898 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHl2_mHh2_mHl2(const double MZ2, const double mHl2, const double mHh2) const {
899  int NumPar = 3;
900  double params[] = {MZ2, mHl2, mHh2};
901 
902  int i = CacheCheck(B0p_MZ2_mHl2_mHh2_mHl2_cache, NumPar, params);
903  if (i>=0) {
904  return ( B0p_MZ2_mHl2_mHh2_mHl2_cache[NumPar][i] );
905  } else {
906  gslpp::complex newResult = PV.B0p(MZ2, mHl2, mHh2, mHl2);
907  CacheShift(B0p_MZ2_mHl2_mHh2_mHl2_cache, NumPar, params, newResult);
908  return newResult;
909  }
910 }
911 
912 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHl2_mHh2_mHh2(const double MZ2, const double mHl2, const double mHh2) const {
913  int NumPar = 3;
914  double params[] = {MZ2, mHl2, mHh2};
915 
916  int i = CacheCheck(B0p_MZ2_mHl2_mHh2_mHh2_cache, NumPar, params);
917  if (i>=0) {
918  return ( B0p_MZ2_mHl2_mHh2_mHh2_cache[NumPar][i] );
919  } else {
920  gslpp::complex newResult = PV.B0p(MZ2, mHl2, mHh2, mHh2);
921  CacheShift(B0p_MZ2_mHl2_mHh2_mHh2_cache, NumPar, params, newResult);
922  return newResult;
923  }
924 }
925 
926 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHl2_mHp2_mHp2(const double MZ2, const double mHl2, const double mHp2) const {
927  int NumPar = 3;
928  double params[] = {MZ2, mHl2, mHp2};
929 
930  int i = CacheCheck(B0p_MZ2_mHl2_mHp2_mHp2_cache, NumPar, params);
931  if (i>=0) {
932  return ( B0p_MZ2_mHl2_mHp2_mHp2_cache[NumPar][i] );
933  } else {
934  gslpp::complex newResult = PV.B0p(MZ2, mHl2, mHp2, mHp2);
935  CacheShift(B0p_MZ2_mHl2_mHp2_mHp2_cache, NumPar, params, newResult);
936  return newResult;
937  }
938 }
939 
940 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHl2_mA2_mA2(const double MZ2, const double mHl2, const double mA2) const {
941  int NumPar = 3;
942  double params[] = {MZ2, mHl2, mA2};
943 
944  int i = CacheCheck(B0p_MZ2_mHl2_mA2_mA2_cache, NumPar, params);
945  if (i>=0) {
946  return ( B0p_MZ2_mHl2_mA2_mA2_cache[NumPar][i] );
947  } else {
948  gslpp::complex newResult = PV.B0p(MZ2, mHl2, mA2, mA2);
949  CacheShift(B0p_MZ2_mHl2_mA2_mA2_cache, NumPar, params, newResult);
950  return newResult;
951  }
952 }
953 
954 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHh2_0_0(const double MZ2, const double mHh2) const {
955  int NumPar = 2;
956  double params[] = {MZ2, mHh2};
957 
958  int i = CacheCheck(B0p_MZ2_0_0_mHh2_cache, NumPar, params);
959  if (i>=0) {
960  return ( B0p_MZ2_0_0_mHh2_cache[NumPar][i] );
961  } else {
962  gslpp::complex newResult = PV.B0p(MZ2, mHh2, 0.0, 0.0);
963  CacheShift(B0p_MZ2_0_0_mHh2_cache, NumPar, params, newResult);
964  return newResult;
965  }
966 }
967 
968 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHh2_0_mHp2(const double MZ2, const double mHh2, const double mHp2) const {
969  int NumPar = 3;
970  double params[] = {MZ2, mHh2, mHp2};
971 
972  int i = CacheCheck(B0p_MZ2_mHh2_0_mHp2_cache, NumPar, params);
973  if (i>=0) {
974  return ( B0p_MZ2_mHh2_0_mHp2_cache[NumPar][i] );
975  } else {
976  gslpp::complex newResult = PV.B0p(MZ2, mHh2, 0.0, mHp2);
977  CacheShift(B0p_MZ2_mHh2_0_mHp2_cache, NumPar, params, newResult);
978  return newResult;
979  }
980 }
981 
982 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHh2_0_mA2(const double MZ2, const double mHh2, const double mA2) const {
983  int NumPar = 3;
984  double params[] = {MZ2, mHh2, mA2};
985 
986  int i = CacheCheck(B0p_MZ2_mHh2_0_mA2_cache, NumPar, params);
987  if (i>=0) {
988  return ( B0p_MZ2_mHh2_0_mA2_cache[NumPar][i] );
989  } else {
990  gslpp::complex newResult = PV.B0p(MZ2, mHh2, 0.0, mA2);
991  CacheShift(B0p_MZ2_mHh2_0_mA2_cache, NumPar, params, newResult);
992  return newResult;
993  }
994 }
995 
996 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHh2_mHl2_mHl2(const double MZ2, const double mHh2, const double mHl2) const {
997  int NumPar = 3;
998  double params[] = {MZ2, mHh2, mHl2};
999 
1000  int i = CacheCheck(B0p_MZ2_mHh2_mHl2_mHl2_cache, NumPar, params);
1001  if (i>=0) {
1002  return ( B0p_MZ2_mHh2_mHl2_mHl2_cache[NumPar][i] );
1003  } else {
1004  gslpp::complex newResult = PV.B0p(MZ2, mHh2, mHl2, mHl2);
1005  CacheShift(B0p_MZ2_mHh2_mHl2_mHl2_cache, NumPar, params, newResult);
1006  return newResult;
1007  }
1008 }
1009 
1010 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHh2_mHh2_mHl2(const double MZ2, const double mHh2, const double mHl2) const {
1011  int NumPar = 3;
1012  double params[] = {MZ2, mHh2, mHl2};
1013 
1014  int i = CacheCheck(B0p_MZ2_mHh2_mHh2_mHl2_cache, NumPar, params);
1015  if (i>=0) {
1016  return ( B0p_MZ2_mHh2_mHh2_mHl2_cache[NumPar][i] );
1017  } else {
1018  gslpp::complex newResult = PV.B0p(MZ2, mHh2, mHh2, mHl2);
1019  CacheShift(B0p_MZ2_mHh2_mHh2_mHl2_cache, NumPar, params, newResult);
1020  return newResult;
1021  }
1022 }
1023 
1024 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHh2_mHh2_mHh2(const double MZ2, const double mHh2) const {
1025  int NumPar = 2;
1026  double params[] = {MZ2, mHh2};
1027 
1028  int i = CacheCheck(B0p_MZ2_mHh2_mHh2_mHh2_cache, NumPar, params);
1029  if (i>=0) {
1030  return ( B0p_MZ2_mHh2_mHh2_mHh2_cache[NumPar][i] );
1031  } else {
1032  gslpp::complex newResult = PV.B0p(MZ2, mHh2, mHh2, mHh2);
1033  CacheShift(B0p_MZ2_mHh2_mHh2_mHh2_cache, NumPar, params, newResult);
1034  return newResult;
1035  }
1036 }
1037 
1038 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHh2_mHp2_mHp2(const double MZ2, const double mHh2, const double mHp2) const {
1039  int NumPar = 3;
1040  double params[] = {MZ2, mHh2, mHp2};
1041 
1042  int i = CacheCheck(B0p_MZ2_mHh2_mHp2_mHp2_cache, NumPar, params);
1043  if (i>=0) {
1044  return ( B0p_MZ2_mHh2_mHp2_mHp2_cache[NumPar][i] );
1045  } else {
1046  gslpp::complex newResult = PV.B0p(MZ2, mHh2, mHp2, mHp2);
1047  CacheShift(B0p_MZ2_mHh2_mHp2_mHp2_cache, NumPar, params, newResult);
1048  return newResult;
1049  }
1050 }
1051 
1052 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHh2_mA2_mA2(const double MZ2, const double mHh2, const double mA2) const {
1053  int NumPar = 3;
1054  double params[] = {MZ2, mHh2, mA2};
1055 
1056  int i = CacheCheck(B0p_MZ2_mHh2_mA2_mA2_cache, NumPar, params);
1057  if (i>=0) {
1058  return ( B0p_MZ2_mHh2_mA2_mA2_cache[NumPar][i] );
1059  } else {
1060  gslpp::complex newResult = PV.B0p(MZ2, mHh2, mA2, mA2);
1061  CacheShift(B0p_MZ2_mHh2_mA2_mA2_cache, NumPar, params, newResult);
1062  return newResult;
1063  }
1064 }
1065 
1066 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHp2_0_mHl2(const double MZ2, const double mHp2, const double mHl2) const {
1067  int NumPar = 3;
1068  double params[] = {MZ2, mHp2, mHl2};
1069 
1070  int i = CacheCheck(B0p_MZ2_mHp2_0_mHl2_cache, NumPar, params);
1071  if (i>=0) {
1072  return ( B0p_MZ2_mHp2_0_mHl2_cache[NumPar][i] );
1073  } else {
1074  gslpp::complex newResult = PV.B0p(MZ2, mHp2, 0.0, mHl2);
1075  CacheShift(B0p_MZ2_mHp2_0_mHl2_cache, NumPar, params, newResult);
1076  return newResult;
1077  }
1078 }
1079 
1080 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHp2_0_mHh2(const double MZ2, const double mHp2, const double mHh2) const {
1081  int NumPar = 3;
1082  double params[] = {MZ2, mHp2, mHh2};
1083 
1084  int i = CacheCheck(B0p_MZ2_mHp2_0_mHh2_cache, NumPar, params);
1085  if (i>=0) {
1086  return ( B0p_MZ2_mHp2_0_mHh2_cache[NumPar][i] );
1087  } else {
1088  gslpp::complex newResult = PV.B0p(MZ2, mHp2, 0.0, mHh2);
1089  CacheShift(B0p_MZ2_mHp2_0_mHh2_cache, NumPar, params, newResult);
1090  return newResult;
1091  }
1092 }
1093 
1094 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHp2_0_mA2(const double MZ2, const double mHp2, const double mA2) const {
1095  int NumPar = 3;
1096  double params[] = {MZ2, mHp2, mA2};
1097 
1098  int i = CacheCheck(B0p_MZ2_mHp2_0_mA2_cache, NumPar, params);
1099  if (i>=0) {
1100  return ( B0p_MZ2_mHp2_0_mA2_cache[NumPar][i] );
1101  } else {
1102  gslpp::complex newResult = PV.B0p(MZ2, mHp2, 0.0, mA2);
1103  CacheShift(B0p_MZ2_mHp2_0_mA2_cache, NumPar, params, newResult);
1104  return newResult;
1105  }
1106 }
1107 
1108 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHp2_mHp2_mHl2(const double MZ2, const double mHp2, const double mHl2) const {
1109  int NumPar = 3;
1110  double params[] = {MZ2, mHp2, mHl2};
1111 
1112  int i = CacheCheck(B0p_MZ2_mHp2_mHp2_mHl2_cache, NumPar, params);
1113  if (i>=0) {
1114  return ( B0p_MZ2_mHp2_mHp2_mHl2_cache[NumPar][i] );
1115  } else {
1116  gslpp::complex newResult = PV.B0p(MZ2, mHp2, mHp2, mHl2);
1117  CacheShift(B0p_MZ2_mHp2_mHp2_mHl2_cache, NumPar, params, newResult);
1118  return newResult;
1119  }
1120 }
1121 
1122 gslpp::complex GeneralTHDMcache::B0p_MZ2_mHp2_mHp2_mHh2(const double MZ2, const double mHp2, const double mHh2) const {
1123  int NumPar = 3;
1124  double params[] = {MZ2, mHp2, mHh2};
1125 
1126  int i = CacheCheck(B0p_MZ2_mHp2_mHp2_mHh2_cache, NumPar, params);
1127  if (i>=0) {
1128  return ( B0p_MZ2_mHp2_mHp2_mHh2_cache[NumPar][i] );
1129  } else {
1130  gslpp::complex newResult = PV.B0p(MZ2, mHp2, mHp2, mHh2);
1131  CacheShift(B0p_MZ2_mHp2_mHp2_mHh2_cache, NumPar, params, newResult);
1132  return newResult;
1133  }
1134 }
1135 
1136 gslpp::complex GeneralTHDMcache::B0p_MZ2_mA2_0_mHl2(const double MZ2, const double mA2, const double mHl2) const {
1137  int NumPar = 3;
1138  double params[] = {MZ2, mA2, mHl2};
1139 
1140  int i = CacheCheck(B0p_MZ2_mA2_0_mHl2_cache, NumPar, params);
1141  if (i>=0) {
1142  return ( B0p_MZ2_mA2_0_mHl2_cache[NumPar][i] );
1143  } else {
1144  gslpp::complex newResult = PV.B0p(MZ2, mA2, 0.0, mHl2);
1145  CacheShift(B0p_MZ2_mA2_0_mHl2_cache, NumPar, params, newResult);
1146  return newResult;
1147  }
1148 }
1149 
1150 gslpp::complex GeneralTHDMcache::B0p_MZ2_mA2_0_mHh2(const double MZ2, const double mA2, const double mHh2) const {
1151  int NumPar = 3;
1152  double params[] = {MZ2, mA2, mHh2};
1153 
1154  int i = CacheCheck(B0p_MZ2_mA2_0_mHh2_cache, NumPar, params);
1155  if (i>=0) {
1156  return ( B0p_MZ2_mA2_0_mHh2_cache[NumPar][i] );
1157  } else {
1158  gslpp::complex newResult = PV.B0p(MZ2, mA2, 0.0, mHh2);
1159  CacheShift(B0p_MZ2_mA2_0_mHh2_cache, NumPar, params, newResult);
1160  return newResult;
1161  }
1162 }
1163 
1164 gslpp::complex GeneralTHDMcache::B0p_MZ2_mA2_0_mHp2(const double MZ2, const double mA2, const double mHp2) const {
1165  int NumPar = 3;
1166  double params[] = {MZ2, mA2, mHp2};
1167 
1168  int i = CacheCheck(B0p_MZ2_mA2_0_mHp2_cache, NumPar, params);
1169  if (i>=0) {
1170  return ( B0p_MZ2_mA2_0_mHp2_cache[NumPar][i] );
1171  } else {
1172  gslpp::complex newResult = PV.B0p(MZ2, mA2, 0.0, mHp2);
1173  CacheShift(B0p_MZ2_mA2_0_mHp2_cache, NumPar, params, newResult);
1174  return newResult;
1175  }
1176 }
1177 
1178 gslpp::complex GeneralTHDMcache::B0p_MZ2_mA2_mA2_mHl2(const double MZ2, const double mA2, const double mHl2) const {
1179  int NumPar = 3;
1180  double params[] = {MZ2, mA2, mHl2};
1181 
1182  int i = CacheCheck(B0p_MZ2_mA2_mA2_mHl2_cache, NumPar, params);
1183  if (i>=0) {
1184  return ( B0p_MZ2_mA2_mA2_mHl2_cache[NumPar][i] );
1185  } else {
1186  gslpp::complex newResult = PV.B0p(MZ2, mA2, mA2, mHl2);
1187  CacheShift(B0p_MZ2_mA2_mA2_mHl2_cache, NumPar, params, newResult);
1188  return newResult;
1189  }
1190 }
1191 
1192 gslpp::complex GeneralTHDMcache::B0p_MZ2_mA2_mA2_mHh2(const double MZ2, const double mA2, const double mHh2) const {
1193  int NumPar = 3;
1194  double params[] = {MZ2, mA2, mHh2};
1195 
1196  int i = CacheCheck(B0p_MZ2_mA2_mA2_mHh2_cache, NumPar, params);
1197  if (i>=0) {
1198  return ( B0p_MZ2_mA2_mA2_mHh2_cache[NumPar][i] );
1199  } else {
1200  gslpp::complex newResult = PV.B0p(MZ2, mA2, mA2, mHh2);
1201  CacheShift(B0p_MZ2_mA2_mA2_mHh2_cache, NumPar, params, newResult);
1202  return newResult;
1203  }
1204 }
1205 
1207 
1208 gslpp::complex GeneralTHDMcache::B00_MZ2_0_mA2_mHp2(const double MZ2, const double mA2, const double mHp2) const {
1209  int NumPar = 3;
1210  double params[] = {MZ2, mA2, mHp2};
1211 
1212  int i = CacheCheck(B00_MZ2_0_mA2_mHp2_cache, NumPar, params);
1213  if (i>=0) {
1214  return ( B00_MZ2_0_mA2_mHp2_cache[NumPar][i] );
1215  } else {
1216  gslpp::complex newResult = PV.B00(MZ2, 0., mA2, mHp2);
1217  CacheShift(B00_MZ2_0_mA2_mHp2_cache, NumPar, params, newResult);
1218  return newResult;
1219  }
1220 }
1221 
1222 gslpp::complex GeneralTHDMcache::B00_MZ2_0_mHh2_mA2(const double MZ2, const double mHh2, const double mA2) const {
1223  int NumPar = 3;
1224  double params[] = {MZ2, mHh2, mA2};
1225 
1226  int i = CacheCheck(B00_MZ2_0_mHh2_mA2_cache, NumPar, params);
1227  if (i>=0) {
1228  return ( B00_MZ2_0_mHh2_mA2_cache[NumPar][i] );
1229  } else {
1230  gslpp::complex newResult = PV.B00(MZ2, 0., mHh2, mA2);
1231  CacheShift(B00_MZ2_0_mHh2_mA2_cache, NumPar, params, newResult);
1232  return newResult;
1233  }
1234 }
1235 
1236 gslpp::complex GeneralTHDMcache::B00_MZ2_0_mHh2_mHp2(const double MZ2, const double mHh2, const double mHp2) const {
1237  int NumPar = 3;
1238  double params[] = {MZ2, mHh2, mHp2};
1239 
1240  int i = CacheCheck(B00_MZ2_0_mHh2_mHp2_cache, NumPar, params);
1241  if (i>=0) {
1242  return ( B00_MZ2_0_mHh2_mHp2_cache[NumPar][i] );
1243  } else {
1244  gslpp::complex newResult = PV.B00(MZ2, 0., mHh2, mHp2);
1245  CacheShift(B00_MZ2_0_mHh2_mHp2_cache, NumPar, params, newResult);
1246  return newResult;
1247  }
1248 }
1249 
1250 gslpp::complex GeneralTHDMcache::B00_MZ2_0_mHl2_mA2(const double MZ2, const double mHl2, const double mA2) const {
1251  int NumPar = 3;
1252  double params[] = {MZ2, mHl2, mA2};
1253 
1254  int i = CacheCheck(B00_MZ2_0_mHl2_mA2_cache, NumPar, params);
1255  if (i>=0) {
1256  return ( B00_MZ2_0_mHl2_mA2_cache[NumPar][i] );
1257  } else {
1258  gslpp::complex newResult = PV.B00(MZ2, 0., mHl2, mA2);
1259  CacheShift(B00_MZ2_0_mHl2_mA2_cache, NumPar, params, newResult);
1260  return newResult;
1261  }
1262 }
1263 
1264 gslpp::complex GeneralTHDMcache::B00_MZ2_0_mHl2_mHp2(const double MZ2, const double mHl2, const double mHp2) const {
1265  int NumPar = 3;
1266  double params[] = {MZ2, mHl2, mHp2};
1267 
1268  int i = CacheCheck(B00_MZ2_0_mHl2_mHp2_cache, NumPar, params);
1269  if (i>=0) {
1270  return ( B00_MZ2_0_mHl2_mHp2_cache[NumPar][i] );
1271  } else {
1272  gslpp::complex newResult = PV.B00(MZ2, 0., mHl2, mHp2);
1273  CacheShift(B00_MZ2_0_mHl2_mHp2_cache, NumPar, params, newResult);
1274  return newResult;
1275  }
1276 }
1277 
1278 gslpp::complex GeneralTHDMcache::B00_MZ2_0_mHp2_mHp2(const double MZ2, const double mHp2) const {
1279  int NumPar = 2;
1280  double params[] = {MZ2, mHp2};
1281 
1282  int i = CacheCheck(B00_MZ2_0_mHp2_mHp2_cache, NumPar, params);
1283  if (i>=0) {
1284  return ( B00_MZ2_0_mHp2_mHp2_cache[NumPar][i] );
1285  } else {
1286  gslpp::complex newResult = PV.B00(MZ2, 0., mHp2, mHp2);
1287  CacheShift(B00_MZ2_0_mHp2_mHp2_cache, NumPar, params, newResult);
1288  return newResult;
1289  }
1290 }
1291 
1292 gslpp::complex GeneralTHDMcache::B00_MZ2_0_MW2_mHh2(const double MZ2, const double MW2, const double mHh2) const {
1293  int NumPar = 3;
1294  double params[] = {MZ2, MW2, mHh2};
1295 
1296  int i = CacheCheck(B00_MZ2_0_MW2_mHh2_cache, NumPar, params);
1297  if (i>=0) {
1298  return ( B00_MZ2_0_MW2_mHh2_cache[NumPar][i] );
1299  } else {
1300  gslpp::complex newResult = PV.B00(MZ2, MW2, MW2, mHh2);
1301  CacheShift(B00_MZ2_0_MW2_mHh2_cache, NumPar, params, newResult);
1302  return newResult;
1303  }
1304 }
1305 
1306 gslpp::complex GeneralTHDMcache::B00_MZ2_0_MW2_mHl2(const double MZ2, const double MW2, const double mHl2) const {
1307  int NumPar = 3;
1308  double params[] = {MZ2, MW2, mHl2};
1309 
1310  int i = CacheCheck(B00_MZ2_0_MW2_mHl2_cache, NumPar, params);
1311  if (i>=0) {
1312  return ( B00_MZ2_0_MW2_mHl2_cache[NumPar][i] );
1313  } else {
1314  gslpp::complex newResult = PV.B00(MZ2, 0., MW2, mHl2);
1315  CacheShift(B00_MZ2_0_MW2_mHl2_cache, NumPar, params, newResult);
1316  return newResult;
1317  }
1318 }
1319 
1320 gslpp::complex GeneralTHDMcache::B00_MZ2_0_MZ2_mHh2(const double MZ2, const double mHh2) const {
1321  int NumPar = 2;
1322  double params[] = {MZ2, mHh2};
1323 
1324  int i = CacheCheck(B00_MZ2_0_MZ2_mHh2_cache, NumPar, params);
1325  if (i>=0) {
1326  return ( B00_MZ2_0_MZ2_mHh2_cache[NumPar][i] );
1327  } else {
1328  gslpp::complex newResult = PV.B00(MZ2, 0., MZ2, mHh2);
1329  CacheShift(B00_MZ2_0_MZ2_mHh2_cache, NumPar, params, newResult);
1330  return newResult;
1331  }
1332 }
1333 
1334 gslpp::complex GeneralTHDMcache::B00_MZ2_0_MZ2_mHl2(const double MZ2, const double mHl2) const {
1335  int NumPar = 2;
1336  double params[] = {MZ2, mHl2};
1337 
1338  int i = CacheCheck(B00_MZ2_0_MZ2_mHl2_cache, NumPar, params);
1339  if (i>=0) {
1340  return ( B00_MZ2_0_MZ2_mHl2_cache[NumPar][i] );
1341  } else {
1342  gslpp::complex newResult = PV.B00(MZ2, 0., MZ2, mHl2);
1343  CacheShift(B00_MZ2_0_MZ2_mHl2_cache, NumPar, params, newResult);
1344  return newResult;
1345  }
1346 }
1347 
1348 gslpp::complex GeneralTHDMcache::B00_MZ2_MW2_mA2_mHp2(const double MZ2, const double MW2, const double mA2, const double mHp2) const {
1349  int NumPar = 4;
1350  double params[] = {MZ2, MW2, mA2, mHp2};
1351 
1352  int i = CacheCheck(B00_MZ2_MW2_mA2_mHp2_cache, NumPar, params);
1353  if (i>=0) {
1354  return ( B00_MZ2_MW2_mA2_mHp2_cache[NumPar][i] );
1355  } else {
1356  gslpp::complex newResult = PV.B00(MZ2, MW2, mA2, mHp2);
1357  CacheShift(B00_MZ2_MW2_mA2_mHp2_cache, NumPar, params, newResult);
1358  return newResult;
1359  }
1360 }
1361 
1362 gslpp::complex GeneralTHDMcache::B00_MZ2_MW2_mHh2_mHp2(const double MZ2, const double MW2, const double mHh2, const double mHp2) const {
1363  int NumPar = 4;
1364  double params[] = {MZ2, MW2, mHh2, mHp2};
1365 
1366  int i = CacheCheck(B00_MZ2_MW2_mHh2_mHp2_cache, NumPar, params);
1367  if (i>=0) {
1368  return ( B00_MZ2_MW2_mHh2_mHp2_cache[NumPar][i] );
1369  } else {
1370  gslpp::complex newResult = PV.B00(MZ2, MW2, mHh2, mHp2);
1371  CacheShift(B00_MZ2_MW2_mHh2_mHp2_cache, NumPar, params, newResult);
1372  return newResult;
1373  }
1374 }
1375 
1376 gslpp::complex GeneralTHDMcache::B00_MZ2_MW2_mHl2_mHp2(const double MZ2, const double MW2, const double mHl2, const double mHp2) const {
1377  int NumPar = 4;
1378  double params[] = {MZ2, MW2, mHl2, mHp2};
1379 
1380  int i = CacheCheck(B00_MZ2_MW2_mHl2_mHp2_cache, NumPar, params);
1381  if (i>=0) {
1382  return ( B00_MZ2_MW2_mHl2_mHp2_cache[NumPar][i] );
1383  } else {
1384  gslpp::complex newResult = PV.B00(MZ2, MW2, mHl2, mHp2);
1385  CacheShift(B00_MZ2_MW2_mHl2_mHp2_cache, NumPar, params, newResult);
1386  return newResult;
1387  }
1388 }
1389 
1390 gslpp::complex GeneralTHDMcache::B00_MZ2_MW2_mHp2_mHp2(const double MZ2, const double MW2, const double mHp2) const {
1391  int NumPar = 3;
1392  double params[] = {MZ2, MW2, mHp2};
1393 
1394  int i = CacheCheck(B00_MZ2_MW2_mHp2_mHp2_cache, NumPar, params);
1395  if (i>=0) {
1396  return ( B00_MZ2_MW2_mHp2_mHp2_cache[NumPar][i] );
1397  } else {
1398  gslpp::complex newResult = PV.B00(MZ2, MW2, mHp2, mHp2);
1399  CacheShift(B00_MZ2_MW2_mHp2_mHp2_cache, NumPar, params, newResult);
1400  return newResult;
1401  }
1402 }
1403 
1404 gslpp::complex GeneralTHDMcache::B00_MZ2_MW2_MW2_mHh2(const double MZ2, const double MW2, const double mHh2) const {
1405  int NumPar = 3;
1406  double params[] = {MZ2, MW2, mHh2};
1407 
1408  int i = CacheCheck(B00_MZ2_MW2_MW2_mHh2_cache, NumPar, params);
1409  if (i>=0) {
1410  return ( B00_MZ2_MW2_MW2_mHh2_cache[NumPar][i] );
1411  } else {
1412  gslpp::complex newResult = PV.B00(MZ2, MW2, MW2, mHh2);
1413  CacheShift(B00_MZ2_MW2_MW2_mHh2_cache, NumPar, params, newResult);
1414  return newResult;
1415  }
1416 }
1417 
1418 gslpp::complex GeneralTHDMcache::B00_MZ2_MW2_MW2_mHl2(const double MZ2, const double MW2, const double mHl2) const {
1419  int NumPar = 3;
1420  double params[] = {MZ2, MW2, mHl2};
1421 
1422  int i = CacheCheck(B00_MZ2_MW2_MW2_mHl2_cache, NumPar, params);
1423  if (i>=0) {
1424  return ( B00_MZ2_MW2_MW2_mHl2_cache[NumPar][i] );
1425  } else {
1426  gslpp::complex newResult = PV.B00(MZ2, MW2, MW2, mHl2);
1427  CacheShift(B00_MZ2_MW2_MW2_mHl2_cache, NumPar, params, newResult);
1428  return newResult;
1429  }
1430 }
1431 
1432 gslpp::complex GeneralTHDMcache::B00_MZ2_MZ2_mHh2_mA2(const double MZ2, const double mHh2, const double mA2) const {
1433  int NumPar = 3;
1434  double params[] = {MZ2, mHh2, mA2};
1435 
1436  int i = CacheCheck(B00_MZ2_MZ2_mHh2_mA2_cache, NumPar, params);
1437  if (i>=0) {
1438  return ( B00_MZ2_MZ2_mHh2_mA2_cache[NumPar][i] );
1439  } else {
1440  gslpp::complex newResult = PV.B00(MZ2, MZ2, mHh2, mA2);
1441  CacheShift(B00_MZ2_MZ2_mHh2_mA2_cache, NumPar, params, newResult);
1442  return newResult;
1443  }
1444 }
1445 
1446 gslpp::complex GeneralTHDMcache::B00_MZ2_MZ2_mHl2_mA2(const double MZ2, const double mHl2, const double mA2) const {
1447  int NumPar = 3;
1448  double params[] = {MZ2, mHl2, mA2};
1449 
1450  int i = CacheCheck(B00_MZ2_MZ2_mHl2_mA2_cache, NumPar, params);
1451  if (i>=0) {
1452  return ( B00_MZ2_MZ2_mHl2_mA2_cache[NumPar][i] );
1453  } else {
1454  gslpp::complex newResult = PV.B00(MZ2, MZ2, mHl2, mA2);
1455  CacheShift(B00_MZ2_MZ2_mHl2_mA2_cache, NumPar, params, newResult);
1456  return newResult;
1457  }
1458 }
1459 
1460 gslpp::complex GeneralTHDMcache::B00_MZ2_MZ2_mHp2_mHp2(const double MZ2, const double mHp2) const {
1461  int NumPar = 2;
1462  double params[] = {MZ2, mHp2};
1463 
1464  int i = CacheCheck(B00_MZ2_MZ2_mHp2_mHp2_cache, NumPar, params);
1465  if (i>=0) {
1466  return ( B00_MZ2_MZ2_mHp2_mHp2_cache[NumPar][i] );
1467  } else {
1468  gslpp::complex newResult = PV.B00(MZ2, MZ2, mHp2, mHp2);
1469  CacheShift(B00_MZ2_MZ2_mHp2_mHp2_cache, NumPar, params, newResult);
1470  return newResult;
1471  }
1472 }
1473 
1474 gslpp::complex GeneralTHDMcache::B00_MZ2_MZ2_MZ2_mHh2(const double MZ2, const double mHh2) const {
1475  int NumPar = 2;
1476  double params[] = {MZ2, mHh2};
1477 
1478  int i = CacheCheck(B00_MZ2_MZ2_MZ2_mHh2_cache, NumPar, params);
1479  if (i>=0) {
1480  return ( B00_MZ2_MZ2_MZ2_mHh2_cache[NumPar][i] );
1481  } else {
1482  gslpp::complex newResult = PV.B00(MZ2, MZ2, MZ2, mHh2);
1483  CacheShift(B00_MZ2_MZ2_MZ2_mHh2_cache, NumPar, params, newResult);
1484  return newResult;
1485  }
1486 }
1487 
1488 gslpp::complex GeneralTHDMcache::B00_MZ2_MZ2_MZ2_mHl2(const double MZ2, const double mHl2) const {
1489  int NumPar = 2;
1490  double params[] = {MZ2, mHl2};
1491 
1492  int i = CacheCheck(B00_MZ2_MZ2_MZ2_mHl2_cache, NumPar, params);
1493  if (i>=0) {
1494  return ( B00_MZ2_MZ2_MZ2_mHl2_cache[NumPar][i] );
1495  } else {
1496  gslpp::complex newResult = PV.B00(MZ2, MZ2, MZ2, mHl2);
1497  CacheShift(B00_MZ2_MZ2_MZ2_mHl2_cache, NumPar, params, newResult);
1498  return newResult;
1499  }
1500 }
1501 
1502 
1504 
1505 gslpp::matrix<double> GeneralTHDMcache::readTable(std::string filename, int rowN, int colN){
1506 
1507  std::ifstream INfile;
1508  std::string lineTab;
1509  INfile.open( filename.c_str() );
1510  if(INfile.fail()){
1511  std::cout<<"error: in GeneralTHDMcache, table doesn't exist!"<<std::endl;
1512  }
1513 
1514  gslpp::matrix<double> arrayTab(rowN, colN, 0.);
1515  int a =0;
1516  int b=0;
1517  double v;
1518 
1519  while(INfile.good()){
1520  while(getline(INfile, lineTab)){
1521  if( lineTab[0]=='#' )continue;
1522  else{
1523  std::istringstream streamTab(lineTab);
1524  b=0;
1525  while(streamTab >>v){
1526  arrayTab.assign(a,b,v);
1527  b++;
1528  }
1529  a++;
1530  }
1531  }
1532  }
1533 
1534  INfile.close();
1535 
1536  return arrayTab;
1537 }
1538 
1539 //1D interpolation
1540 
1542 
1543  int rowN=arrayTab.size_i();
1544 
1545  double xmin = arrayTab(0,0);
1546  double xmax = arrayTab(rowN-1,0);
1547  double interval = arrayTab(1,0)-arrayTab(0,0);
1548  int Nintervals = (x-xmin)/interval;
1549  double y = 0.0;
1550 
1551  if(x<xmin){
1552 // std::cout<<"warning: your table parameter value is smaller than the minimum allowed value"<<std::endl;
1553  return 0.;
1554  }
1555  else if(x>xmax){
1556 // std::cout<<"warning: your table parameter value is greater than the maximum allowed value"<<std::endl;
1557  return 0.;
1558  }
1559  else{
1560  y =(arrayTab(Nintervals+1,1)-arrayTab(Nintervals,1))/(arrayTab(Nintervals+1,0)
1561  -arrayTab(Nintervals,0))*(x-arrayTab(Nintervals,0))+arrayTab(Nintervals,1);
1562  return y;
1563  }
1564 }
1565 
1566 //2D interpolation
1567 
1568 double GeneralTHDMcache::interpolate2D(gslpp::matrix<double> arrayTab, double x, double y){
1569 
1570  int rowN=arrayTab.size_i();
1571 
1572  double xmin = arrayTab(0,0);
1573  double xmax = arrayTab(rowN-1,0);
1574  double ymin = arrayTab(0,1);
1575  double ymax = arrayTab(rowN-1,1);
1576  double intervalx = arrayTab(1,0)-arrayTab(0,0);
1577  int i=1;
1578  do i++;
1579  while(arrayTab(i,1)-arrayTab(i-1,1)==0&&i<30000);
1580  double intervaly = arrayTab(i,1)-arrayTab(i-1,1);
1581  int Nintervalsx = (x-xmin)/intervalx;
1582  int Nintervalsy = (y-ymin)/intervaly;
1583  if(x<xmin||x>xmax||y<ymin||y>ymax){
1584 // std::cout<<"warning: the parameter point lies outside the table"<<std::endl;
1585  return 0.;
1586  }
1587  else{
1588  double x1=arrayTab(i*Nintervalsy+Nintervalsx,0);
1589  double x2=arrayTab(i*Nintervalsy+Nintervalsx+1,0);
1590  double y1=arrayTab(i*Nintervalsy+Nintervalsx,1);
1591  double y2=arrayTab(i*(Nintervalsy+1)+Nintervalsx,1);
1592  return (arrayTab(i*Nintervalsy+Nintervalsx,2) * (x2-x) * (y2-y)
1593  +arrayTab(i*Nintervalsy+Nintervalsx+1,2) * (x-x1) * (y2-y)
1594  +arrayTab(i*(Nintervalsy+1)+Nintervalsx,2) * (x2-x) * (y-y1)
1595  +arrayTab(i*(Nintervalsy+1)+Nintervalsx+1,2) * (x-x1) * (y-y1))
1596  /((x2-x1)*(y2-y1));
1597  }
1598 }
1599 
1601  std::stringstream br1,br2,br3,br4,br5,br6,br7;
1602  std::stringstream dw1;
1603  std::stringstream cs1,cs2,cs3,cs4,cs5,cs6,cs7,cs8,cs9;
1604  std::stringstream cs11,cs12,cs13,cs14,cs15,cs16,cs17,cs18,cs19;
1605  std::stringstream cs20,cs21;
1606  std::stringstream csr1,csr2,csr3,csr4;
1607  std::stringstream csr11,csr12,csr13,csr14;
1608  std::stringstream ex1,ex2,ex3,ex4,ex5,ex6,ex7,ex8,ex9,ex10,ex11,ex12,ex13,ex14,ex15,ex16,ex17,ex18,ex19,ex20,ex21,ex22,ex23;
1609  std::stringstream ex24,ex25,ex26,ex27,ex28,ex29,ex30,ex31,ex32,ex33,ex34,ex35,ex36,ex37,ex38,ex39,ex40,ex41,ex42,ex43,ex44,\
1610  ex45,ex46,ex46a,ex47,ex48,ex49,ex50,ex51,ex52,ex53,ex54,ex55,ex56;
1611  std::stringstream ex57,ex58,ex59,ex60,ex61,ex62,ex63,ex64,ex65,ex66,ex67,ex68,ex69,ex70,ex71,ex72,ex73,ex74,ex75,ex76,ex77,\
1612  ex78;//,ex79,ex80,ex81,ex82,ex83,ex84,ex85,ex86,ex87,ex88,ex89,ex90,ex91,ex92,ex93,ex94,ex95,ex96,ex97,ex98
1613  std::stringstream bsg1;
1614 
1615  std::cout<<"reading tables"<<std::endl;
1616 
1617 // std::cout << "HEPFITTABS = " << getenv("HEPFITPATH") << std::endl;
1618  std::stringstream path;
1619  path << getenv("HEPFITTABS") << "/THDM/tabs/";
1620  std::string tablepath=path.str();
1621 
1622  br1 << tablepath << "br1.dat";
1623  br_tt = readTable(br1.str(),19961,2);
1624  br2 << tablepath << "br2.dat";
1625  br_bb = readTable(br2.str(),19961,2);
1626  br3 << tablepath << "br3.dat";
1627  br_tautau = readTable(br3.str(),19961,2);
1628  br4 << tablepath << "br4.dat";
1629  br_cc = readTable(br4.str(),19961,2);
1630  br5 << tablepath << "br5.dat";
1631  br_mumu = readTable(br5.str(),19961,2);
1632  br6 << tablepath << "br6.dat";
1633  br_ZZ = readTable(br6.str(),19961,2);
1634  br7 << tablepath << "br7.dat";
1635  br_WW = readTable(br7.str(),19961,2);
1636  dw1 << tablepath << "dw1.dat";
1637  GammaHtot_SM = readTable(dw1.str(),19961,2);
1638  cs1 << tablepath << "log_cs_ggH_8.dat";
1639  log_cs_ggH_8 = readTable(cs1.str(),199,2);
1640  cs11 << tablepath << "log_cs_ggH_13.dat";
1641  log_cs_ggH_13 = readTable(cs11.str(),199,2);
1642  cs2 << tablepath << "log_cs_VBF_8.dat";
1643  log_cs_VBF_8 = readTable(cs2.str(),199,2);
1644  cs12 << tablepath << "log_cs_VBF_13.dat";
1645  log_cs_VBF_13 = readTable(cs12.str(),199,2);
1646  cs3 << tablepath << "log_cs_WH_8.dat";
1647  log_cs_WH_8 = readTable(cs3.str(),199,2);
1648  cs13 << tablepath << "log_cs_WH_13.dat";
1649  log_cs_WH_13 = readTable(cs13.str(),199,2);
1650  cs4 << tablepath << "log_cs_ZH_8.dat";
1651  log_cs_ZH_8 = readTable(cs4.str(),199,2);
1652  cs14 << tablepath << "log_cs_ZH_13.dat";
1653  log_cs_ZH_13 = readTable(cs14.str(),199,2);
1654  cs5 << tablepath << "log_cs_ttH_8.dat";
1655  log_cs_ttH_8 = readTable(cs5.str(),199,2);
1656  cs15 << tablepath << "log_cs_ttH_13.dat";
1657  log_cs_ttH_13 = readTable(cs15.str(),199,2);
1658  cs6 << tablepath << "log_cs_bbH_8.dat";
1659  log_cs_bbH_8 = readTable(cs6.str(),199,2);
1660  cs16 << tablepath << "log_cs_bbH_13.dat";
1661  log_cs_bbH_13 = readTable(cs16.str(),199,2);
1662  cs7 << tablepath << "log_cs_ggA_8.dat";
1663  log_cs_ggA_8 = readTable(cs7.str(),199,2);
1664  cs17 << tablepath << "log_cs_ggA_13.dat";
1665  log_cs_ggA_13 = readTable(cs17.str(),199,2);
1666  cs8 << tablepath << "log_cs_ttA_8.dat";
1667  log_cs_ttA_8 = readTable(cs8.str(),199,2);
1668  cs18 << tablepath << "log_cs_ttA_13.dat";
1669  log_cs_ttA_13 = readTable(cs18.str(),199,2);
1670  cs9 << tablepath << "log_cs_bbA_8.dat";
1671  log_cs_bbA_8 = readTable(cs9.str(),199,2);
1672  cs19 << tablepath << "log_cs_bbA_13.dat";
1673  log_cs_bbA_13 = readTable(cs19.str(),199,2);
1674  cs20 << tablepath << "log_cs_ggHp_8.dat";
1675  log_cs_ggHp_8 = readTable(cs20.str(),744,3);
1676  cs21 << tablepath << "log_cs_ggHp_13.dat";
1677  log_cs_ggHp_13 = readTable(cs21.str(),1104,3);
1678  csr1 << tablepath << "csrH_top_8.dat";
1679  csrH_top_8 = readTable(csr1.str(),199,2);
1680  csr11 << tablepath << "csrH_top_13.dat";
1681  csrH_top_13 = readTable(csr11.str(),199,2);
1682  csr2 << tablepath << "csrH_bottom_8.dat";
1683  csrH_bottom_8 = readTable(csr2.str(),199,2);
1684  csr12 << tablepath << "csrH_bottom_13.dat";
1685  csrH_bottom_13 = readTable(csr12.str(),199,2);
1686  csr3 << tablepath << "csrA_top_8.dat";
1687  csrA_top_8 = readTable(csr3.str(),199,2);
1688  csr13 << tablepath << "csrA_top_13.dat";
1689  csrA_top_13 = readTable(csr13.str(),199,2);
1690  csr4 << tablepath << "csrA_bottom_8.dat";
1691  csrA_bottom_8 = readTable(csr4.str(),199,2);
1692  csr14 << tablepath << "csrA_bottom_13.dat";
1693  csrA_bottom_13 = readTable(csr14.str(),199,2);
1694 
1695  ex1 << tablepath << "14096064_a.dat";
1696  ATLAS8_gg_phi_tautau = readTable(ex1.str(),92,2);
1697  ex2 << tablepath << "14096064_b.dat";
1698  ATLAS8_bb_phi_tautau = readTable(ex2.str(),92,2);
1699  ex3 << tablepath << "14076583.dat";
1700  ATLAS8_gg_phi_gaga = readTable(ex3.str(),108,2);
1701  ex4 << tablepath << "14078150.dat";
1702  ATLAS8_pp_phi_Zga_llga = readTable(ex4.str(),141,2);
1703  ex5 << tablepath << "150705930_a.dat";
1704  ATLAS8_gg_phi_ZZ = readTable(ex5.str(),173,2);
1705  ex6 << tablepath << "150705930_b.dat";
1706  ATLAS8_VV_phi_ZZ = readTable(ex6.str(),173,2);
1707  ex7 << tablepath << "150900389_a.dat";
1708  ATLAS8_gg_phi_WW = readTable(ex7.str(),13,2);
1709  ex8 << tablepath << "150900389_b.dat";
1710  ATLAS8_VV_phi_WW = readTable(ex8.str(),13,2);
1711  ex9 << tablepath << "150904670.dat";
1712  ATLAS8_gg_phi_phi1phi1 = readTable(ex9.str(),75,2);
1713  ex10 << tablepath << "150204478_b.dat";
1714  ATLAS8_gg_phi_phi1Z_bbZ = readTable(ex10.str(),79,2);
1715  ex11 << tablepath << "150204478_a.dat";
1716  ATLAS8_gg_phi_phi1Z_tautauZ = readTable(ex11.str(),79,2);
1717  ex12 << tablepath << "150400936.dat";
1718  CMS8_mu_pp_phi_VV = readTable(ex12.str(),172,2);
1719  ex13 << tablepath << "150608329.dat";
1720  CMS8_bb_phi_bb = readTable(ex13.str(),81,2);
1721  ex14 << tablepath << "180206149.dat";
1722  CMS8_gg_phi_bb = readTable(ex14.str(),88,2);
1723  ex15 << tablepath << "CMS-PAS-HIG-14-029_a.dat";
1724  CMS8_gg_phi_tautau = readTable(ex15.str(),92,2);
1725  ex16 << tablepath << "CMS-PAS-HIG-14-029_b.dat";
1726  CMS8_bb_phi_tautau = readTable(ex16.str(),92,2);
1727  ex17 << tablepath << "CMS-PAS-HIG-16-014.dat";
1728  CMS8_pp_phi_Zga_llga = readTable(ex17.str(),101,2);
1729  ex18 << tablepath << "150304114.dat";
1730  CMS8_pp_phi_phi1phi1_bbbb = readTable(ex18.str(),167,2);
1731  ex19 << tablepath << "160306896.dat";
1732  CMS8_pp_phi_phi1phi1_bbgaga = readTable(ex19.str(),85,2);
1733  ex20 << tablepath << "151001181_a.dat";
1734  CMS8_gg_phi_phi1phi1_bbtautau = readTable(ex20.str(),10,2);
1735  ex21 << tablepath << "170700350.dat";
1736  CMS8_pp_phi_phi1phi1_bbtautau = readTable(ex21.str(),71,2);
1737  ex22 << tablepath << "150404710.dat";
1738  CMS8_gg_phi_phi1Z_bbll = readTable(ex22.str(),16,2);
1739  ex23 << tablepath << "151001181_b.dat";
1740  CMS8_gg_phi_phi1Z_tautaull = readTable(ex23.str(),14,2);
1741 
1742  ex24 << tablepath << "160302991_a.dat";
1743  CMS8_pp_phii_phijZ_bbll_1 = readTable(ex24.str(),28718,3);
1744  ex25 << tablepath << "160302991_b.dat";
1745  CMS8_pp_phii_phijZ_bbll_2 = readTable(ex25.str(),29050,3);
1746  ex26 << tablepath << "160302991_c.dat";
1747  CMS8_pp_phii_phijZ_tautaull_1 = readTable(ex26.str(),400,3);
1748  ex27 << tablepath << "160302991_d.dat";
1749  CMS8_pp_phii_phijZ_tautaull_2 = readTable(ex27.str(),400,3);
1750 
1751  ex28 << tablepath << "180711883.dat";
1752  ATLAS13_tt_phi_tt = readTable(ex28.str(),61,2);
1753  ex29 << tablepath << "ATLAS-CONF-2016-104_b.dat";
1754  ATLAS13_bb_phi_tt = readTable(ex29.str(),61,2);
1755  ex30 << tablepath << "170907242_a.dat";
1756  ATLAS13_gg_phi_tautau = readTable(ex30.str(),206,2);
1757  ex31 << tablepath << "170907242_b.dat";
1758  ATLAS13_bb_phi_tautau = readTable(ex31.str(),206,2);
1759  ex32 << tablepath << "170704147.dat";
1760  ATLAS13_pp_phi_gaga = readTable(ex32.str(),251,2);
1761  ex33 << tablepath << "170800212.dat";
1762  ATLAS13_gg_phi_Zga_llga = readTable(ex33.str(),216,2);
1763  ex34 << tablepath << "180501908.dat";
1764  ATLAS13_gg_phi_Zga_qqga = readTable(ex34.str(),581,2);
1765  ex35 << tablepath << "171206386_a.dat";
1766  ATLAS13_gg_phi_ZZ_llllnunu = readTable(ex35.str(),101,2);
1767  ex36 << tablepath << "171206386_b.dat";
1768  ATLAS13_VV_phi_ZZ_llllnunu = readTable(ex36.str(),101,2);
1769  ex37 << tablepath << "170809638_a.dat";
1770  ATLAS13_gg_phi_ZZ_qqllnunu = readTable(ex37.str(),271,2);
1771  ex38 << tablepath << "170809638_b.dat";
1772  ATLAS13_VV_phi_ZZ_qqllnunu = readTable(ex38.str(),271,2);
1773  ex39 << tablepath << "171001123_a.dat";
1774  ATLAS13_gg_phi_WW_enumunu = readTable(ex39.str(),381,2);
1775  ex40 << tablepath << "171001123_b.dat";
1776  ATLAS13_VV_phi_WW_enumunu = readTable(ex40.str(),281,2);
1777  ex41 << tablepath << "171007235_a.dat";
1778  ATLAS13_gg_phi_WW_lnuqq = readTable(ex41.str(),271,2);
1779  ex42 << tablepath << "171007235_b.dat";
1780  ATLAS13_VV_phi_WW_lnuqq = readTable(ex42.str(),271,2);
1781  ex43 << tablepath << "170804445.dat";
1782  ATLAS13_pp_phi_VV_qqqq = readTable(ex43.str(),181,2);
1783  ex44 << tablepath << "180406174.dat";
1784  ATLAS13_pp_phi_phi1phi1_bbbb = readTable(ex44.str(),275,2);
1785  ex45 << tablepath << "180704873.dat";
1786  ATLAS13_pp_phi_phi1phi1_bbgaga = readTable(ex45.str(),75,2);
1787  ex46 << tablepath << "180800336.dat";
1788  ATLAS13_pp_phi_phi1phi1_bbtautau = readTable(ex46.str(),75,2);
1789  ex46a << tablepath << "181104671.dat";
1790  ATLAS13_pp_phi_phi1phi1_bbWW = readTable(ex46a.str(),51,2);
1791  ex47 << tablepath << "180708567.dat";
1792  ATLAS13_gg_phi_phi1phi1_gagaWW = readTable(ex47.str(),25,2);
1793  ex48 << tablepath << "171206518_a.dat";
1794  ATLAS13_gg_phi_phi1Z_bbZ = readTable(ex48.str(),181,2);
1795  ex49 << tablepath << "171206518_b.dat";
1796  ATLAS13_bb_phi_phi1Z_bbZ = readTable(ex49.str(),181,2);
1797 
1798  ex50 << tablepath << "180401126_a.dat";
1799  ATLAS13_gg_phii_phijZ_bbZ = readTable(ex50.str(),3364,3);
1800  ex51 << tablepath << "180401126_b.dat";
1801  ATLAS13_bb_phii_phijZ_bbZ = readTable(ex51.str(),3364,3);
1802 
1803  ex52 << tablepath << "CMS-PAS-HIG-16-025.dat";
1804  CMS13_pp_phi_bb = readTable(ex52.str(),66,2);
1805  ex53 << tablepath << "180512191.dat";
1806  CMS13_bb_phi_bb = readTable(ex53.str(),101,2);
1807  ex54 << tablepath << "180306553_a.dat";
1808  CMS13_gg_phi_tautau = readTable(ex54.str(),312,2);
1809  ex55 << tablepath << "180306553_b.dat";
1810  CMS13_bb_phi_tautau = readTable(ex55.str(),312,2);
1811  ex56 << tablepath << "160902507.dat";
1812  CMS13_gg_phi_gaga = readTable(ex56.str(),351,2);
1813  ex57 << tablepath << "171203143.dat";
1814  CMS13_gg_phi_Zga = readTable(ex57.str(),366,2);
1815  ex58 << tablepath << "180401939_a.dat";
1816  CMS13_pp_phi_ZZ_llqqnunull = readTable(ex58.str(),288,2);
1817  ex59 << tablepath << "180303838.dat";
1818  CMS13_pp_phi_ZZ_qqnunu = readTable(ex59.str(),301,2);
1819  ex60 << tablepath << "CMS-PAS-HIG-16-023.dat";
1820  CMS13_ggVV_phi_WW_lnulnu = readTable(ex60.str(),81,2);
1821  ex61 << tablepath << "180209407.dat";
1822  CMS13_pp_phi_WW_lnuqq = readTable(ex61.str(),341,2);
1823  ex62 << tablepath << "180603548.dat";
1824  CMS13_pp_phi_phi1phi1_bbbb_1 = readTable(ex62.str(),95,2);
1825  ex63 << tablepath << "180801473.dat";
1826  CMS13_pp_phi_phi1phi1_bbbb_2 = readTable(ex63.str(),181,2);
1827  ex64 << tablepath << "180600408.dat";
1828  CMS13_pp_phi_phi1phi1_bbgaga = readTable(ex64.str(),66,2);
1829  ex65 << tablepath << "170702909.dat";
1830  CMS13_pp_phi_phi1phi1_bbtautau_1 = readTable(ex65.str(),66,2);
1831  ex66 << tablepath << "180801365.dat";
1832  CMS13_pp_phi_phi1phi1_bbtautau_2 = readTable(ex66.str(),311,2);
1833  ex67 << tablepath << "170804188.dat";
1834  CMS13_pp_phi_phi1phi1_bbVV = readTable(ex67.str(),65,2);
1835  ex68 << tablepath << "CMS-PAS-HIG-18-005_a.dat";
1836  CMS13_gg_phi_phi1Z_bbZ_1 = readTable(ex68.str(),79,2);
1837  ex69 << tablepath << "180702826_a.dat";
1838  CMS13_gg_phi_phi1Z_bbZ_2 = readTable(ex69.str(),121,2);
1839  ex70 << tablepath << "CMS-PAS-HIG-18-005_b.dat";
1840  CMS13_bb_phi_phi1Z_bbZ_1 = readTable(ex70.str(),79,2);
1841  ex71 << tablepath << "180702826_b.dat";
1842  CMS13_bb_phi_phi1Z_bbZ_2 = readTable(ex71.str(),121,2);
1843 
1844  ex72 << tablepath << "14126663.dat";
1845  ATLAS8_pp_Hpm_taunu = readTable(ex72.str(),83,2);
1846  ex73 << tablepath << "151203704.dat";
1847  ATLAS8_pp_Hpm_tb = readTable(ex73.str(),41,2);
1848  ex74 << tablepath << "150807774_a.dat";
1849  CMS8_pp_Hp_taunu = readTable(ex74.str(),43,2);
1850  ex75 << tablepath << "150807774_b.dat";
1851  CMS8_pp_Hp_tb = readTable(ex75.str(),43,2);
1852  ex76 << tablepath << "180707915.dat";
1853  ATLAS13_pp_Hpm_taunu = readTable(ex76.str(),192,2);
1854  ex77 << tablepath << "180803599.dat";
1855  ATLAS13_pp_Hpm_tb = readTable(ex77.str(),181,2);
1856  ex78 << tablepath << "CMS-PAS-HIG-16-031.dat";
1857  CMS13_pp_Hpm_taunu = readTable(ex78.str(),283,2);
1858 
1859  bsg1 << tablepath << "bsgammatable.dat";
1860  arraybsgamma = readTable(bsg1.str(),1111,3);
1861 }
1862 
1863 
1864 
1866  int NumPar = 1;
1867  double params[] = {mass};
1868 
1869  int i = CacheCheckReal(ip_Br_HPtott_cache, NumPar, params);
1870  if (i>=0) {
1871  return ( ip_Br_HPtott_cache[NumPar][i] );
1872  } else {
1873  double newResult = pow(10.0,interpolate(br_tt,mass));
1874  CacheShiftReal(ip_Br_HPtott_cache, NumPar, params, newResult);
1875  return newResult;
1876  }
1877 }
1878 
1879 
1880 
1882  int NumPar = 1;
1883  double params[] = {mass};
1884 
1885  int i = CacheCheckReal(ip_Br_HPtobb_cache, NumPar, params);
1886  if (i>=0) {
1887  return ( ip_Br_HPtobb_cache[NumPar][i] );
1888  } else {
1889  double newResult = pow(10.0,interpolate(br_bb,mass));
1890  CacheShiftReal(ip_Br_HPtobb_cache, NumPar, params, newResult);
1891  return newResult;
1892  }
1893 }
1894 
1895 
1896 
1898  int NumPar = 1;
1899  double params[] = {mass};
1900 
1901  int i = CacheCheckReal(ip_Br_HPtotautau_cache, NumPar, params);
1902  if (i>=0) {
1903  return ( ip_Br_HPtotautau_cache[NumPar][i] );
1904  } else {
1905  double newResult = pow(10.0,interpolate(br_tautau,mass));
1906  CacheShiftReal(ip_Br_HPtotautau_cache, NumPar, params, newResult);
1907  return newResult;
1908  }
1909 }
1910 
1911 
1912 
1914  int NumPar = 1;
1915  double params[] = {mass};
1916 
1917  int i = CacheCheckReal(ip_Br_HPtocc_cache, NumPar, params);
1918  if (i>=0) {
1919  return ( ip_Br_HPtocc_cache[NumPar][i] );
1920  } else {
1921  double newResult = pow(10.0,interpolate(br_cc,mass));
1922  CacheShiftReal(ip_Br_HPtocc_cache, NumPar, params, newResult);
1923  return newResult;
1924  }
1925 }
1926 
1927 
1928 
1930  int NumPar = 1;
1931  double params[] = {mass};
1932 
1933  int i = CacheCheckReal(ip_Br_HPtomumu_cache, NumPar, params);
1934  if (i>=0) {
1935  return ( ip_Br_HPtomumu_cache[NumPar][i] );
1936  } else {
1937  double newResult = pow(10.0,interpolate(br_mumu,mass));
1938  CacheShiftReal(ip_Br_HPtomumu_cache, NumPar, params, newResult);
1939  return newResult;
1940  }
1941 }
1942 
1943 
1944 
1946  int NumPar = 1;
1947  double params[] = {mass};
1948 
1949  int i = CacheCheckReal(ip_Br_HPtoZZ_cache, NumPar, params);
1950  if (i>=0) {
1951  return ( ip_Br_HPtoZZ_cache[NumPar][i] );
1952  } else {
1953  double newResult = pow(10.0,interpolate(br_ZZ,mass));
1954  CacheShiftReal(ip_Br_HPtoZZ_cache, NumPar, params, newResult);
1955  return newResult;
1956  }
1957 }
1958 
1959 
1960 
1962  int NumPar = 1;
1963  double params[] = {mass};
1964 
1965  int i = CacheCheckReal(ip_Br_HPtoWW_cache, NumPar, params);
1966  if (i>=0) {
1967  return ( ip_Br_HPtoWW_cache[NumPar][i] );
1968  } else {
1969  double newResult = pow(10.0,interpolate(br_WW,mass));
1970  CacheShiftReal(ip_Br_HPtoWW_cache, NumPar, params, newResult);
1971  return newResult;
1972  }
1973 }
1974 
1975 
1976 
1978  int NumPar = 1;
1979  double params[] = {mass};
1980 
1981  int i = CacheCheckReal(ip_GammaHPtotSM_cache, NumPar, params);
1982  if (i>=0) {
1983  return ( ip_GammaHPtotSM_cache[NumPar][i] );
1984  } else {
1985  double newResult = pow(10.0,interpolate(GammaHtot_SM,mass));
1986  CacheShiftReal(ip_GammaHPtotSM_cache, NumPar, params, newResult);
1987  return newResult;
1988  }
1989 }
1990 
1991 
1992 
1994  int NumPar = 1;
1995  double params[] = {mass};
1996 
1997  int i = CacheCheckReal(ip_cs_ggtoH_8_cache, NumPar, params);
1998  if (i>=0) {
1999  return ( ip_cs_ggtoH_8_cache[NumPar][i] );
2000  } else {
2001  double newResult = 0.0;
2002  if (mass>=20. && mass <=2000.) {
2003  newResult = pow(10.0,interpolate (log_cs_ggH_8,mass));
2004  }
2005  CacheShiftReal(ip_cs_ggtoH_8_cache, NumPar, params, newResult);
2006  return newResult;
2007  }
2008 }
2009 
2010 
2011 
2013  int NumPar = 1;
2014  double params[] = {mass};
2015 
2016  int i = CacheCheckReal(ip_cs_ggtoH_13_cache, NumPar, params);
2017  if (i>=0) {
2018  return ( ip_cs_ggtoH_13_cache[NumPar][i] );
2019  } else {
2020  double newResult = 0.0;
2021  if (mass>=20. && mass <=2000.) {
2022  newResult = pow(10.0,interpolate (log_cs_ggH_13,mass));
2023  }
2024  CacheShiftReal(ip_cs_ggtoH_13_cache, NumPar, params, newResult);
2025  return newResult;
2026  }
2027 }
2028 
2029 
2030 
2032  int NumPar = 1;
2033  double params[] = {mass};
2034 
2035  int i = CacheCheckReal(ip_cs_VBFtoH_8_cache, NumPar, params);
2036  if (i>=0) {
2037  return ( ip_cs_VBFtoH_8_cache[NumPar][i] );
2038  } else {
2039  double newResult = 0.0;
2040  if (mass>=20. && mass <=2000.) {
2041  newResult = pow(10.0,interpolate (log_cs_VBF_8,mass));
2042  }
2043  CacheShiftReal(ip_cs_VBFtoH_8_cache, NumPar, params, newResult);
2044  return newResult;
2045  }
2046 }
2047 
2048 
2049 
2051  int NumPar = 1;
2052  double params[] = {mass};
2053 
2054  int i = CacheCheckReal(ip_cs_VBFtoH_13_cache, NumPar, params);
2055  if (i>=0) {
2056  return ( ip_cs_VBFtoH_13_cache[NumPar][i] );
2057  } else {
2058  double newResult = 0.0;
2059  if (mass>=20. && mass <=2000.) {
2060  newResult = pow(10.0,interpolate (log_cs_VBF_13,mass));
2061  }
2062  CacheShiftReal(ip_cs_VBFtoH_13_cache, NumPar, params, newResult);
2063  return newResult;
2064  }
2065 }
2066 
2067 
2068 
2070  int NumPar = 1;
2071  double params[] = {mass};
2072 
2073  int i = CacheCheckReal(ip_cs_WtoWH_8_cache, NumPar, params);
2074  if (i>=0) {
2075  return ( ip_cs_WtoWH_8_cache[NumPar][i] );
2076  } else {
2077  double newResult = 0.0;
2078  if (mass>=20. && mass <=2000.) {
2079  newResult = pow(10.0,interpolate (log_cs_WH_8,mass));
2080  }
2081  CacheShiftReal(ip_cs_WtoWH_8_cache, NumPar, params, newResult);
2082  return newResult;
2083  }
2084 }
2085 
2086 
2087 
2089  int NumPar = 1;
2090  double params[] = {mass};
2091 
2092  int i = CacheCheckReal(ip_cs_WtoWH_13_cache, NumPar, params);
2093  if (i>=0) {
2094  return ( ip_cs_WtoWH_13_cache[NumPar][i] );
2095  } else {
2096  double newResult = 0.0;
2097  if (mass>=20. && mass <=2000.) {
2098  newResult = pow(10.0,interpolate (log_cs_WH_13,mass));
2099  }
2100  CacheShiftReal(ip_cs_WtoWH_13_cache, NumPar, params, newResult);
2101  return newResult;
2102  }
2103 }
2104 
2105 
2106 
2108  int NumPar = 1;
2109  double params[] = {mass};
2110 
2111  int i = CacheCheckReal(ip_cs_ZtoZH_8_cache, NumPar, params);
2112  if (i>=0) {
2113  return ( ip_cs_ZtoZH_8_cache[NumPar][i] );
2114  } else {
2115  double newResult = 0.0;
2116  if (mass>=20. && mass <=2000.) {
2117  newResult = pow(10.0,interpolate (log_cs_ZH_8,mass));
2118  }
2119  CacheShiftReal(ip_cs_ZtoZH_8_cache, NumPar, params, newResult);
2120  return newResult;
2121  }
2122 }
2123 
2124 
2125 
2127  int NumPar = 1;
2128  double params[] = {mass};
2129 
2130  int i = CacheCheckReal(ip_cs_ZtoZH_13_cache, NumPar, params);
2131  if (i>=0) {
2132  return ( ip_cs_ZtoZH_13_cache[NumPar][i] );
2133  } else {
2134  double newResult = 0.0;
2135  if (mass>=20. && mass <=2000.) {
2136  newResult = pow(10.0,interpolate (log_cs_ZH_13,mass));
2137  }
2138  CacheShiftReal(ip_cs_ZtoZH_13_cache, NumPar, params, newResult);
2139  return newResult;
2140  }
2141 }
2142 
2143 
2144 
2146  int NumPar = 1;
2147  double params[] = {mass};
2148 
2149  int i = CacheCheckReal(ip_cs_pptottH_8_cache, NumPar, params);
2150  if (i>=0) {
2151  return ( ip_cs_pptottH_8_cache[NumPar][i] );
2152  } else {
2153  double newResult = 0.0;
2154  if (mass>=20. && mass <=2000.) {
2155  newResult = pow(10.0,interpolate (log_cs_ttH_8,mass));
2156  }
2157  CacheShiftReal(ip_cs_pptottH_8_cache, NumPar, params, newResult);
2158  return newResult;
2159  }
2160 }
2161 
2162 
2163 
2165  int NumPar = 1;
2166  double params[] = {mass};
2167 
2168  int i = CacheCheckReal(ip_cs_pptottH_13_cache, NumPar, params);
2169  if (i>=0) {
2170  return ( ip_cs_pptottH_13_cache[NumPar][i] );
2171  } else {
2172  double newResult = 0.0;
2173  if (mass>=20. && mass <=2000.) {
2174  newResult = pow(10.0,interpolate (log_cs_ttH_13,mass));
2175  }
2176  CacheShiftReal(ip_cs_pptottH_13_cache, NumPar, params, newResult);
2177  return newResult;
2178  }
2179 }
2180 
2181 
2182 
2184  int NumPar = 1;
2185  double params[] = {mass};
2186 
2187  int i = CacheCheckReal(ip_cs_pptobbH_8_cache, NumPar, params);
2188  if (i>=0) {
2189  return ( ip_cs_pptobbH_8_cache[NumPar][i] );
2190  } else {
2191  double newResult = 0.0;
2192  if (mass>=20. && mass <=2000.) {
2193  newResult = pow(10.0,interpolate (log_cs_bbH_8,mass));
2194  }
2195  CacheShiftReal(ip_cs_pptobbH_8_cache, NumPar, params, newResult);
2196  return newResult;
2197  }
2198 }
2199 
2200 
2201 
2203  int NumPar = 1;
2204  double params[] = {mass};
2205 
2206  int i = CacheCheckReal(ip_cs_pptobbH_13_cache, NumPar, params);
2207  if (i>=0) {
2208  return ( ip_cs_pptobbH_13_cache[NumPar][i] );
2209  } else {
2210  double newResult = 0.0;
2211  if (mass>=20. && mass <=2000.) {
2212  newResult = pow(10.0,interpolate (log_cs_bbH_13,mass));
2213  }
2214  CacheShiftReal(ip_cs_pptobbH_13_cache, NumPar, params, newResult);
2215  return newResult;
2216  }
2217 }
2218 
2219 
2220 
2222  int NumPar = 1;
2223  double params[] = {mass};
2224 
2225  int i = CacheCheckReal(ip_cs_ggtoA_8_cache, NumPar, params);
2226  if (i>=0) {
2227  return ( ip_cs_ggtoA_8_cache[NumPar][i] );
2228  } else {
2229  double newResult = 0.0;
2230  if (mass>=20. && mass <=2000.) {
2231  newResult = pow(10.0,interpolate (log_cs_ggA_8,mass));
2232  }
2233  CacheShiftReal(ip_cs_ggtoA_8_cache, NumPar, params, newResult);
2234  return newResult;
2235  }
2236 }
2237 
2238 
2239 
2241  int NumPar = 1;
2242  double params[] = {mass};
2243 
2244  int i = CacheCheckReal(ip_cs_ggtoA_13_cache, NumPar, params);
2245  if (i>=0) {
2246  return ( ip_cs_ggtoA_13_cache[NumPar][i] );
2247  } else {
2248  double newResult = 0.0;
2249  if (mass>=20. && mass <=2000.) {
2250  newResult = pow(10.0,interpolate (log_cs_ggA_13,mass));
2251  }
2252  CacheShiftReal(ip_cs_ggtoA_13_cache, NumPar, params, newResult);
2253  return newResult;
2254  }
2255 }
2256 
2257 
2258 
2260  int NumPar = 1;
2261  double params[] = {mass};
2262 
2263  int i = CacheCheckReal(ip_cs_pptottA_8_cache, NumPar, params);
2264  if (i>=0) {
2265  return ( ip_cs_pptottA_8_cache[NumPar][i] );
2266  } else {
2267  double newResult = 0.0;
2268  if (mass>=20. && mass <=2000.) {
2269  newResult = pow(10.0,interpolate (log_cs_ttA_8,mass));
2270  }
2271  CacheShiftReal(ip_cs_pptottA_8_cache, NumPar, params, newResult);
2272  return newResult;
2273  }
2274 }
2275 
2276 
2277 
2279  int NumPar = 1;
2280  double params[] = {mass};
2281 
2282  int i = CacheCheckReal(ip_cs_pptottA_13_cache, NumPar, params);
2283  if (i>=0) {
2284  return ( ip_cs_pptottA_13_cache[NumPar][i] );
2285  } else {
2286  double newResult = 0.0;
2287  if (mass>=20. && mass <=2000.) {
2288  newResult = pow(10.0,interpolate (log_cs_ttA_13,mass));
2289  }
2290  CacheShiftReal(ip_cs_pptottA_13_cache, NumPar, params, newResult);
2291  return newResult;
2292  }
2293 }
2294 
2295 
2296 
2298  int NumPar = 1;
2299  double params[] = {mass};
2300 
2301  int i = CacheCheckReal(ip_cs_pptobbA_8_cache, NumPar, params);
2302  if (i>=0) {
2303  return ( ip_cs_pptobbA_8_cache[NumPar][i] );
2304  } else {
2305  double newResult = 0.0;
2306  if (mass>=20. && mass <=2000.) {
2307  newResult = pow(10.0,interpolate (log_cs_bbA_8,mass));
2308  }
2309  CacheShiftReal(ip_cs_pptobbA_8_cache, NumPar, params, newResult);
2310  return newResult;
2311  }
2312 }
2313 
2314 
2315 
2317  int NumPar = 1;
2318  double params[] = {mass};
2319 
2320  int i = CacheCheckReal(ip_cs_pptobbA_13_cache, NumPar, params);
2321  if (i>=0) {
2322  return ( ip_cs_pptobbA_13_cache[NumPar][i] );
2323  } else {
2324  double newResult = 0.0;
2325  if (mass>=20. && mass <=2000.) {
2326  newResult = pow(10.0,interpolate (log_cs_bbA_13,mass));
2327  }
2328  CacheShiftReal(ip_cs_pptobbA_13_cache, NumPar, params, newResult);
2329  return newResult;
2330  }
2331 }
2332 
2333 
2334 
2335 double GeneralTHDMcache::ip_cs_ggtoHp_8(double mHp, double logtb){
2336  int NumPar = 2;
2337  double params[] = {mHp, logtb};
2338 
2339  int i = CacheCheckReal(ip_cs_ggtoHp_8_cache, NumPar, params);
2340  if (i>=0) {
2341  return ( ip_cs_ggtoHp_8_cache[NumPar][i] );
2342  } else {
2343  double newResult = 0.0;
2344  if (mHp>=180. && mHp <=1400. && logtb>=-1. && logtb<=1.75) {
2345  newResult = pow(10.0,interpolate2D(log_cs_ggHp_8, logtb, mHp));
2346  }
2347  CacheShiftReal(ip_cs_ggtoHp_8_cache, NumPar, params, newResult);
2348  return newResult;
2349  }
2350 }
2351 
2352 
2353 
2354 double GeneralTHDMcache::ip_cs_ggtoHp_13(double mHp, double logtb){
2355  int NumPar = 2;
2356  double params[] = {mHp, logtb};
2357 
2358  int i = CacheCheckReal(ip_cs_ggtoHp_13_cache, NumPar, params);
2359  if (i>=0) {
2360  return ( ip_cs_ggtoHp_13_cache[NumPar][i] );
2361  } else {
2362  double newResult = 0.0;
2363  if (mHp>=180. && mHp <=2000. && logtb>=-1. && logtb<=1.75) {
2364  newResult = pow(10.0,interpolate2D(log_cs_ggHp_13, logtb, mHp));
2365  }
2366  CacheShiftReal(ip_cs_ggtoHp_13_cache, NumPar, params, newResult);
2367  return newResult;
2368  }
2369 }
2370 
2371 
2372 
2374  int NumPar = 1;
2375  double params[] = {mass};
2376 
2377  int i = CacheCheckReal(ip_csr_ggH_t_8_cache, NumPar, params);
2378  if (i>=0) {
2379  return ( ip_csr_ggH_t_8_cache[NumPar][i] );
2380  } else {
2381  double newResult = interpolate (csrH_top_8,mass);
2382  CacheShiftReal(ip_csr_ggH_t_8_cache, NumPar, params, newResult);
2383  return newResult;
2384  }
2385 }
2386 
2387 
2388 
2390  int NumPar = 1;
2391  double params[] = {mass};
2392 
2393  int i = CacheCheckReal(ip_csr_ggH_t_13_cache, NumPar, params);
2394  if (i>=0) {
2395  return ( ip_csr_ggH_t_13_cache[NumPar][i] );
2396  } else {
2397  double newResult = interpolate (csrH_top_13,mass);
2398  CacheShiftReal(ip_csr_ggH_t_13_cache, NumPar, params, newResult);
2399  return newResult;
2400  }
2401 }
2402 
2403 
2404 
2406  int NumPar = 1;
2407  double params[] = {mass};
2408 
2409  int i = CacheCheckReal(ip_csr_ggH_b_8_cache, NumPar, params);
2410  if (i>=0) {
2411  return ( ip_csr_ggH_b_8_cache[NumPar][i] );
2412  } else {
2413  double newResult = interpolate (csrH_bottom_8,mass);
2414  CacheShiftReal(ip_csr_ggH_b_8_cache, NumPar, params, newResult);
2415  return newResult;
2416  }
2417 }
2418 
2419 
2420 
2422  int NumPar = 1;
2423  double params[] = {mass};
2424 
2425  int i = CacheCheckReal(ip_csr_ggH_b_13_cache, NumPar, params);
2426  if (i>=0) {
2427  return ( ip_csr_ggH_b_13_cache[NumPar][i] );
2428  } else {
2429  double newResult = interpolate (csrH_bottom_13,mass);
2430  CacheShiftReal(ip_csr_ggH_b_13_cache, NumPar, params, newResult);
2431  return newResult;
2432  }
2433 }
2434 
2435 
2436 
2438  int NumPar = 1;
2439  double params[] = {mass};
2440 
2441  int i = CacheCheckReal(ip_csr_ggA_t_8_cache, NumPar, params);
2442  if (i>=0) {
2443  return ( ip_csr_ggA_t_8_cache[NumPar][i] );
2444  } else {
2445  double newResult = interpolate (csrA_top_8,mass);
2446  CacheShiftReal(ip_csr_ggA_t_8_cache, NumPar, params, newResult);
2447  return newResult;
2448  }
2449 }
2450 
2451 
2452 
2454  int NumPar = 1;
2455  double params[] = {mass};
2456 
2457  int i = CacheCheckReal(ip_csr_ggA_t_13_cache, NumPar, params);
2458  if (i>=0) {
2459  return ( ip_csr_ggA_t_13_cache[NumPar][i] );
2460  } else {
2461  double newResult = interpolate (csrA_top_13,mass);
2462  CacheShiftReal(ip_csr_ggA_t_13_cache, NumPar, params, newResult);
2463  return newResult;
2464  }
2465 }
2466 
2467 
2468 
2470  int NumPar = 1;
2471  double params[] = {mass};
2472 
2473  int i = CacheCheckReal(ip_csr_ggA_b_8_cache, NumPar, params);
2474  if (i>=0) {
2475  return ( ip_csr_ggA_b_8_cache[NumPar][i] );
2476  } else {
2477  double newResult = interpolate (csrA_bottom_8,mass);
2478  CacheShiftReal(ip_csr_ggA_b_8_cache, NumPar, params, newResult);
2479  return newResult;
2480  }
2481 }
2482 
2483 
2484 
2486  int NumPar = 1;
2487  double params[] = {mass};
2488 
2489  int i = CacheCheckReal(ip_csr_ggA_b_13_cache, NumPar, params);
2490  if (i>=0) {
2491  return ( ip_csr_ggA_b_13_cache[NumPar][i] );
2492  } else {
2493  double newResult = interpolate (csrA_bottom_13,mass);
2494  CacheShiftReal(ip_csr_ggA_b_13_cache, NumPar, params, newResult);
2495  return newResult;
2496  }
2497 }
2498 
2500  int NumPar = 1;
2501  double params[] = {mass};
2502 
2503  int i = CacheCheckReal(ip_ex_tt_phi_tt_ATLAS13_cache, NumPar, params);
2504  if (i>=0) {
2505  return ( ip_ex_tt_phi_tt_ATLAS13_cache[NumPar][i] );
2506  } else {
2507  double newResult = interpolate(ATLAS13_tt_phi_tt,mass);
2508  CacheShiftReal(ip_ex_tt_phi_tt_ATLAS13_cache, NumPar, params, newResult);
2509  return newResult;
2510  }
2511 }
2512 
2514  int NumPar = 1;
2515  double params[] = {mass};
2516 
2517  int i = CacheCheckReal(ip_ex_bb_phi_tt_ATLAS13_cache, NumPar, params);
2518  if (i>=0) {
2519  return ( ip_ex_bb_phi_tt_ATLAS13_cache[NumPar][i] );
2520  } else {
2521  double newResult = interpolate(ATLAS13_bb_phi_tt,mass);
2522  CacheShiftReal(ip_ex_bb_phi_tt_ATLAS13_cache, NumPar, params, newResult);
2523  return newResult;
2524  }
2525 }
2526 
2528  int NumPar = 1;
2529  double params[] = {mass};
2530 
2531  int i = CacheCheckReal(ip_ex_bb_phi_bb_CMS8_cache, NumPar, params);
2532  if (i>=0) {
2533  return ( ip_ex_bb_phi_bb_CMS8_cache[NumPar][i] );
2534  } else {
2535  double newResult = interpolate(CMS8_bb_phi_bb,mass);
2536  CacheShiftReal(ip_ex_bb_phi_bb_CMS8_cache, NumPar, params, newResult);
2537  return newResult;
2538  }
2539 }
2540 
2542  int NumPar = 1;
2543  double params[] = {mass};
2544 
2545  int i = CacheCheckReal(ip_ex_gg_phi_bb_CMS8_cache, NumPar, params);
2546  if (i>=0) {
2547  return ( ip_ex_gg_phi_bb_CMS8_cache[NumPar][i] );
2548  } else {
2549  double newResult = interpolate(CMS8_gg_phi_bb,mass);
2550  CacheShiftReal(ip_ex_gg_phi_bb_CMS8_cache, NumPar, params, newResult);
2551  return newResult;
2552  }
2553 }
2554 
2556  int NumPar = 1;
2557  double params[] = {mass};
2558 
2559  int i = CacheCheckReal(ip_ex_pp_phi_bb_CMS13_cache, NumPar, params);
2560  if (i>=0) {
2561  return ( ip_ex_pp_phi_bb_CMS13_cache[NumPar][i] );
2562  } else {
2563  double newResult = interpolate(CMS13_pp_phi_bb,mass);
2564  CacheShiftReal(ip_ex_pp_phi_bb_CMS13_cache, NumPar, params, newResult);
2565  return newResult;
2566  }
2567 }
2568 
2570  int NumPar = 1;
2571  double params[] = {mass};
2572 
2573  int i = CacheCheckReal(ip_ex_bb_phi_bb_CMS13_cache, NumPar, params);
2574  if (i>=0) {
2575  return ( ip_ex_bb_phi_bb_CMS13_cache[NumPar][i] );
2576  } else {
2577  double newResult = interpolate(CMS13_bb_phi_bb,mass);
2578  CacheShiftReal(ip_ex_bb_phi_bb_CMS13_cache, NumPar, params, newResult);
2579  return newResult;
2580  }
2581 }
2582 
2584  int NumPar = 1;
2585  double params[] = {mass};
2586 
2587  int i = CacheCheckReal(ip_ex_gg_phi_tautau_ATLAS8_cache, NumPar, params);
2588  if (i>=0) {
2589  return ( ip_ex_gg_phi_tautau_ATLAS8_cache[NumPar][i] );
2590  } else {
2591  double newResult = interpolate(ATLAS8_gg_phi_tautau,mass);
2592  CacheShiftReal(ip_ex_gg_phi_tautau_ATLAS8_cache, NumPar, params, newResult);
2593  return newResult;
2594  }
2595 }
2596 
2598  int NumPar = 1;
2599  double params[] = {mass};
2600 
2601  int i = CacheCheckReal(ip_ex_gg_phi_tautau_CMS8_cache, NumPar, params);
2602  if (i>=0) {
2603  return ( ip_ex_gg_phi_tautau_CMS8_cache[NumPar][i] );
2604  } else {
2605  double newResult = interpolate(CMS8_gg_phi_tautau,mass);
2606  CacheShiftReal(ip_ex_gg_phi_tautau_CMS8_cache, NumPar, params, newResult);
2607  return newResult;
2608  }
2609 }
2610 
2612  int NumPar = 1;
2613  double params[] = {mass};
2614 
2615  int i = CacheCheckReal(ip_ex_bb_phi_tautau_ATLAS8_cache, NumPar, params);
2616  if (i>=0) {
2617  return ( ip_ex_bb_phi_tautau_ATLAS8_cache[NumPar][i] );
2618  } else {
2619  double newResult = interpolate(ATLAS8_bb_phi_tautau,mass);
2620  CacheShiftReal(ip_ex_bb_phi_tautau_ATLAS8_cache, NumPar, params, newResult);
2621  return newResult;
2622  }
2623 }
2624 
2626  int NumPar = 1;
2627  double params[] = {mass};
2628 
2629  int i = CacheCheckReal(ip_ex_bb_phi_tautau_CMS8_cache, NumPar, params);
2630  if (i>=0) {
2631  return ( ip_ex_bb_phi_tautau_CMS8_cache[NumPar][i] );
2632  } else {
2633  double newResult = interpolate(CMS8_bb_phi_tautau,mass);
2634  CacheShiftReal(ip_ex_bb_phi_tautau_CMS8_cache, NumPar, params, newResult);
2635  return newResult;
2636  }
2637 }
2638 
2640  int NumPar = 1;
2641  double params[] = {mass};
2642 
2643  int i = CacheCheckReal(ip_ex_gg_phi_tautau_ATLAS13_cache, NumPar, params);
2644  if (i>=0) {
2645  return ( ip_ex_gg_phi_tautau_ATLAS13_cache[NumPar][i] );
2646  } else {
2647  double newResult = interpolate(ATLAS13_gg_phi_tautau,mass);
2648  CacheShiftReal(ip_ex_gg_phi_tautau_ATLAS13_cache, NumPar, params, newResult);
2649  return newResult;
2650  }
2651 }
2652 
2654  int NumPar = 1;
2655  double params[] = {mass};
2656 
2657  int i = CacheCheckReal(ip_ex_gg_phi_tautau_CMS13_cache, NumPar, params);
2658  if (i>=0) {
2659  return ( ip_ex_gg_phi_tautau_CMS13_cache[NumPar][i] );
2660  } else {
2661  double newResult = interpolate(CMS13_gg_phi_tautau,mass);
2662  CacheShiftReal(ip_ex_gg_phi_tautau_CMS13_cache, NumPar, params, newResult);
2663  return newResult;
2664  }
2665 }
2666 
2668  int NumPar = 1;
2669  double params[] = {mass};
2670 
2671  int i = CacheCheckReal(ip_ex_bb_phi_tautau_ATLAS13_cache, NumPar, params);
2672  if (i>=0) {
2673  return ( ip_ex_bb_phi_tautau_ATLAS13_cache[NumPar][i] );
2674  } else {
2675  double newResult = interpolate(ATLAS13_bb_phi_tautau,mass);
2676  CacheShiftReal(ip_ex_bb_phi_tautau_ATLAS13_cache, NumPar, params, newResult);
2677  return newResult;
2678  }
2679 }
2680 
2682  int NumPar = 1;
2683  double params[] = {mass};
2684 
2685  int i = CacheCheckReal(ip_ex_bb_phi_tautau_CMS13_cache, NumPar, params);
2686  if (i>=0) {
2687  return ( ip_ex_bb_phi_tautau_CMS13_cache[NumPar][i] );
2688  } else {
2689  double newResult = interpolate(CMS13_bb_phi_tautau,mass);
2690  CacheShiftReal(ip_ex_bb_phi_tautau_CMS13_cache, NumPar, params, newResult);
2691  return newResult;
2692  }
2693 }
2694 
2696  int NumPar = 1;
2697  double params[] = {mass};
2698 
2699  int i = CacheCheckReal(ip_ex_gg_phi_gaga_ATLAS8_cache, NumPar, params);
2700  if (i>=0) {
2701  return ( ip_ex_gg_phi_gaga_ATLAS8_cache[NumPar][i] );
2702  } else {
2703  double newResult = interpolate(ATLAS8_gg_phi_gaga,mass);
2704  CacheShiftReal(ip_ex_gg_phi_gaga_ATLAS8_cache, NumPar, params, newResult);
2705  return newResult;
2706  }
2707 }
2708 
2710  int NumPar = 1;
2711  double params[] = {mass};
2712 
2713  int i = CacheCheckReal(ip_ex_pp_phi_gaga_ATLAS13_cache, NumPar, params);
2714  if (i>=0) {
2715  return ( ip_ex_pp_phi_gaga_ATLAS13_cache[NumPar][i] );
2716  } else {
2717  double newResult = interpolate(ATLAS13_pp_phi_gaga,mass);
2718  CacheShiftReal(ip_ex_pp_phi_gaga_ATLAS13_cache, NumPar, params, newResult);
2719  return newResult;
2720  }
2721 }
2722 
2724  int NumPar = 1;
2725  double params[] = {mass};
2726 
2727  int i = CacheCheckReal(ip_ex_gg_phi_gaga_CMS13_cache, NumPar, params);
2728  if (i>=0) {
2729  return ( ip_ex_gg_phi_gaga_CMS13_cache[NumPar][i] );
2730  } else {
2731  double newResult = interpolate(CMS13_gg_phi_gaga,mass);
2732  CacheShiftReal(ip_ex_gg_phi_gaga_CMS13_cache, NumPar, params, newResult);
2733  return newResult;
2734  }
2735 }
2736 
2738  int NumPar = 1;
2739  double params[] = {mass};
2740 
2741  int i = CacheCheckReal(ip_ex_pp_phi_Zga_llga_ATLAS8_cache, NumPar, params);
2742  if (i>=0) {
2743  return ( ip_ex_pp_phi_Zga_llga_ATLAS8_cache[NumPar][i] );
2744  } else {
2745  double newResult = interpolate(ATLAS8_pp_phi_Zga_llga,mass);
2746  CacheShiftReal(ip_ex_pp_phi_Zga_llga_ATLAS8_cache, NumPar, params, newResult);
2747  return newResult;
2748  }
2749 }
2750 
2752  int NumPar = 1;
2753  double params[] = {mass};
2754 
2755  int i = CacheCheckReal(ip_ex_pp_phi_Zga_llga_CMS8_cache, NumPar, params);
2756  if (i>=0) {
2757  return ( ip_ex_pp_phi_Zga_llga_CMS8_cache[NumPar][i] );
2758  } else {
2759  double newResult = interpolate(CMS8_pp_phi_Zga_llga,mass);
2760  CacheShiftReal(ip_ex_pp_phi_Zga_llga_CMS8_cache, NumPar, params, newResult);
2761  return newResult;
2762  }
2763 }
2764 
2766  int NumPar = 1;
2767  double params[] = {mass};
2768 
2769  int i = CacheCheckReal(ip_ex_gg_phi_Zga_llga_ATLAS13_cache, NumPar, params);
2770  if (i>=0) {
2771  return ( ip_ex_gg_phi_Zga_llga_ATLAS13_cache[NumPar][i] );
2772  } else {
2773  double newResult = interpolate(ATLAS13_gg_phi_Zga_llga,mass);
2774  CacheShiftReal(ip_ex_gg_phi_Zga_llga_ATLAS13_cache, NumPar, params, newResult);
2775  return newResult;
2776  }
2777 }
2778 
2780  int NumPar = 1;
2781  double params[] = {mass};
2782 
2783  int i = CacheCheckReal(ip_ex_gg_phi_Zga_qqga_ATLAS13_cache, NumPar, params);
2784  if (i>=0) {
2785  return ( ip_ex_gg_phi_Zga_qqga_ATLAS13_cache[NumPar][i] );
2786  } else {
2787  double newResult = interpolate(ATLAS13_gg_phi_Zga_qqga,mass);
2788  CacheShiftReal(ip_ex_gg_phi_Zga_qqga_ATLAS13_cache, NumPar, params, newResult);
2789  return newResult;
2790  }
2791 }
2792 
2794  int NumPar = 1;
2795  double params[] = {mass};
2796 
2797  int i = CacheCheckReal(ip_ex_gg_phi_Zga_CMS13_cache, NumPar, params);
2798  if (i>=0) {
2799  return ( ip_ex_gg_phi_Zga_CMS13_cache[NumPar][i] );
2800  } else {
2801  double newResult = interpolate(CMS13_gg_phi_Zga,mass);
2802  CacheShiftReal(ip_ex_gg_phi_Zga_CMS13_cache, NumPar, params, newResult);
2803  return newResult;
2804  }
2805 }
2806 
2808  int NumPar = 1;
2809  double params[] = {mass};
2810 
2811  int i = CacheCheckReal(ip_ex_gg_phi_ZZ_ATLAS8_cache, NumPar, params);
2812  if (i>=0) {
2813  return ( ip_ex_gg_phi_ZZ_ATLAS8_cache[NumPar][i] );
2814  } else {
2815  double newResult = interpolate(ATLAS8_gg_phi_ZZ,mass);
2816  CacheShiftReal(ip_ex_gg_phi_ZZ_ATLAS8_cache, NumPar, params, newResult);
2817  return newResult;
2818  }
2819 }
2820 
2822  int NumPar = 1;
2823  double params[] = {mass};
2824 
2825  int i = CacheCheckReal(ip_ex_VV_phi_ZZ_ATLAS8_cache, NumPar, params);
2826  if (i>=0) {
2827  return ( ip_ex_VV_phi_ZZ_ATLAS8_cache[NumPar][i] );
2828  } else {
2829  double newResult = interpolate(ATLAS8_VV_phi_ZZ,mass);
2830  CacheShiftReal(ip_ex_VV_phi_ZZ_ATLAS8_cache, NumPar, params, newResult);
2831  return newResult;
2832  }
2833 }
2834 
2836  int NumPar = 1;
2837  double params[] = {mass};
2838 
2839  int i = CacheCheckReal(ip_ex_gg_phi_ZZ_llllnunu_ATLAS13_cache, NumPar, params);
2840  if (i>=0) {
2841  return ( ip_ex_gg_phi_ZZ_llllnunu_ATLAS13_cache[NumPar][i] );
2842  } else {
2843  double newResult = interpolate(ATLAS13_gg_phi_ZZ_llllnunu,mass);
2844  CacheShiftReal(ip_ex_gg_phi_ZZ_llllnunu_ATLAS13_cache, NumPar, params, newResult);
2845  return newResult;
2846  }
2847 }
2848 
2850  int NumPar = 1;
2851  double params[] = {mass};
2852 
2853  int i = CacheCheckReal(ip_ex_VV_phi_ZZ_llllnunu_ATLAS13_cache, NumPar, params);
2854  if (i>=0) {
2855  return ( ip_ex_VV_phi_ZZ_llllnunu_ATLAS13_cache[NumPar][i] );
2856  } else {
2857  double newResult = interpolate(ATLAS13_VV_phi_ZZ_llllnunu,mass);
2858  CacheShiftReal(ip_ex_VV_phi_ZZ_llllnunu_ATLAS13_cache, NumPar, params, newResult);
2859  return newResult;
2860  }
2861 }
2862 
2864  int NumPar = 1;
2865  double params[] = {mass};
2866 
2867  int i = CacheCheckReal(ip_ex_gg_phi_ZZ_qqllnunu_ATLAS13_cache, NumPar, params);
2868  if (i>=0) {
2869  return ( ip_ex_gg_phi_ZZ_qqllnunu_ATLAS13_cache[NumPar][i] );
2870  } else {
2871  double newResult = interpolate(ATLAS13_gg_phi_ZZ_qqllnunu,mass);
2872  CacheShiftReal(ip_ex_gg_phi_ZZ_qqllnunu_ATLAS13_cache, NumPar, params, newResult);
2873  return newResult;
2874  }
2875 }
2876 
2878  int NumPar = 1;
2879  double params[] = {mass};
2880 
2881  int i = CacheCheckReal(ip_ex_VV_phi_ZZ_qqllnunu_ATLAS13_cache, NumPar, params);
2882  if (i>=0) {
2883  return ( ip_ex_VV_phi_ZZ_qqllnunu_ATLAS13_cache[NumPar][i] );
2884  } else {
2885  double newResult = interpolate(ATLAS13_VV_phi_ZZ_qqllnunu,mass);
2886  CacheShiftReal(ip_ex_VV_phi_ZZ_qqllnunu_ATLAS13_cache, NumPar, params, newResult);
2887  return newResult;
2888  }
2889 }
2890 
2892  int NumPar = 1;
2893  double params[] = {mass};
2894 
2895  int i = CacheCheckReal(ip_ex_pp_phi_ZZ_llqqnunull_CMS13_cache, NumPar, params);
2896  if (i>=0) {
2897  return ( ip_ex_pp_phi_ZZ_llqqnunull_CMS13_cache[NumPar][i] );
2898  } else {
2899  double newResult = interpolate(CMS13_pp_phi_ZZ_llqqnunull,mass);
2900  CacheShiftReal(ip_ex_pp_phi_ZZ_llqqnunull_CMS13_cache, NumPar, params, newResult);
2901  return newResult;
2902  }
2903 }
2904 
2906  int NumPar = 1;
2907  double params[] = {mass};
2908 
2909  int i = CacheCheckReal(ip_ex_pp_phi_ZZ_qqnunu_CMS13_cache, NumPar, params);
2910  if (i>=0) {
2911  return ( ip_ex_pp_phi_ZZ_qqnunu_CMS13_cache[NumPar][i] );
2912  } else {
2913  double newResult = interpolate(CMS13_pp_phi_ZZ_qqnunu,mass);
2914  CacheShiftReal(ip_ex_pp_phi_ZZ_qqnunu_CMS13_cache, NumPar, params, newResult);
2915  return newResult;
2916  }
2917 }
2918 
2920  int NumPar = 1;
2921  double params[] = {mass};
2922 
2923  int i = CacheCheckReal(ip_ex_gg_phi_WW_ATLAS8_cache, NumPar, params);
2924  if (i>=0) {
2925  return ( ip_ex_gg_phi_WW_ATLAS8_cache[NumPar][i] );
2926  } else {
2927  double newResult = interpolate(ATLAS8_gg_phi_WW,mass);
2928  CacheShiftReal(ip_ex_gg_phi_WW_ATLAS8_cache, NumPar, params, newResult);
2929  return newResult;
2930  }
2931 }
2932 
2934  int NumPar = 1;
2935  double params[] = {mass};
2936 
2937  int i = CacheCheckReal(ip_ex_VV_phi_WW_ATLAS8_cache, NumPar, params);
2938  if (i>=0) {
2939  return ( ip_ex_VV_phi_WW_ATLAS8_cache[NumPar][i] );
2940  } else {
2941  double newResult = interpolate(ATLAS8_VV_phi_WW,mass);
2942  CacheShiftReal(ip_ex_VV_phi_WW_ATLAS8_cache, NumPar, params, newResult);
2943  return newResult;
2944  }
2945 }
2946 
2948  int NumPar = 1;
2949  double params[] = {mass};
2950 
2951  int i = CacheCheckReal(ip_ex_gg_phi_WW_enumunu_ATLAS13_cache, NumPar, params);
2952  if (i>=0) {
2953  return ( ip_ex_gg_phi_WW_enumunu_ATLAS13_cache[NumPar][i] );
2954  } else {
2955  double newResult = interpolate(ATLAS13_gg_phi_WW_enumunu,mass);
2956  CacheShiftReal(ip_ex_gg_phi_WW_enumunu_ATLAS13_cache, NumPar, params, newResult);
2957  return newResult;
2958  }
2959 }
2960 
2962  int NumPar = 1;
2963  double params[] = {mass};
2964 
2965  int i = CacheCheckReal(ip_ex_VV_phi_WW_enumunu_ATLAS13_cache, NumPar, params);
2966  if (i>=0) {
2967  return ( ip_ex_VV_phi_WW_enumunu_ATLAS13_cache[NumPar][i] );
2968  } else {
2969  double newResult = interpolate(ATLAS13_VV_phi_WW_enumunu,mass);
2970  CacheShiftReal(ip_ex_VV_phi_WW_enumunu_ATLAS13_cache, NumPar, params, newResult);
2971  return newResult;
2972  }
2973 }
2974 
2976  int NumPar = 1;
2977  double params[] = {mass};
2978 
2979  int i = CacheCheckReal(ip_ex_ggVV_phi_WW_lnulnu_CMS13_cache, NumPar, params);
2980  if (i>=0) {
2981  return ( ip_ex_ggVV_phi_WW_lnulnu_CMS13_cache[NumPar][i] );
2982  } else {
2983  double newResult = interpolate(CMS13_ggVV_phi_WW_lnulnu,mass);
2984  CacheShiftReal(ip_ex_ggVV_phi_WW_lnulnu_CMS13_cache, NumPar, params, newResult);
2985  return newResult;
2986  }
2987 }
2988 
2990  int NumPar = 1;
2991  double params[] = {mass};
2992 
2993  int i = CacheCheckReal(ip_ex_gg_phi_WW_lnuqq_ATLAS13_cache, NumPar, params);
2994  if (i>=0) {
2995  return ( ip_ex_gg_phi_WW_lnuqq_ATLAS13_cache[NumPar][i] );
2996  } else {
2997  double newResult = interpolate(ATLAS13_gg_phi_WW_lnuqq,mass);
2998  CacheShiftReal(ip_ex_gg_phi_WW_lnuqq_ATLAS13_cache, NumPar, params, newResult);
2999  return newResult;
3000  }
3001 }
3002 
3004  int NumPar = 1;
3005  double params[] = {mass};
3006 
3007  int i = CacheCheckReal(ip_ex_VV_phi_WW_lnuqq_ATLAS13_cache, NumPar, params);
3008  if (i>=0) {
3009  return ( ip_ex_VV_phi_WW_lnuqq_ATLAS13_cache[NumPar][i] );
3010  } else {
3011  double newResult = interpolate(ATLAS13_VV_phi_WW_lnuqq,mass);
3012  CacheShiftReal(ip_ex_VV_phi_WW_lnuqq_ATLAS13_cache, NumPar, params, newResult);
3013  return newResult;
3014  }
3015 }
3016 
3018  int NumPar = 1;
3019  double params[] = {mass};
3020 
3021  int i = CacheCheckReal(ip_ex_pp_phi_WW_lnuqq_CMS13_cache, NumPar, params);
3022  if (i>=0) {
3023  return ( ip_ex_pp_phi_WW_lnuqq_CMS13_cache[NumPar][i] );
3024  } else {
3025  double newResult = interpolate(CMS13_pp_phi_WW_lnuqq,mass);
3026  CacheShiftReal(ip_ex_pp_phi_WW_lnuqq_CMS13_cache, NumPar, params, newResult);
3027  return newResult;
3028  }
3029 }
3030 
3032  int NumPar = 1;
3033  double params[] = {mass};
3034 
3035  int i = CacheCheckReal(ip_ex_mu_pp_phi_VV_CMS8_cache, NumPar, params);
3036  if (i>=0) {
3037  return ( ip_ex_mu_pp_phi_VV_CMS8_cache[NumPar][i] );
3038  } else {
3039  double newResult = interpolate(CMS8_mu_pp_phi_VV,mass);
3040  CacheShiftReal(ip_ex_mu_pp_phi_VV_CMS8_cache, NumPar, params, newResult);
3041  return newResult;
3042  }
3043 }
3044 
3046  int NumPar = 1;
3047  double params[] = {mass};
3048 
3049  int i = CacheCheckReal(ip_ex_pp_phi_VV_qqqq_ATLAS13_cache, NumPar, params);
3050  if (i>=0) {
3051  return ( ip_ex_pp_phi_VV_qqqq_ATLAS13_cache[NumPar][i] );
3052  } else {
3053  double newResult = interpolate(ATLAS13_pp_phi_VV_qqqq,mass);
3054  CacheShiftReal(ip_ex_pp_phi_VV_qqqq_ATLAS13_cache, NumPar, params, newResult);
3055  return newResult;
3056  }
3057 }
3058 
3060  int NumPar = 1;
3061  double params[] = {mass};
3062 
3063  int i = CacheCheckReal(ip_ex_gg_phi_phi1phi1_ATLAS8_cache, NumPar, params);
3064  if (i>=0) {
3065  return(ip_ex_gg_phi_phi1phi1_ATLAS8_cache[NumPar][i] );
3066  } else {
3067  double newResult = interpolate (ATLAS8_gg_phi_phi1phi1,mass);
3068  CacheShiftReal(ip_ex_gg_phi_phi1phi1_ATLAS8_cache, NumPar, params, newResult);
3069  return newResult;
3070  }
3071 }
3072 
3074  int NumPar = 1;
3075  double params[] = {mass};
3076 
3077  int i = CacheCheckReal(ip_ex_pp_phi_phi1phi1_bbbb_CMS8_cache, NumPar, params);
3078  if (i>=0) {
3079  return(ip_ex_pp_phi_phi1phi1_bbbb_CMS8_cache[NumPar][i] );
3080  } else {
3081  double newResult = interpolate (CMS8_pp_phi_phi1phi1_bbbb,mass);
3082  CacheShiftReal(ip_ex_pp_phi_phi1phi1_bbbb_CMS8_cache, NumPar, params, newResult);
3083  return newResult;
3084  }
3085 }
3086 
3088  int NumPar = 1;
3089  double params[] = {mass};
3090 
3091  int i = CacheCheckReal(ip_ex_pp_phi_phi1phi1_bbgaga_CMS8_cache, NumPar, params);
3092  if (i>=0) {
3093  return(ip_ex_pp_phi_phi1phi1_bbgaga_CMS8_cache[NumPar][i] );
3094  } else {
3095  double newResult = interpolate (CMS8_pp_phi_phi1phi1_bbgaga,mass);
3096  CacheShiftReal(ip_ex_pp_phi_phi1phi1_bbgaga_CMS8_cache, NumPar, params, newResult);
3097  return newResult;
3098  }
3099 }
3100 
3102  int NumPar = 1;
3103  double params[] = {mass};
3104 
3105  int i = CacheCheckReal(ip_ex_gg_phi_phi1phi1_bbtautau_CMS8_cache, NumPar, params);
3106  if (i>=0) {
3107  return(ip_ex_gg_phi_phi1phi1_bbtautau_CMS8_cache[NumPar][i] );
3108  } else {
3109  double newResult = interpolate (CMS8_gg_phi_phi1phi1_bbtautau,mass);
3110  CacheShiftReal(ip_ex_gg_phi_phi1phi1_bbtautau_CMS8_cache, NumPar, params, newResult);
3111  return newResult;
3112  }
3113 }
3114 
3116  int NumPar = 1;
3117  double params[] = {mass};
3118 
3119  int i = CacheCheckReal(ip_ex_pp_phi_phi1phi1_bbtautau_CMS8_cache, NumPar, params);
3120  if (i>=0) {
3121  return(ip_ex_pp_phi_phi1phi1_bbtautau_CMS8_cache[NumPar][i] );
3122  } else {
3123  double newResult = interpolate (CMS8_pp_phi_phi1phi1_bbtautau,mass);
3124  CacheShiftReal(ip_ex_pp_phi_phi1phi1_bbtautau_CMS8_cache, NumPar, params, newResult);
3125  return newResult;
3126  }
3127 }
3128 
3130  int NumPar = 1;
3131  double params[] = {mass};
3132 
3133  int i = CacheCheckReal(ip_ex_pp_phi_phi1phi1_bbbb_ATLAS13_cache, NumPar, params);
3134  if (i>=0) {
3135  return(ip_ex_pp_phi_phi1phi1_bbbb_ATLAS13_cache[NumPar][i] );
3136  } else {
3137  double newResult = interpolate (ATLAS13_pp_phi_phi1phi1_bbbb,mass);
3138  CacheShiftReal(ip_ex_pp_phi_phi1phi1_bbbb_ATLAS13_cache, NumPar, params, newResult);
3139  return newResult;
3140  }
3141 }
3142 
3144  int NumPar = 1;
3145  double params[] = {mass};
3146 
3147  int i = CacheCheckReal(ip_ex_pp_phi_phi1phi1_bbbb_1_CMS13_cache, NumPar, params);
3148  if (i>=0) {
3149  return(ip_ex_pp_phi_phi1phi1_bbbb_1_CMS13_cache[NumPar][i] );
3150  } else {
3151  double newResult = interpolate (CMS13_pp_phi_phi1phi1_bbbb_1,mass);
3152  CacheShiftReal(ip_ex_pp_phi_phi1phi1_bbbb_1_CMS13_cache, NumPar, params, newResult);
3153  return newResult;
3154  }
3155 }
3156 
3158  int NumPar = 1;
3159  double params[] = {mass};
3160 
3161  int i = CacheCheckReal(ip_ex_pp_phi_phi1phi1_bbbb_2_CMS13_cache, NumPar, params);
3162  if (i>=0) {
3163  return(ip_ex_pp_phi_phi1phi1_bbbb_2_CMS13_cache[NumPar][i] );
3164  } else {
3165  double newResult = interpolate (CMS13_pp_phi_phi1phi1_bbbb_2,mass);
3166  CacheShiftReal(ip_ex_pp_phi_phi1phi1_bbbb_2_CMS13_cache, NumPar, params, newResult);
3167  return newResult;
3168  }
3169 }
3170 
3172  int NumPar = 1;
3173  double params[] = {mass};
3174 
3175  int i = CacheCheckReal(ip_ex_pp_phi_phi1phi1_bbgaga_ATLAS13_cache, NumPar, params);
3176  if (i>=0) {
3177  return(ip_ex_pp_phi_phi1phi1_bbgaga_ATLAS13_cache[NumPar][i] );
3178  } else {
3179  double newResult = interpolate (ATLAS13_pp_phi_phi1phi1_bbgaga,mass);
3180  CacheShiftReal(ip_ex_pp_phi_phi1phi1_bbgaga_ATLAS13_cache, NumPar, params, newResult);
3181  return newResult;
3182  }
3183 }
3184 
3186  int NumPar = 1;
3187  double params[] = {mass};
3188 
3189  int i = CacheCheckReal(ip_ex_pp_phi_phi1phi1_bbgaga_CMS13_cache, NumPar, params);
3190  if (i>=0) {
3191  return(ip_ex_pp_phi_phi1phi1_bbgaga_CMS13_cache[NumPar][i] );
3192  } else {
3193  double newResult = interpolate (CMS13_pp_phi_phi1phi1_bbgaga,mass);
3194  CacheShiftReal(ip_ex_pp_phi_phi1phi1_bbgaga_CMS13_cache, NumPar, params, newResult);
3195  return newResult;
3196  }
3197 }
3198 
3200  int NumPar = 1;
3201  double params[] = {mass};
3202 
3203  int i = CacheCheckReal(ip_ex_pp_phi_phi1phi1_bbtautau_ATLAS13_cache, NumPar, params);
3204  if (i>=0) {
3205  return(ip_ex_pp_phi_phi1phi1_bbtautau_ATLAS13_cache[NumPar][i] );
3206  } else {
3207  double newResult = interpolate (ATLAS13_pp_phi_phi1phi1_bbtautau,mass);
3208  CacheShiftReal(ip_ex_pp_phi_phi1phi1_bbtautau_ATLAS13_cache, NumPar, params, newResult);
3209  return newResult;
3210  }
3211 }
3212 
3214  int NumPar = 1;
3215  double params[] = {mass};
3216 
3217  int i = CacheCheckReal(ip_ex_pp_phi_phi1phi1_bbtautau_1_CMS13_cache, NumPar, params);
3218  if (i>=0) {
3219  return(ip_ex_pp_phi_phi1phi1_bbtautau_1_CMS13_cache[NumPar][i] );
3220  } else {
3221  double newResult = interpolate (CMS13_pp_phi_phi1phi1_bbtautau_1,mass);
3222  CacheShiftReal(ip_ex_pp_phi_phi1phi1_bbtautau_1_CMS13_cache, NumPar, params, newResult);
3223  return newResult;
3224  }
3225 }
3226 
3228  int NumPar = 1;
3229  double params[] = {mass};
3230 
3231  int i = CacheCheckReal(ip_ex_pp_phi_phi1phi1_bbtautau_2_CMS13_cache, NumPar, params);
3232  if (i>=0) {
3233  return(ip_ex_pp_phi_phi1phi1_bbtautau_2_CMS13_cache[NumPar][i] );
3234  } else {
3235  double newResult = interpolate (CMS13_pp_phi_phi1phi1_bbtautau_2,mass);
3236  CacheShiftReal(ip_ex_pp_phi_phi1phi1_bbtautau_2_CMS13_cache, NumPar, params, newResult);
3237  return newResult;
3238  }
3239 }
3240 
3242  int NumPar = 1;
3243  double params[] = {mass};
3244 
3245  int i = CacheCheckReal(ip_ex_pp_phi_phi1phi1_bbVV_CMS13_cache, NumPar, params);
3246  if (i>=0) {
3247  return(ip_ex_pp_phi_phi1phi1_bbVV_CMS13_cache[NumPar][i] );
3248  } else {
3249  double newResult = interpolate (CMS13_pp_phi_phi1phi1_bbVV,mass);
3250  CacheShiftReal(ip_ex_pp_phi_phi1phi1_bbVV_CMS13_cache, NumPar, params, newResult);
3251  return newResult;
3252  }
3253 }
3254 
3255 
3257  int NumPar = 1;
3258  double params[] = {mass};
3259 
3260  int i = CacheCheckReal(ip_ex_pp_phi_phi1phi1_bbWW_ATLAS13_cache, NumPar, params);
3261  if (i>=0) {
3262  return(ip_ex_pp_phi_phi1phi1_bbWW_ATLAS13_cache[NumPar][i] );
3263  } else {
3264  double newResult = interpolate (ATLAS13_pp_phi_phi1phi1_bbWW,mass);
3265  CacheShiftReal(ip_ex_pp_phi_phi1phi1_bbWW_ATLAS13_cache, NumPar, params, newResult);
3266  return newResult;
3267  }
3268 }
3269 
3271  int NumPar = 1;
3272  double params[] = {mass};
3273 
3274  int i = CacheCheckReal(ip_ex_gg_phi_phi1phi1_gagaWW_ATLAS13_cache, NumPar, params);
3275  if (i>=0) {
3276  return(ip_ex_gg_phi_phi1phi1_gagaWW_ATLAS13_cache[NumPar][i] );
3277  } else {
3278  double newResult = interpolate (ATLAS13_gg_phi_phi1phi1_gagaWW,mass);
3279  CacheShiftReal(ip_ex_gg_phi_phi1phi1_gagaWW_ATLAS13_cache, NumPar, params, newResult);
3280  return newResult;
3281  }
3282 }
3283 
3285  int NumPar = 1;
3286  double params[] = {mass};
3287 
3288  int i = CacheCheckReal(ip_ex_gg_phi_phi1Z_bbZ_ATLAS8_cache, NumPar, params);
3289  if (i>=0) {
3290  return ( ip_ex_gg_phi_phi1Z_bbZ_ATLAS8_cache[NumPar][i] );
3291  } else {
3292  double newResult = interpolate(ATLAS8_gg_phi_phi1Z_bbZ,mass);
3293  CacheShiftReal(ip_ex_gg_phi_phi1Z_bbZ_ATLAS8_cache, NumPar, params, newResult);
3294  return newResult;
3295  }
3296 }
3297 
3299  int NumPar = 1;
3300  double params[] = {mass};
3301 
3302  int i = CacheCheckReal(ip_ex_gg_phi_phi1Z_bbll_CMS8_cache, NumPar, params);
3303  if (i>=0) {
3304  return ( ip_ex_gg_phi_phi1Z_bbll_CMS8_cache[NumPar][i] );
3305  } else {
3306  double newResult = interpolate(CMS8_gg_phi_phi1Z_bbll,mass);
3307  CacheShiftReal(ip_ex_gg_phi_phi1Z_bbll_CMS8_cache, NumPar, params, newResult);
3308  return newResult;
3309  }
3310 }
3311 
3313  int NumPar = 1;
3314  double params[] = {mass};
3315 
3316  int i = CacheCheckReal(ip_ex_gg_phi_phi1Z_tautauZ_ATLAS8_cache, NumPar, params);
3317  if (i>=0) {
3318  return ( ip_ex_gg_phi_phi1Z_tautauZ_ATLAS8_cache[NumPar][i] );
3319  } else {
3320  double newResult = interpolate(ATLAS8_gg_phi_phi1Z_tautauZ,mass);
3321  CacheShiftReal(ip_ex_gg_phi_phi1Z_tautauZ_ATLAS8_cache, NumPar, params, newResult);
3322  return newResult;
3323  }
3324 }
3325 
3327  int NumPar = 1;
3328  double params[] = {mass};
3329 
3330  int i = CacheCheckReal(ip_ex_gg_phi_phi1Z_tautaull_CMS8_cache, NumPar, params);
3331  if (i>=0) {
3332  return ( ip_ex_gg_phi_phi1Z_tautaull_CMS8_cache[NumPar][i] );
3333  } else {
3334  double newResult = interpolate(CMS8_gg_phi_phi1Z_tautaull,mass);
3335  CacheShiftReal(ip_ex_gg_phi_phi1Z_tautaull_CMS8_cache, NumPar, params, newResult);
3336  return newResult;
3337  }
3338 }
3339 
3341  int NumPar = 1;
3342  double params[] = {mass};
3343 
3344  int i = CacheCheckReal(ip_ex_gg_phi_phi1Z_bbZ_ATLAS13_cache, NumPar, params);
3345  if (i>=0) {
3346  return ( ip_ex_gg_phi_phi1Z_bbZ_ATLAS13_cache[NumPar][i] );
3347  } else {
3348  double newResult = interpolate(ATLAS13_gg_phi_phi1Z_bbZ,mass);
3349  CacheShiftReal(ip_ex_gg_phi_phi1Z_bbZ_ATLAS13_cache, NumPar, params, newResult);
3350  return newResult;
3351  }
3352 }
3353 
3355  int NumPar = 1;
3356  double params[] = {mass};
3357 
3358  int i = CacheCheckReal(ip_ex_gg_phi_phi1Z_bbZ_1_CMS13_cache, NumPar, params);
3359  if (i>=0) {
3360  return ( ip_ex_gg_phi_phi1Z_bbZ_1_CMS13_cache[NumPar][i] );
3361  } else {
3362  double newResult = interpolate(CMS13_gg_phi_phi1Z_bbZ_1,mass);
3363  CacheShiftReal(ip_ex_gg_phi_phi1Z_bbZ_1_CMS13_cache, NumPar, params, newResult);
3364  return newResult;
3365  }
3366 }
3367 
3369  int NumPar = 1;
3370  double params[] = {mass};
3371 
3372  int i = CacheCheckReal(ip_ex_gg_phi_phi1Z_bbZ_2_CMS13_cache, NumPar, params);
3373  if (i>=0) {
3374  return ( ip_ex_gg_phi_phi1Z_bbZ_2_CMS13_cache[NumPar][i] );
3375  } else {
3376  double newResult = interpolate(CMS13_gg_phi_phi1Z_bbZ_2,mass);
3377  CacheShiftReal(ip_ex_gg_phi_phi1Z_bbZ_2_CMS13_cache, NumPar, params, newResult);
3378  return newResult;
3379  }
3380 }
3381 
3383  int NumPar = 1;
3384  double params[] = {mass};
3385 
3386  int i = CacheCheckReal(ip_ex_bb_phi_phi1Z_bbZ_ATLAS13_cache, NumPar, params);
3387  if (i>=0) {
3388  return ( ip_ex_bb_phi_phi1Z_bbZ_ATLAS13_cache[NumPar][i] );
3389  } else {
3390  double newResult = interpolate(ATLAS13_bb_phi_phi1Z_bbZ,mass);
3391  CacheShiftReal(ip_ex_bb_phi_phi1Z_bbZ_ATLAS13_cache, NumPar, params, newResult);
3392  return newResult;
3393  }
3394 }
3395 
3397  int NumPar = 1;
3398  double params[] = {mass};
3399 
3400  int i = CacheCheckReal(ip_ex_bb_phi_phi1Z_bbZ_1_CMS13_cache, NumPar, params);
3401  if (i>=0) {
3402  return ( ip_ex_bb_phi_phi1Z_bbZ_1_CMS13_cache[NumPar][i] );
3403  } else {
3404  double newResult = interpolate(CMS13_bb_phi_phi1Z_bbZ_1,mass);
3405  CacheShiftReal(ip_ex_bb_phi_phi1Z_bbZ_1_CMS13_cache, NumPar, params, newResult);
3406  return newResult;
3407  }
3408 }
3409 
3411  int NumPar = 1;
3412  double params[] = {mass};
3413 
3414  int i = CacheCheckReal(ip_ex_bb_phi_phi1Z_bbZ_2_CMS13_cache, NumPar, params);
3415  if (i>=0) {
3416  return ( ip_ex_bb_phi_phi1Z_bbZ_2_CMS13_cache[NumPar][i] );
3417  } else {
3418  double newResult = interpolate(CMS13_bb_phi_phi1Z_bbZ_2,mass);
3419  CacheShiftReal(ip_ex_bb_phi_phi1Z_bbZ_2_CMS13_cache, NumPar, params, newResult);
3420  return newResult;
3421  }
3422 }
3423 
3425  int NumPar = 2;
3426  double params[] = {mi, mj};
3427 
3428  int i = CacheCheckReal(ip_ex_pp_phii_phijZ_bbll_1_CMS8_cache, NumPar, params);
3429  if (i>=0) {
3430  return ( ip_ex_pp_phii_phijZ_bbll_1_CMS8_cache[NumPar][i] );
3431  } else {
3432  double newResult = interpolate2D(CMS8_pp_phii_phijZ_bbll_1, mi, mj);
3433  CacheShiftReal(ip_ex_pp_phii_phijZ_bbll_1_CMS8_cache, NumPar, params, newResult);
3434  return newResult;
3435  }
3436 }
3437 
3438 
3439 
3441  int NumPar = 2;
3442  double params[] = {mi, mj};
3443 
3444  int i = CacheCheckReal(ip_ex_pp_phii_phijZ_bbll_2_CMS8_cache, NumPar, params);
3445  if (i>=0) {
3446  return ( ip_ex_pp_phii_phijZ_bbll_2_CMS8_cache[NumPar][i] );
3447  } else {
3448  double newResult = interpolate2D(CMS8_pp_phii_phijZ_bbll_2,mi, mj);
3449  CacheShiftReal(ip_ex_pp_phii_phijZ_bbll_2_CMS8_cache, NumPar, params, newResult);
3450  return newResult;
3451  }
3452 }
3453 
3454 
3456  int NumPar = 2;
3457  double params[] = {mi, mj};
3458 
3459  int i = CacheCheckReal(ip_ex_pp_phii_phijZ_tautaull_1_CMS8_cache, NumPar, params);
3460  if (i>=0) {
3461  return ( ip_ex_pp_phii_phijZ_tautaull_1_CMS8_cache[NumPar][i] );
3462  } else {
3463  double newResult = interpolate2D(CMS8_pp_phii_phijZ_tautaull_1,mi, mj);
3464  CacheShiftReal(ip_ex_pp_phii_phijZ_tautaull_1_CMS8_cache, NumPar, params, newResult);
3465  return newResult;
3466  }
3467 }
3468 
3469 
3470 
3472  int NumPar = 2;
3473  double params[] = {mi, mj};
3474 
3475  int i = CacheCheckReal(ip_ex_pp_phii_phijZ_tautaull_2_CMS8_cache, NumPar, params);
3476  if (i>=0) {
3477  return ( ip_ex_pp_phii_phijZ_tautaull_2_CMS8_cache[NumPar][i] );
3478  } else {
3479  double newResult = interpolate2D(CMS8_pp_phii_phijZ_tautaull_2, mi, mj);
3480  CacheShiftReal(ip_ex_pp_phii_phijZ_tautaull_2_CMS8_cache, NumPar, params, newResult);
3481  return newResult;
3482  }
3483 }
3484 
3485 
3486 
3488  int NumPar = 2;
3489  double params[] = {mj, mi};
3490 
3491  int i = CacheCheckReal(ip_ex_gg_phii_phijZ_bbZ_ATLAS13_cache, NumPar, params);
3492  if (i>=0) {
3493  return ( ip_ex_gg_phii_phijZ_bbZ_ATLAS13_cache[NumPar][i] );
3494  } else {
3495  double newResult = interpolate2D(ATLAS13_gg_phii_phijZ_bbZ, mj, mi);
3496  CacheShiftReal(ip_ex_gg_phii_phijZ_bbZ_ATLAS13_cache, NumPar, params, newResult);
3497  return newResult;
3498  }
3499 }
3500 
3501 
3503  int NumPar = 2;
3504  double params[] = {mj, mi};
3505 
3506  int i = CacheCheckReal(ip_ex_bb_phii_phijZ_bbZ_ATLAS13_cache, NumPar, params);
3507  if (i>=0) {
3508  return ( ip_ex_bb_phii_phijZ_bbZ_ATLAS13_cache[NumPar][i] );
3509  } else {
3510  double newResult = interpolate2D(ATLAS13_bb_phii_phijZ_bbZ, mj, mi);
3511  CacheShiftReal(ip_ex_bb_phii_phijZ_bbZ_ATLAS13_cache, NumPar, params, newResult);
3512  return newResult;
3513  }
3514 }
3515 
3516 
3517 //double GeneralTHDMcache::ip_ex_pp_phi_gaga_ATLAS8(double mass){
3518 // int NumPar = 1;
3519 // double params[] = {mass};
3520 //
3521 // int i = CacheCheckReal(ip_ex_pp_phi_gaga_ATLAS8_cache, NumPar, params);
3522 // if (i>=0) {
3523 // return ( ip_ex_pp_phi_gaga_ATLAS8_cache[NumPar][i] );
3524 // } else {
3525 // double newResult = interpolate(ATLAS8_pp_phi_gaga,mass);
3526 // CacheShiftReal(ip_ex_pp_phi_gaga_ATLAS8_cache, NumPar, params, newResult);
3527 // return newResult;
3528 // }
3529 //}
3530 //
3531 //
3532 //
3533 //double GeneralTHDMcache::ip_ex_pp_phi_gaga_ATLAS8_e(double mass){
3534 // int NumPar = 1;
3535 // double params[] = {mass};
3536 //
3537 // int i = CacheCheckReal(ip_ex_pp_phi_gaga_ATLAS8_cache_e, NumPar, params);
3538 // if (i>=0) {
3539 // return ( ip_ex_pp_phi_gaga_ATLAS8_cache_e[NumPar][i] );
3540 // } else {
3541 // double newResult = interpolate(ATLAS8_pp_phi_gaga_e,mass);
3542 // CacheShiftReal(ip_ex_pp_phi_gaga_ATLAS8_cache_e, NumPar, params, newResult);
3543 // return newResult;
3544 // }
3545 //}
3546 //
3547 //
3548 //double GeneralTHDMcache::ip_ex_pp_phi_Zga_llga_ATLAS8(double mass){
3549 // int NumPar = 1;
3550 // double params[] = {mass};
3551 //
3552 // int i = CacheCheckReal(ip_ex_pp_phi_Zga_llga_ATLAS8_cache, NumPar, params);
3553 // if (i>=0) {
3554 // return ( ip_ex_pp_phi_Zga_llga_ATLAS8_cache[NumPar][i] );
3555 // } else {
3556 // double newResult = interpolate (ATLAS8_pp_phi_Zga_llga,mass);
3557 // CacheShiftReal(ip_ex_pp_phi_Zga_llga_ATLAS8_cache, NumPar, params, newResult);
3558 // return newResult;
3559 // }
3560 //}
3561 //
3562 //
3563 //
3564 //double GeneralTHDMcache::ip_ex_pp_phi_Zga_llga_ATLAS8_e(double mass){
3565 // int NumPar = 1;
3566 // double params[] = {mass};
3567 //
3568 // int i = CacheCheckReal(ip_ex_pp_phi_Zga_llga_ATLAS8_cache_e, NumPar, params);
3569 // if (i>=0) {
3570 // return ( ip_ex_pp_phi_Zga_llga_ATLAS8_cache_e[NumPar][i] );
3571 // } else {
3572 // double newResult = interpolate (ATLAS8_pp_phi_Zga_llga_e,mass);
3573 // CacheShiftReal(ip_ex_pp_phi_Zga_llga_ATLAS8_cache_e, NumPar, params, newResult);
3574 // return newResult;
3575 // }
3576 //}
3577 //
3578 //
3579 //
3580 //double GeneralTHDMcache::ip_ex_gg_phi_tautau_ATLAS8(double mass){
3581 // int NumPar = 1;
3582 // double params[] = {mass};
3583 //
3584 // int i = CacheCheckReal(ip_ex_gg_phi_tautau_ATLAS8_cache, NumPar, params);
3585 // if (i>=0) {
3586 // return ( ip_ex_gg_phi_tautau_ATLAS8_cache[NumPar][i] );
3587 // } else {
3588 // double newResult = interpolate(ATLAS8_gg_phi_tautau,mass);
3589 // CacheShiftReal(ip_ex_gg_phi_tautau_ATLAS8_cache, NumPar, params, newResult);
3590 // return newResult;
3591 // }
3592 //}
3593 //
3594 //
3595 //
3596 //double GeneralTHDMcache::ip_ex_gg_phi_tautau_ATLAS8_e(double mass){
3597 // int NumPar = 1;
3598 // double params[] = {mass};
3599 //
3600 // int i = CacheCheckReal(ip_ex_gg_phi_tautau_ATLAS8_cache_e, NumPar, params);
3601 // if (i>=0) {
3602 // return ( ip_ex_gg_phi_tautau_ATLAS8_cache_e[NumPar][i] );
3603 // } else {
3604 // double newResult = interpolate(ATLAS8_gg_phi_tautau_e,mass);
3605 // CacheShiftReal(ip_ex_gg_phi_tautau_ATLAS8_cache_e, NumPar, params, newResult);
3606 // return newResult;
3607 // }
3608 //}
3609 //
3610 //
3611 //
3612 //double GeneralTHDMcache::ip_ex_bb_phi_tautau_ATLAS8(double mass){
3613 // int NumPar = 1;
3614 // double params[] = {mass};
3615 //
3616 // int i = CacheCheckReal(ip_ex_bb_phi_tautau_ATLAS8_cache, NumPar, params);
3617 // if (i>=0) {
3618 // return ( ip_ex_bb_phi_tautau_ATLAS8_cache[NumPar][i] );
3619 // } else {
3620 // double newResult = interpolate(ATLAS8_bb_phi_tautau,mass);
3621 // CacheShiftReal(ip_ex_bb_phi_tautau_ATLAS8_cache, NumPar, params, newResult);
3622 // return newResult;
3623 // }
3624 //}
3625 //
3626 //
3627 //
3628 //double GeneralTHDMcache::ip_ex_bb_phi_tautau_ATLAS8_e(double mass){
3629 // int NumPar = 1;
3630 // double params[] = {mass};
3631 //
3632 // int i = CacheCheckReal(ip_ex_bb_phi_tautau_ATLAS8_cache_e, NumPar, params);
3633 // if (i>=0) {
3634 // return ( ip_ex_bb_phi_tautau_ATLAS8_cache_e[NumPar][i] );
3635 // } else {
3636 // double newResult = interpolate(ATLAS8_bb_phi_tautau_e,mass);
3637 // CacheShiftReal(ip_ex_bb_phi_tautau_ATLAS8_cache_e, NumPar, params, newResult);
3638 // return newResult;
3639 // }
3640 //}
3641 //
3642 //
3643 //
3644 //double GeneralTHDMcache::ip_ex_gg_A_hZ_tautauZ_ATLAS8(double mass){
3645 // int NumPar = 1;
3646 // double params[] = {mass};
3647 //
3648 // int i = CacheCheckReal(ip_ex_gg_A_hZ_tautauZ_ATLAS8_cache, NumPar, params);
3649 // if (i>=0) {
3650 // return ( ip_ex_gg_A_hZ_tautauZ_ATLAS8_cache[NumPar][i] );
3651 // } else {
3652 // double newResult = interpolate(ATLAS8_gg_A_hZ_tautauZ,mass);
3653 // CacheShiftReal(ip_ex_gg_A_hZ_tautauZ_ATLAS8_cache, NumPar, params, newResult);
3654 // return newResult;
3655 // }
3656 //}
3657 //
3658 //
3659 //
3660 //double GeneralTHDMcache::ip_ex_gg_A_hZ_tautauZ_ATLAS8_e(double mass){
3661 // int NumPar = 1;
3662 // double params[] = {mass};
3663 //
3664 // int i = CacheCheckReal(ip_ex_gg_A_hZ_tautauZ_ATLAS8_cache_e, NumPar, params);
3665 // if (i>=0) {
3666 // return ( ip_ex_gg_A_hZ_tautauZ_ATLAS8_cache_e[NumPar][i] );
3667 // } else {
3668 // double newResult = interpolate(ATLAS8_gg_A_hZ_tautauZ_e,mass);
3669 // CacheShiftReal(ip_ex_gg_A_hZ_tautauZ_ATLAS8_cache_e, NumPar, params, newResult);
3670 // return newResult;
3671 // }
3672 //}
3673 //
3674 //
3675 //
3676 //double GeneralTHDMcache::ip_ex_gg_A_hZ_bbZ_ATLAS8(double mass){
3677 // int NumPar = 1;
3678 // double params[] = {mass};
3679 //
3680 // int i = CacheCheckReal(ip_ex_gg_A_hZ_bbZ_ATLAS8_cache, NumPar, params);
3681 // if (i>=0) {
3682 // return ( ip_ex_gg_A_hZ_bbZ_ATLAS8_cache[NumPar][i] );
3683 // } else {
3684 // double newResult = interpolate(ATLAS8_gg_A_hZ_bbZ,mass);
3685 // CacheShiftReal(ip_ex_gg_A_hZ_bbZ_ATLAS8_cache, NumPar, params, newResult);
3686 // return newResult;
3687 // }
3688 //}
3689 //
3690 //
3691 //
3692 //
3693 //
3694 //double GeneralTHDMcache::ip_ex_gg_A_hZ_bbZ_ATLAS8_e(double mass){
3695 // int NumPar = 1;
3696 // double params[] = {mass};
3697 //
3698 // int i = CacheCheckReal(ip_ex_gg_A_hZ_bbZ_ATLAS8_cache_e, NumPar, params);
3699 // if (i>=0) {
3700 // return ( ip_ex_gg_A_hZ_bbZ_ATLAS8_cache_e[NumPar][i] );
3701 // } else {
3702 // double newResult = interpolate(ATLAS8_gg_A_hZ_bbZ_e,mass);
3703 // CacheShiftReal(ip_ex_gg_A_hZ_bbZ_ATLAS8_cache_e, NumPar, params, newResult);
3704 // return newResult;
3705 // }
3706 //}
3707 //
3708 //
3709 //
3710 //double GeneralTHDMcache::ip_ex_gg_phi_tt_ATLAS8(double mass){
3711 // int NumPar = 1;
3712 // double params[] = {mass};
3713 //
3714 // int i = CacheCheckReal(ip_ex_gg_phi_tt_ATLAS8_cache, NumPar, params);
3715 // if (i>=0) {
3716 // return ( ip_ex_gg_phi_tt_ATLAS8_cache[NumPar][i] );
3717 // } else {
3718 // double newResult = interpolate (ATLAS8_gg_phi_tt,mass);
3719 // CacheShiftReal(ip_ex_gg_phi_tt_ATLAS8_cache, NumPar, params, newResult);
3720 // return newResult;
3721 // }
3722 //}
3723 //
3724 //
3725 //
3726 //double GeneralTHDMcache::ip_ex_gg_phi_tt_ATLAS8_e(double mass){
3727 // int NumPar = 1;
3728 // double params[] = {mass};
3729 //
3730 // int i = CacheCheckReal(ip_ex_gg_phi_tt_ATLAS8_cache_e, NumPar, params);
3731 // if (i>=0) {
3732 // return ( ip_ex_gg_phi_tt_ATLAS8_cache_e[NumPar][i] );
3733 // } else {
3734 // double newResult = interpolate (ATLAS8_gg_phi_tt_e,mass);
3735 // CacheShiftReal(ip_ex_gg_phi_tt_ATLAS8_cache_e, NumPar, params, newResult);
3736 // return newResult;
3737 // }
3738 //}
3739 //
3740 //
3741 //
3742 //double GeneralTHDMcache::ip_ex_gg_H_WW_ATLAS8(double mass){
3743 // int NumPar = 1;
3744 // double params[] = {mass};
3745 //
3746 // int i = CacheCheckReal(ip_ex_gg_H_WW_ATLAS8_cache, NumPar, params);
3747 // if (i>=0) {
3748 // return ( ip_ex_gg_H_WW_ATLAS8_cache[NumPar][i] );
3749 // } else {
3750 // double newResult = interpolate (ATLAS8_gg_H_WW,mass);
3751 // CacheShiftReal(ip_ex_gg_H_WW_ATLAS8_cache, NumPar, params, newResult);
3752 // return newResult;
3753 // }
3754 //}
3755 //
3756 //
3757 //
3758 //double GeneralTHDMcache::ip_ex_gg_H_WW_ATLAS8_e(double mass){
3759 // int NumPar = 1;
3760 // double params[] = {mass};
3761 //
3762 // int i = CacheCheckReal(ip_ex_gg_H_WW_ATLAS8_cache_e, NumPar, params);
3763 // if (i>=0) {
3764 // return ( ip_ex_gg_H_WW_ATLAS8_cache_e[NumPar][i] );
3765 // } else {
3766 // double newResult = interpolate (ATLAS8_gg_H_WW_e,mass);
3767 // CacheShiftReal(ip_ex_gg_H_WW_ATLAS8_cache_e, NumPar, params, newResult);
3768 // return newResult;
3769 // }
3770 //}
3771 //
3772 //
3773 //
3774 //double GeneralTHDMcache::ip_ex_VBF_H_WW_ATLAS8(double mass){
3775 // int NumPar = 1;
3776 // double params[] = {mass};
3777 //
3778 // int i = CacheCheckReal(ip_ex_VBF_H_WW_ATLAS8_cache, NumPar, params);
3779 // if (i>=0) {
3780 // return ( ip_ex_VBF_H_WW_ATLAS8_cache[NumPar][i] );
3781 // } else {
3782 // double newResult = interpolate (ATLAS8_VBF_H_WW,mass);
3783 // CacheShiftReal(ip_ex_VBF_H_WW_ATLAS8_cache, NumPar, params, newResult);
3784 // return newResult;
3785 // }
3786 //}
3787 //
3788 //
3789 //
3790 //double GeneralTHDMcache::ip_ex_VBF_H_WW_ATLAS8_e(double mass){
3791 // int NumPar = 1;
3792 // double params[] = {mass};
3793 //
3794 // int i = CacheCheckReal(ip_ex_VBF_H_WW_ATLAS8_cache_e, NumPar, params);
3795 // if (i>=0) {
3796 // return ( ip_ex_VBF_H_WW_ATLAS8_cache_e[NumPar][i] );
3797 // } else {
3798 // double newResult = interpolate (ATLAS8_VBF_H_WW_e,mass);
3799 // CacheShiftReal(ip_ex_VBF_H_WW_ATLAS8_cache_e, NumPar, params, newResult);
3800 // return newResult;
3801 // }
3802 //}
3803 //
3804 //
3805 //
3806 //double GeneralTHDMcache::ip_ex_gg_H_ZZ_ATLAS8(double mass){
3807 // int NumPar = 1;
3808 // double params[] = {mass};
3809 //
3810 // int i = CacheCheckReal(ip_ex_gg_H_ZZ_ATLAS8_cache, NumPar, params);
3811 // if (i>=0) {
3812 // return ( ip_ex_gg_H_ZZ_ATLAS8_cache[NumPar][i] );
3813 // } else {
3814 // double newResult = interpolate (ATLAS8_gg_H_ZZ,mass);
3815 // CacheShiftReal(ip_ex_gg_H_ZZ_ATLAS8_cache, NumPar, params, newResult);
3816 // return newResult;
3817 // }
3818 //}
3819 //
3820 //
3821 //
3822 //double GeneralTHDMcache::ip_ex_gg_H_ZZ_ATLAS8_e(double mass){
3823 // int NumPar = 1;
3824 // double params[] = {mass};
3825 //
3826 // int i = CacheCheckReal(ip_ex_gg_H_ZZ_ATLAS8_cache_e, NumPar, params);
3827 // if (i>=0) {
3828 // return ( ip_ex_gg_H_ZZ_ATLAS8_cache_e[NumPar][i] );
3829 // } else {
3830 // double newResult = interpolate (ATLAS8_gg_H_ZZ_e,mass);
3831 // CacheShiftReal(ip_ex_gg_H_ZZ_ATLAS8_cache_e, NumPar, params, newResult);
3832 // return newResult;
3833 // }
3834 //}
3835 //
3836 //
3837 //
3838 //double GeneralTHDMcache::ip_ex_VBF_H_ZZ_ATLAS8(double mass){
3839 // int NumPar = 1;
3840 // double params[] = {mass};
3841 //
3842 // int i = CacheCheckReal(ip_ex_VBF_H_ZZ_ATLAS8_cache, NumPar, params);
3843 // if (i>=0) {
3844 // return ( ip_ex_VBF_H_ZZ_ATLAS8_cache[NumPar][i] );
3845 // } else {
3846 // double newResult = interpolate (ATLAS8_VBF_H_ZZ,mass);
3847 // CacheShiftReal(ip_ex_VBF_H_ZZ_ATLAS8_cache, NumPar, params, newResult);
3848 // return newResult;
3849 // }
3850 //}
3851 //
3852 //
3853 //
3854 //double GeneralTHDMcache::ip_ex_VBF_H_ZZ_ATLAS8_e(double mass){
3855 // int NumPar = 1;
3856 // double params[] = {mass};
3857 //
3858 // int i = CacheCheckReal(ip_ex_VBF_H_ZZ_ATLAS8_cache_e, NumPar, params);
3859 // if (i>=0) {
3860 // return ( ip_ex_VBF_H_ZZ_ATLAS8_cache_e[NumPar][i] );
3861 // } else {
3862 // double newResult = interpolate (ATLAS8_VBF_H_ZZ_e,mass);
3863 // CacheShiftReal(ip_ex_VBF_H_ZZ_ATLAS8_cache_e, NumPar, params, newResult);
3864 // return newResult;
3865 // }
3866 //}
3867 //
3868 //
3869 //
3870 //double GeneralTHDMcache::ip_ex_gg_H_hh_ATLAS8(double mass){
3871 // int NumPar = 1;
3872 // double params[] = {mass};
3873 //
3874 // int i = CacheCheckReal(ip_ex_gg_H_hh_ATLAS8_cache, NumPar, params);
3875 // if (i>=0) {
3876 // return ( ip_ex_gg_H_hh_ATLAS8_cache[NumPar][i] );
3877 // } else {
3878 // double newResult = interpolate (ATLAS8_gg_H_hh,mass);
3879 // CacheShiftReal(ip_ex_gg_H_hh_ATLAS8_cache, NumPar, params, newResult);
3880 // return newResult;
3881 // }
3882 //}
3883 //
3884 //
3885 //
3886 //double GeneralTHDMcache::ip_ex_gg_H_hh_ATLAS8_e(double mass){
3887 // int NumPar = 1;
3888 // double params[] = {mass};
3889 //
3890 // int i = CacheCheckReal(ip_ex_gg_H_hh_ATLAS8_cache_e, NumPar, params);
3891 // if (i>=0) {
3892 // return ( ip_ex_gg_H_hh_ATLAS8_cache_e[NumPar][i] );
3893 // } else {
3894 // double newResult = interpolate (ATLAS8_gg_H_hh_e,mass);
3895 // CacheShiftReal(ip_ex_gg_H_hh_ATLAS8_cache_e, NumPar, params, newResult);
3896 // return newResult;
3897 // }
3898 //}
3899 //
3900 //
3901 //
3902 //double GeneralTHDMcache::ip_ex_mu_pp_H_VV_CMS8(double mass){
3903 // int NumPar = 1;
3904 // double params[] = {mass};
3905 //
3906 // int i = CacheCheckReal(ip_ex_mu_pp_H_VV_CMS8_cache, NumPar, params);
3907 // if (i>=0) {
3908 // return ( ip_ex_mu_pp_H_VV_CMS8_cache[NumPar][i] );
3909 // } else {
3910 // double newResult = interpolate(CMS8_mu_pp_H_VV,mass);
3911 // CacheShiftReal(ip_ex_mu_pp_H_VV_CMS8_cache, NumPar, params, newResult);
3912 // return newResult;
3913 // }
3914 //}
3915 //
3916 //
3917 //
3918 //double GeneralTHDMcache::ip_ex_mu_pp_H_VV_CMS8_e(double mass){
3919 // int NumPar = 1;
3920 // double params[] = {mass};
3921 //
3922 // int i = CacheCheckReal(ip_ex_mu_pp_H_VV_CMS8_cache_e, NumPar, params);
3923 // if (i>=0) {
3924 // return ( ip_ex_mu_pp_H_VV_CMS8_cache_e[NumPar][i] );
3925 // } else {
3926 // double newResult = interpolate(CMS8_mu_pp_H_VV_e,mass);
3927 // CacheShiftReal(ip_ex_mu_pp_H_VV_CMS8_cache_e, NumPar, params, newResult);
3928 // return newResult;
3929 // }
3930 //}
3931 //
3932 //
3933 //
3934 //double GeneralTHDMcache::ip_ex_gg_A_hZ_bbll_CMS8(double mass){
3935 // int NumPar = 1;
3936 // double params[] = {mass};
3937 //
3938 // int i = CacheCheckReal(ip_ex_gg_A_hZ_bbll_CMS8_cache, NumPar, params);
3939 // if (i>=0) {
3940 // return ( ip_ex_gg_A_hZ_bbll_CMS8_cache[NumPar][i] );
3941 // } else {
3942 // double newResult = interpolate(CMS8_gg_A_hZ_bbll,mass);
3943 // CacheShiftReal(ip_ex_gg_A_hZ_bbll_CMS8_cache, NumPar, params, newResult);
3944 // return newResult;
3945 // }
3946 //}
3947 //
3948 //
3949 //
3950 //double GeneralTHDMcache::ip_ex_gg_A_hZ_bbll_CMS8_e(double mass){
3951 // int NumPar = 1;
3952 // double params[] = {mass};
3953 //
3954 // int i = CacheCheckReal(ip_ex_gg_A_hZ_bbll_CMS8_cache_e, NumPar, params);
3955 // if (i>=0) {
3956 // return ( ip_ex_gg_A_hZ_bbll_CMS8_cache_e[NumPar][i] );
3957 // } else {
3958 // double newResult = interpolate(CMS8_gg_A_hZ_bbll_e,mass);
3959 // CacheShiftReal(ip_ex_gg_A_hZ_bbll_CMS8_cache_e, NumPar, params, newResult);
3960 // return newResult;
3961 // }
3962 //}
3963 //
3964 //
3965 //
3966 //double GeneralTHDMcache::ip_ex_pp_H_hh_CMS8(double mass){
3967 // int NumPar = 1;
3968 // double params[] = {mass};
3969 //
3970 // int i = CacheCheckReal(ip_ex_pp_H_hh_CMS8_cache, NumPar, params);
3971 // if (i>=0) {
3972 // return ( ip_ex_pp_H_hh_CMS8_cache[NumPar][i] );
3973 // } else {
3974 // double newResult = interpolate(CMS8_pp_H_hh,mass);
3975 // CacheShiftReal(ip_ex_pp_H_hh_CMS8_cache, NumPar, params, newResult);
3976 // return newResult;
3977 // }
3978 //}
3979 //
3980 //
3981 //
3982 //double GeneralTHDMcache::ip_ex_pp_H_hh_CMS8_e(double mass){
3983 // int NumPar = 1;
3984 // double params[] = {mass};
3985 //
3986 // int i = CacheCheckReal(ip_ex_pp_H_hh_CMS8_cache_e, NumPar, params);
3987 // if (i>=0) {
3988 // return ( ip_ex_pp_H_hh_CMS8_cache_e[NumPar][i] );
3989 // } else {
3990 // double newResult = interpolate(CMS8_pp_H_hh_e,mass);
3991 // CacheShiftReal(ip_ex_pp_H_hh_CMS8_cache_e, NumPar, params, newResult);
3992 // return newResult;
3993 // }
3994 //}
3995 //
3996 //
3997 //
3998 //double GeneralTHDMcache::ip_ex_pp_phi_hh_gagabb_CMS8(double mass){
3999 // int NumPar = 1;
4000 // double params[] = {mass};
4001 //
4002 // int i = CacheCheckReal(ip_ex_pp_phi_hh_gagabb_CMS8_cache, NumPar, params);
4003 // if (i>=0) {
4004 // return ( ip_ex_pp_phi_hh_gagabb_CMS8_cache[NumPar][i] );
4005 // } else {
4006 // double newResult = interpolate(CMS8_pp_H_hh_gagabb,mass);
4007 // CacheShiftReal(ip_ex_pp_phi_hh_gagabb_CMS8_cache, NumPar, params, newResult);
4008 // return newResult;
4009 // }
4010 //}
4011 //
4012 //
4013 //
4014 //double GeneralTHDMcache::ip_ex_pp_phi_hh_gagabb_CMS8_e(double mass){
4015 // int NumPar = 1;
4016 // double params[] = {mass};
4017 //
4018 // int i = CacheCheckReal(ip_ex_pp_phi_hh_gagabb_CMS8_cache_e, NumPar, params);
4019 // if (i>=0) {
4020 // return ( ip_ex_pp_phi_hh_gagabb_CMS8_cache_e[NumPar][i] );
4021 // } else {
4022 // double newResult = interpolate(CMS8_pp_H_hh_gagabb_e,mass);
4023 // CacheShiftReal(ip_ex_pp_phi_hh_gagabb_CMS8_cache_e, NumPar, params, newResult);
4024 // return newResult;
4025 // }
4026 //}
4027 //
4028 //
4029 //
4030 //double GeneralTHDMcache::ip_ex_pp_phi_hh_bbbb_CMS8(double mass){
4031 // int NumPar = 1;
4032 // double params[] = {mass};
4033 //
4034 // int i = CacheCheckReal(ip_ex_pp_phi_hh_bbbb_CMS8_cache, NumPar, params);
4035 // if (i>=0) {
4036 // return ( ip_ex_pp_phi_hh_bbbb_CMS8_cache[NumPar][i] );
4037 // } else {
4038 // double newResult = interpolate(CMS8_pp_H_hh_bbbb,mass);
4039 // CacheShiftReal(ip_ex_pp_phi_hh_bbbb_CMS8_cache, NumPar, params, newResult);
4040 // return newResult;
4041 // }
4042 //}
4043 //
4044 //
4045 //
4046 //double GeneralTHDMcache::ip_ex_pp_phi_hh_bbbb_CMS8_e(double mass){
4047 // int NumPar = 1;
4048 // double params[] = {mass};
4049 //
4050 // int i = CacheCheckReal(ip_ex_pp_phi_hh_bbbb_CMS8_cache_e, NumPar, params);
4051 // if (i>=0) {
4052 // return ( ip_ex_pp_phi_hh_bbbb_CMS8_cache_e[NumPar][i] );
4053 // } else {
4054 // double newResult = interpolate(CMS8_pp_H_hh_bbbb_e,mass);
4055 // CacheShiftReal(ip_ex_pp_phi_hh_bbbb_CMS8_cache_e, NumPar, params, newResult);
4056 // return newResult;
4057 // }
4058 //}
4059 //
4060 //
4061 //
4062 //double GeneralTHDMcache::ip_ex_bb_phi_bb_CMS8(double mass){
4063 // int NumPar = 1;
4064 // double params[] = {mass};
4065 //
4066 // int i = CacheCheckReal(ip_ex_bb_phi_bb_CMS8_cache, NumPar, params);
4067 // if (i>=0) {
4068 // return ( ip_ex_bb_phi_bb_CMS8_cache[NumPar][i] );
4069 // } else {
4070 // double newResult = interpolate (CMS8_bb_phi_bb,mass);
4071 // CacheShiftReal(ip_ex_bb_phi_bb_CMS8_cache, NumPar, params, newResult);
4072 // return newResult;
4073 // }
4074 //}
4075 //
4076 //
4077 //
4078 //double GeneralTHDMcache::ip_ex_bb_phi_bb_CMS8_e(double mass){
4079 // int NumPar = 1;
4080 // double params[] = {mass};
4081 //
4082 // int i = CacheCheckReal(ip_ex_bb_phi_bb_CMS8_cache_e, NumPar, params);
4083 // if (i>=0) {
4084 // return ( ip_ex_bb_phi_bb_CMS8_cache_e[NumPar][i] );
4085 // } else {
4086 // double newResult = interpolate (CMS8_bb_phi_bb_e,mass);
4087 // CacheShiftReal(ip_ex_bb_phi_bb_CMS8_cache_e, NumPar, params, newResult);
4088 // return newResult;
4089 // }
4090 //}
4091 //
4092 //
4093 //
4094 //double GeneralTHDMcache::ip_ex_gg_phi_tautau_CMS8(double mass){
4095 // int NumPar = 1;
4096 // double params[] = {mass};
4097 //
4098 // int i = CacheCheckReal(ip_ex_gg_phi_tautau_CMS8_cache, NumPar, params);
4099 // if (i>=0) {
4100 // return ( ip_ex_gg_phi_tautau_CMS8_cache[NumPar][i] );
4101 // } else {
4102 // double newResult = interpolate (CMS8_gg_phi_tautau,mass);
4103 // CacheShiftReal(ip_ex_gg_phi_tautau_CMS8_cache, NumPar, params, newResult);
4104 // return newResult;
4105 // }
4106 //}
4107 //
4108 //
4109 //
4110 //double GeneralTHDMcache::ip_ex_gg_phi_tautau_CMS8_e(double mass){
4111 // int NumPar = 1;
4112 // double params[] = {mass};
4113 //
4114 // int i = CacheCheckReal(ip_ex_gg_phi_tautau_CMS8_cache_e, NumPar, params);
4115 // if (i>=0) {
4116 // return ( ip_ex_gg_phi_tautau_CMS8_cache_e[NumPar][i] );
4117 // } else {
4118 // double newResult = interpolate (CMS8_gg_phi_tautau_e,mass);
4119 // CacheShiftReal(ip_ex_gg_phi_tautau_CMS8_cache_e, NumPar, params, newResult);
4120 // return newResult;
4121 // }
4122 //}
4123 //
4124 //
4125 //
4126 //double GeneralTHDMcache::ip_ex_bb_phi_tautau_CMS8(double mass){
4127 // int NumPar = 1;
4128 // double params[] = {mass};
4129 //
4130 // int i = CacheCheckReal(ip_ex_bb_phi_tautau_CMS8_cache, NumPar, params);
4131 // if (i>=0) {
4132 // return ( ip_ex_bb_phi_tautau_CMS8_cache[NumPar][i] );
4133 // } else {
4134 // double newResult = interpolate (CMS8_bb_phi_tautau,mass);
4135 // CacheShiftReal(ip_ex_bb_phi_tautau_CMS8_cache, NumPar, params, newResult);
4136 // return newResult;
4137 // }
4138 //}
4139 //
4140 //
4141 //
4142 //double GeneralTHDMcache::ip_ex_bb_phi_tautau_CMS8_e(double mass){
4143 // int NumPar = 1;
4144 // double params[] = {mass};
4145 //
4146 // int i = CacheCheckReal(ip_ex_bb_phi_tautau_CMS8_cache_e, NumPar, params);
4147 // if (i>=0) {
4148 // return ( ip_ex_bb_phi_tautau_CMS8_cache_e[NumPar][i] );
4149 // } else {
4150 // double newResult = interpolate (CMS8_bb_phi_tautau_e,mass);
4151 // CacheShiftReal(ip_ex_bb_phi_tautau_CMS8_cache_e, NumPar, params, newResult);
4152 // return newResult;
4153 // }
4154 //}
4155 //
4156 //
4157 //
4158 //double GeneralTHDMcache::ip_ex_gg_phi_gaga_CMS8(double mass){
4159 // int NumPar = 1;
4160 // double params[] = {mass};
4161 //
4162 // int i = CacheCheckReal(ip_ex_gg_phi_gaga_CMS8_cache, NumPar, params);
4163 // if (i>=0) {
4164 // return ( ip_ex_gg_phi_gaga_CMS8_cache[NumPar][i] );
4165 // } else {
4166 // double newResult = interpolate (CMS8_gg_phi_gaga,mass);
4167 // CacheShiftReal(ip_ex_gg_phi_gaga_CMS8_cache, NumPar, params, newResult);
4168 // return newResult;
4169 // }
4170 //}
4171 //
4172 //
4173 //
4174 //double GeneralTHDMcache::ip_ex_gg_phi_gaga_CMS8_e(double mass){
4175 // int NumPar = 1;
4176 // double params[] = {mass};
4177 //
4178 // int i = CacheCheckReal(ip_ex_gg_phi_gaga_CMS8_cache_e, NumPar, params);
4179 // if (i>=0) {
4180 // return ( ip_ex_gg_phi_gaga_CMS8_cache_e[NumPar][i] );
4181 // } else {
4182 // double newResult = interpolate (CMS8_gg_phi_gaga_e,mass);
4183 // CacheShiftReal(ip_ex_gg_phi_gaga_CMS8_cache_e, NumPar, params, newResult);
4184 // return newResult;
4185 // }
4186 //}
4187 //
4188 //
4189 //
4204 //
4247 //
4248 //
4249 //double GeneralTHDMcache::ip_ex_pp_A_Zga_llga_CMS8(double mass){
4250 // int NumPar = 1;
4251 // double params[] = {mass};
4252 //
4253 // int i = CacheCheckReal(ip_ex_pp_A_Zga_llga_CMS8_cache, NumPar, params);
4254 // if (i>=0) {
4255 // return ( ip_ex_pp_A_Zga_llga_CMS8_cache[NumPar][i] );
4256 // } else {
4257 // double newResult = interpolate (CMS8_pp_A_Zga_llga,mass);
4258 // CacheShiftReal(ip_ex_pp_A_Zga_llga_CMS8_cache, NumPar, params, newResult);
4259 // return newResult;
4260 // }
4261 //}
4262 //
4263 //
4264 //
4265 //double GeneralTHDMcache::ip_ex_pp_A_Zga_llga_CMS8_e(double mass){
4266 // int NumPar = 1;
4267 // double params[] = {mass};
4268 //
4269 // int i = CacheCheckReal(ip_ex_pp_A_Zga_llga_CMS8_cache_e, NumPar, params);
4270 // if (i>=0) {
4271 // return ( ip_ex_pp_A_Zga_llga_CMS8_cache_e[NumPar][i] );
4272 // } else {
4273 // double newResult = interpolate (CMS8_pp_A_Zga_llga_e,mass);
4274 // CacheShiftReal(ip_ex_pp_A_Zga_llga_CMS8_cache_e, NumPar, params, newResult);
4275 // return newResult;
4276 // }
4277 //}
4278 //
4279 //
4280 //
4281 //double GeneralTHDMcache::ip_ex_gg_H_hh_bbtautau_CMS8(double mass){
4282 // int NumPar = 1;
4283 // double params[] = {mass};
4284 //
4285 // int i = CacheCheckReal(ip_ex_gg_H_hh_bbtautau_CMS8_cache, NumPar, params);
4286 // if (i>=0) {
4287 // return ( ip_ex_gg_H_hh_bbtautau_CMS8_cache[NumPar][i] );
4288 // } else {
4289 // double newResult = interpolate (CMS8_gg_H_hh_bbtautau,mass);
4290 // CacheShiftReal(ip_ex_gg_H_hh_bbtautau_CMS8_cache, NumPar, params, newResult);
4291 // return newResult;
4292 // }
4293 //}
4294 //
4295 //
4296 //
4297 //double GeneralTHDMcache::ip_ex_gg_H_hh_bbtautau_CMS8_e(double mass){
4298 // int NumPar = 1;
4299 // double params[] = {mass};
4300 //
4301 // int i = CacheCheckReal(ip_ex_gg_H_hh_bbtautau_CMS8_cache_e, NumPar, params);
4302 // if (i>=0) {
4303 // return ( ip_ex_gg_H_hh_bbtautau_CMS8_cache_e[NumPar][i] );
4304 // } else {
4305 // double newResult = interpolate (CMS8_gg_H_hh_bbtautau_e,mass);
4306 // CacheShiftReal(ip_ex_gg_H_hh_bbtautau_CMS8_cache_e, NumPar, params, newResult);
4307 // return newResult;
4308 // }
4309 //}
4310 //
4311 //
4312 //
4313 //double GeneralTHDMcache::ip_ex_gg_A_hZ_tautaull_CMS8(double mass){
4314 // int NumPar = 1;
4315 // double params[] = {mass};
4316 //
4317 // int i = CacheCheckReal(ip_ex_gg_A_hZ_tautaull_CMS8_cache, NumPar, params);
4318 // if (i>=0) {
4319 // return ( ip_ex_gg_A_hZ_tautaull_CMS8_cache[NumPar][i] );
4320 // } else {
4321 // double newResult = interpolate (CMS8_gg_A_hZ_tautaull,mass);
4322 // CacheShiftReal(ip_ex_gg_A_hZ_tautaull_CMS8_cache, NumPar, params, newResult);
4323 // return newResult;
4324 // }
4325 //}
4326 //
4327 //
4328 //
4329 //double GeneralTHDMcache::ip_ex_gg_A_hZ_tautaull_CMS8_e(double mass){
4330 // int NumPar = 1;
4331 // double params[] = {mass};
4332 //
4333 // int i = CacheCheckReal(ip_ex_gg_A_hZ_tautaull_CMS8_cache_e, NumPar, params);
4334 // if (i>=0) {
4335 // return ( ip_ex_gg_A_hZ_tautaull_CMS8_cache_e[NumPar][i] );
4336 // } else {
4337 // double newResult = interpolate (CMS8_gg_A_hZ_tautaull_e,mass);
4338 // CacheShiftReal(ip_ex_gg_A_hZ_tautaull_CMS8_cache_e, NumPar, params, newResult);
4339 // return newResult;
4340 // }
4341 //}
4342 //
4343 //
4344 //
4345 //double GeneralTHDMcache::ip_ex_pp_A_HZ_bbll_CMS8(double m1, double m2){
4346 // int NumPar = 2;
4347 // double params[] = {m1, m2};
4348 // int i = CacheCheckReal(ip_ex_pp_A_HZ_bbll_CMS8_cache, NumPar, params);
4349 //
4350 // if (i>=0) {
4351 //
4352 // return ( ip_ex_pp_A_HZ_bbll_CMS8_cache[NumPar][i] );
4353 // } else {
4354 // double newResult = interpolate2D(CMS8_pp_A_HZ_bbll, m1, m2);
4355 //
4356 //
4357 // CacheShiftReal(ip_ex_pp_A_HZ_bbll_CMS8_cache, NumPar, params, newResult);
4358 // return newResult;
4359 // }
4360 //}
4361 //
4362 //
4363 //
4364 //double GeneralTHDMcache::ip_ex_pp_H_AZ_bbll_CMS8(double mA, double mH){
4365 // int NumPar = 2;
4366 // double params[] = {mA, mH};
4367 //
4368 // int i = CacheCheckReal(ip_ex_pp_H_AZ_bbll_CMS8_cache, NumPar, params);
4369 // if (i>=0) {
4370 // return ( ip_ex_pp_H_AZ_bbll_CMS8_cache[NumPar][i] );
4371 // } else {
4372 // double newResult = interpolate2D(CMS8_pp_H_AZ_bbll, mA, mH);
4373 // CacheShiftReal(ip_ex_pp_H_AZ_bbll_CMS8_cache, NumPar, params, newResult);
4374 // return newResult;
4375 // }
4376 //}
4377 //
4378 //
4379 //double GeneralTHDMcache::ip_ex_pp_A_HZ_tautaull_CMS8(double mA, double mH){
4380 // int NumPar = 2;
4381 // double params[] = {mA, mH};
4382 //
4383 // int i = CacheCheckReal(ip_ex_pp_A_HZ_tautaull_CMS8_cache, NumPar, params);
4384 // if (i>=0) {
4385 // return ( ip_ex_pp_A_HZ_tautaull_CMS8_cache[NumPar][i] );
4386 // } else {
4387 // double newResult = interpolate2D(CMS8_pp_A_HZ_tautaull, mA, mH);
4388 // CacheShiftReal(ip_ex_pp_A_HZ_tautaull_CMS8_cache, NumPar, params, newResult);
4389 // return newResult;
4390 // }
4391 //}
4392 //
4393 //
4394 //
4395 //double GeneralTHDMcache::ip_ex_pp_H_AZ_tautaull_CMS8(double mA, double mH){
4396 // int NumPar = 2;
4397 // double params[] = {mA, mH};
4398 //
4399 // int i = CacheCheckReal(ip_ex_pp_H_AZ_tautaull_CMS8_cache, NumPar, params);
4400 // if (i>=0) {
4401 // return ( ip_ex_pp_H_AZ_tautaull_CMS8_cache[NumPar][i] );
4402 // } else {
4403 // double newResult = interpolate2D(CMS8_pp_H_AZ_tautaull, mA, mH);
4404 // CacheShiftReal(ip_ex_pp_H_AZ_tautaull_CMS8_cache, NumPar, params, newResult);
4405 // return newResult;
4406 // }
4407 //}
4408 //
4409 //
4410 //
4411 //double GeneralTHDMcache::ip_ex_bb_phi_tt_ATLAS13(double mass){
4412 // int NumPar = 1;
4413 // double params[] = {mass};
4414 //
4415 // int i = CacheCheckReal(ip_ex_bb_phi_tt_ATLAS13_cache, NumPar, params);
4416 // if (i>=0) {
4417 // return ( ip_ex_bb_phi_tt_ATLAS13_cache[NumPar][i] );
4418 // } else {
4419 // double newResult = interpolate (ATLAS13_bb_phi_tt,mass);
4420 // CacheShiftReal(ip_ex_bb_phi_tt_ATLAS13_cache, NumPar, params, newResult);
4421 // return newResult;
4422 // }
4423 //}
4424 //
4425 //
4426 //
4427 //double GeneralTHDMcache::ip_ex_bb_phi_tt_ATLAS13_e(double mass){
4428 // int NumPar = 1;
4429 // double params[] = {mass};
4430 //
4431 // int i = CacheCheckReal(ip_ex_bb_phi_tt_ATLAS13_cache_e, NumPar, params);
4432 // if (i>=0) {
4433 // return ( ip_ex_bb_phi_tt_ATLAS13_cache_e[NumPar][i] );
4434 // } else {
4435 // double newResult = interpolate (ATLAS13_bb_phi_tt_e,mass);
4436 // CacheShiftReal(ip_ex_bb_phi_tt_ATLAS13_cache_e, NumPar, params, newResult);
4437 // return newResult;
4438 // }
4439 //}
4440 //
4441 //
4442 //
4443 //double GeneralTHDMcache::ip_ex_tt_phi_tt_ATLAS13(double mass){
4444 // int NumPar = 1;
4445 // double params[] = {mass};
4446 //
4447 // int i = CacheCheckReal(ip_ex_tt_phi_tt_ATLAS13_cache, NumPar, params);
4448 // if (i>=0) {
4449 // return(ip_ex_tt_phi_tt_ATLAS13_cache[NumPar][i] );
4450 // } else {
4451 // double newResult = interpolate (ATLAS13_tt_phi_tt,mass);
4452 // CacheShiftReal(ip_ex_tt_phi_tt_ATLAS13_cache, NumPar, params, newResult);
4453 // return newResult;
4454 // }
4455 //}
4456 //
4457 //
4458 //
4459 //double GeneralTHDMcache::ip_ex_tt_phi_tt_ATLAS13_e(double mass){
4460 // int NumPar = 1;
4461 // double params[] = {mass};
4462 //
4463 // int i = CacheCheckReal(ip_ex_tt_phi_tt_ATLAS13_cache_e, NumPar, params);
4464 // if (i>=0) {
4465 // return(ip_ex_tt_phi_tt_ATLAS13_cache_e[NumPar][i] );
4466 // } else {
4467 // double newResult = interpolate (ATLAS13_tt_phi_tt_e,mass);
4468 // CacheShiftReal(ip_ex_tt_phi_tt_ATLAS13_cache_e, NumPar, params, newResult);
4469 // return newResult;
4470 // }
4471 //}
4472 //
4473 //
4474 //
4475 //double GeneralTHDMcache::ip_ex_gg_phi_tautau_ATLAS13(double mass){
4476 // int NumPar = 1;
4477 // double params[] = {mass};
4478 //
4479 // int i = CacheCheckReal(ip_ex_gg_phi_tautau_ATLAS13_cache, NumPar, params);
4480 // if (i>=0) {
4481 // return(ip_ex_gg_phi_tautau_ATLAS13_cache[NumPar][i] );
4482 // } else {
4483 // double newResult = interpolate (ATLAS13_gg_phi_tautau,mass);
4484 // CacheShiftReal(ip_ex_gg_phi_tautau_ATLAS13_cache, NumPar, params, newResult);
4485 // return newResult;
4486 // }
4487 //}
4488 //
4489 //
4490 //
4491 //double GeneralTHDMcache::ip_ex_gg_phi_tautau_ATLAS13_e(double mass){
4492 // int NumPar = 1;
4493 // double params[] = {mass};
4494 //
4495 // int i = CacheCheckReal(ip_ex_gg_phi_tautau_ATLAS13_cache_e, NumPar, params);
4496 // if (i>=0) {
4497 // return(ip_ex_gg_phi_tautau_ATLAS13_cache_e[NumPar][i] );
4498 // } else {
4499 // double newResult = interpolate (ATLAS13_gg_phi_tautau_e,mass);
4500 // CacheShiftReal(ip_ex_gg_phi_tautau_ATLAS13_cache_e, NumPar, params, newResult);
4501 // return newResult;
4502 // }
4503 //}
4504 //
4505 //
4506 //
4507 //double GeneralTHDMcache::ip_ex_bb_phi_tautau_ATLAS13(double mass){
4508 // int NumPar = 1;
4509 // double params[] = {mass};
4510 //
4511 // int i = CacheCheckReal(ip_ex_bb_phi_tautau_ATLAS13_cache, NumPar, params);
4512 // if (i>=0) {
4513 // return(ip_ex_bb_phi_tautau_ATLAS13_cache[NumPar][i] );
4514 // } else {
4515 // double newResult = interpolate (ATLAS13_bb_phi_tautau,mass);
4516 // CacheShiftReal(ip_ex_bb_phi_tautau_ATLAS13_cache, NumPar, params, newResult);
4517 // return newResult;
4518 // }
4519 //}
4520 //
4521 //
4522 //
4523 //double GeneralTHDMcache::ip_ex_bb_phi_tautau_ATLAS13_e(double mass){
4524 // int NumPar = 1;
4525 // double params[] = {mass};
4526 //
4527 // int i = CacheCheckReal(ip_ex_bb_phi_tautau_ATLAS13_cache_e, NumPar, params);
4528 // if (i>=0) {
4529 // return(ip_ex_bb_phi_tautau_ATLAS13_cache_e[NumPar][i] );
4530 // } else {
4531 // double newResult = interpolate (ATLAS13_bb_phi_tautau_e,mass);
4532 // CacheShiftReal(ip_ex_bb_phi_tautau_ATLAS13_cache_e, NumPar, params, newResult);
4533 // return newResult;
4534 // }
4535 //}
4536 //
4537 //
4538 //
4539 //double GeneralTHDMcache::ip_ex_pp_phi_gaga_ATLAS13(double mass){
4540 // int NumPar = 1;
4541 // double params[] = {mass};
4542 //
4543 // int i = CacheCheckReal(ip_ex_pp_phi_gaga_ATLAS13_cache, NumPar, params);
4544 // if (i>=0) {
4545 // return(ip_ex_pp_phi_gaga_ATLAS13_cache[NumPar][i] );
4546 // } else {
4547 // double newResult = interpolate (ATLAS13_pp_phi_gaga,mass);
4548 // CacheShiftReal(ip_ex_pp_phi_gaga_ATLAS13_cache, NumPar, params, newResult);
4549 // return newResult;
4550 // }
4551 //}
4552 //
4553 //
4554 //
4555 //double GeneralTHDMcache::ip_ex_pp_phi_gaga_ATLAS13_e(double mass){
4556 // int NumPar = 1;
4557 // double params[] = {mass};
4558 //
4559 // int i = CacheCheckReal(ip_ex_pp_phi_gaga_ATLAS13_cache_e, NumPar, params);
4560 // if (i>=0) {
4561 // return(ip_ex_pp_phi_gaga_ATLAS13_cache_e[NumPar][i] );
4562 // } else {
4563 // double newResult = interpolate (ATLAS13_pp_phi_gaga_e,mass);
4564 // CacheShiftReal(ip_ex_pp_phi_gaga_ATLAS13_cache_e, NumPar, params, newResult);
4565 // return newResult;
4566 // }
4567 //}
4568 //
4569 //
4570 //
4571 //double GeneralTHDMcache::ip_ex_pp_phi_Zga_llga_ATLAS13(double mass){
4572 // int NumPar = 1;
4573 // double params[] = {mass};
4574 //
4575 // int i = CacheCheckReal(ip_ex_pp_phi_Zga_llga_ATLAS13_cache, NumPar, params);
4576 // if (i>=0) {
4577 // return(ip_ex_pp_phi_Zga_llga_ATLAS13_cache[NumPar][i] );
4578 // } else {
4579 // double newResult = interpolate (ATLAS13_pp_phi_Zga,mass);
4580 // CacheShiftReal(ip_ex_pp_phi_Zga_llga_ATLAS13_cache, NumPar, params, newResult);
4581 // return newResult;
4582 // }
4583 //}
4584 //
4585 //
4586 //
4587 //double GeneralTHDMcache::ip_ex_pp_phi_Zga_llga_ATLAS13_e(double mass){
4588 // int NumPar = 1;
4589 // double params[] = {mass};
4590 //
4591 // int i = CacheCheckReal(ip_ex_pp_phi_Zga_llga_ATLAS13_cache_e, NumPar, params);
4592 // if (i>=0) {
4593 // return(ip_ex_pp_phi_Zga_llga_ATLAS13_cache_e[NumPar][i] );
4594 // } else {
4595 // double newResult = interpolate (ATLAS13_pp_phi_Zga_e,mass);
4596 // CacheShiftReal(ip_ex_pp_phi_Zga_llga_ATLAS13_cache_e, NumPar, params, newResult);
4597 // return newResult;
4598 // }
4599 //}
4600 //
4601 //
4602 //
4603 //double GeneralTHDMcache::ip_ex_gg_phi_Zga_llga_ATLAS13(double mass){
4604 // int NumPar = 1;
4605 // double params[] = {mass};
4606 //
4607 // int i = CacheCheckReal(ip_ex_gg_phi_Zga_llga_ATLAS13_cache, NumPar, params);
4608 // if (i>=0) {
4609 // return(ip_ex_gg_phi_Zga_llga_ATLAS13_cache[NumPar][i] );
4610 // } else {
4611 // double newResult = interpolate (ATLAS13_gg_phi_Zga_llga,mass);
4612 // CacheShiftReal(ip_ex_gg_phi_Zga_llga_ATLAS13_cache, NumPar, params, newResult);
4613 // return newResult;
4614 // }
4615 //}
4616 //
4617 //
4618 //
4619 //double GeneralTHDMcache::ip_ex_gg_phi_Zga_llga_ATLAS13_e(double mass){
4620 // int NumPar = 1;
4621 // double params[] = {mass};
4622 //
4623 // int i = CacheCheckReal(ip_ex_gg_phi_Zga_llga_ATLAS13_cache_e, NumPar, params);
4624 // if (i>=0) {
4625 // return(ip_ex_gg_phi_Zga_llga_ATLAS13_cache_e[NumPar][i] );
4626 // } else {
4627 // double newResult = interpolate (ATLAS13_gg_phi_Zga_llga_e,mass);
4628 // CacheShiftReal(ip_ex_gg_phi_Zga_llga_ATLAS13_cache_e, NumPar, params, newResult);
4629 // return newResult;
4630 // }
4631 //}
4632 //
4633 //
4634 //
4635 //double GeneralTHDMcache::ip_ex_gg_H_ZZ_llllnunu_ATLAS13(double mass){
4636 // int NumPar = 1;
4637 // double params[] = {mass};
4638 //
4639 // int i = CacheCheckReal(ip_ex_gg_H_ZZ_llllnunu_ATLAS13_cache, NumPar, params);
4640 // if (i>=0) {
4641 // return(ip_ex_gg_H_ZZ_llllnunu_ATLAS13_cache[NumPar][i] );
4642 // } else {
4643 // double newResult = interpolate (ATLAS13_gg_H_ZZ_llllnunu,mass);
4644 // CacheShiftReal(ip_ex_gg_H_ZZ_llllnunu_ATLAS13_cache, NumPar, params, newResult);
4645 // return newResult;
4646 // }
4647 //}
4648 //
4649 //
4650 //
4651 //double GeneralTHDMcache::ip_ex_gg_H_ZZ_llllnunu_ATLAS13_e(double mass){
4652 // int NumPar = 1;
4653 // double params[] = {mass};
4654 //
4655 // int i = CacheCheckReal(ip_ex_gg_H_ZZ_llllnunu_ATLAS13_cache_e, NumPar, params);
4656 // if (i>=0) {
4657 // return(ip_ex_gg_H_ZZ_llllnunu_ATLAS13_cache_e[NumPar][i] );
4658 // } else {
4659 // double newResult = interpolate (ATLAS13_gg_H_ZZ_llllnunu_e,mass);
4660 // CacheShiftReal(ip_ex_gg_H_ZZ_llllnunu_ATLAS13_cache_e, NumPar, params, newResult);
4661 // return newResult;
4662 // }
4663 //}
4664 //
4665 //
4666 //
4667 //double GeneralTHDMcache::ip_ex_VBF_H_ZZ_llllnunu_ATLAS13(double mass){
4668 // int NumPar = 1;
4669 // double params[] = {mass};
4670 //
4671 // int i = CacheCheckReal(ip_ex_VBF_H_ZZ_llllnunu_ATLAS13_cache, NumPar, params);
4672 // if (i>=0) {
4673 // return(ip_ex_VBF_H_ZZ_llllnunu_ATLAS13_cache[NumPar][i] );
4674 // } else {
4675 // double newResult = interpolate (ATLAS13_VBF_H_ZZ_llllnunu,mass);
4676 // CacheShiftReal(ip_ex_VBF_H_ZZ_llllnunu_ATLAS13_cache, NumPar, params, newResult);
4677 // return newResult;
4678 // }
4679 //}
4680 //
4681 //
4682 //
4683 //double GeneralTHDMcache::ip_ex_VBF_H_ZZ_llllnunu_ATLAS13_e(double mass){
4684 // int NumPar = 1;
4685 // double params[] = {mass};
4686 //
4687 // int i = CacheCheckReal(ip_ex_VBF_H_ZZ_llllnunu_ATLAS13_cache_e, NumPar, params);
4688 // if (i>=0) {
4689 // return(ip_ex_VBF_H_ZZ_llllnunu_ATLAS13_cache_e[NumPar][i] );
4690 // } else {
4691 // double newResult = interpolate (ATLAS13_VBF_H_ZZ_llllnunu_e,mass);
4692 // CacheShiftReal(ip_ex_VBF_H_ZZ_llllnunu_ATLAS13_cache_e, NumPar, params, newResult);
4693 // return newResult;
4694 // }
4695 //}
4696 //
4697 //
4698 //
4699 //double GeneralTHDMcache::ip_ex_gg_H_ZZ_llnunu_ATLAS13(double mass){
4700 // int NumPar = 1;
4701 // double params[] = {mass};
4702 //
4703 // int i = CacheCheckReal(ip_ex_gg_H_ZZ_llnunu_ATLAS13_cache, NumPar, params);
4704 // if (i>=0) {
4705 // return(ip_ex_gg_H_ZZ_llnunu_ATLAS13_cache[NumPar][i] );
4706 // } else {
4707 // double newResult = interpolate (ATLAS13_gg_H_ZZ_llnunu,mass);
4708 // CacheShiftReal(ip_ex_gg_H_ZZ_llnunu_ATLAS13_cache, NumPar, params, newResult);
4709 // return newResult;
4710 // }
4711 //}
4712 //
4713 //
4714 //
4715 //double GeneralTHDMcache::ip_ex_gg_H_ZZ_llnunu_ATLAS13_e(double mass){
4716 // int NumPar = 1;
4717 // double params[] = {mass};
4718 //
4719 // int i = CacheCheckReal(ip_ex_gg_H_ZZ_llnunu_ATLAS13_cache_e, NumPar, params);
4720 // if (i>=0) {
4721 // return(ip_ex_gg_H_ZZ_llnunu_ATLAS13_cache_e[NumPar][i] );
4722 // } else {
4723 // double newResult = interpolate (ATLAS13_gg_H_ZZ_llnunu_e,mass);
4724 // CacheShiftReal(ip_ex_gg_H_ZZ_llnunu_ATLAS13_cache_e, NumPar, params, newResult);
4725 // return newResult;
4726 // }
4727 //}
4728 //
4729 //
4730 //
4731 //double GeneralTHDMcache::ip_ex_gg_H_ZZ_llll_ATLAS13(double mass){
4732 // int NumPar = 1;
4733 // double params[] = {mass};
4734 //
4735 // int i = CacheCheckReal(ip_ex_gg_H_ZZ_llll_ATLAS13_cache, NumPar, params);
4736 // if (i>=0) {
4737 // return(ip_ex_gg_H_ZZ_llll_ATLAS13_cache[NumPar][i] );
4738 // } else {
4739 // double newResult = interpolate (ATLAS13_gg_H_ZZ_llll,mass);
4740 // CacheShiftReal(ip_ex_gg_H_ZZ_llll_ATLAS13_cache, NumPar, params, newResult);
4741 // return newResult;
4742 // }
4743 //}
4744 //
4745 //
4746 //
4747 //double GeneralTHDMcache::ip_ex_gg_H_ZZ_llll_ATLAS13_e(double mass){
4748 // int NumPar = 1;
4749 // double params[] = {mass};
4750 //
4751 // int i = CacheCheckReal(ip_ex_gg_H_ZZ_llll_ATLAS13_cache_e, NumPar, params);
4752 // if (i>=0) {
4753 // return(ip_ex_gg_H_ZZ_llll_ATLAS13_cache_e[NumPar][i] );
4754 // } else {
4755 // double newResult = interpolate (ATLAS13_gg_H_ZZ_llll_e,mass);
4756 // CacheShiftReal(ip_ex_gg_H_ZZ_llll_ATLAS13_cache_e, NumPar, params, newResult);
4757 // return newResult;
4758 // }
4759 //}
4760 //
4761 //
4762 //
4763 //double GeneralTHDMcache::ip_ex_VBF_H_ZZ_llll_ATLAS13(double mass){
4764 // int NumPar = 1;
4765 // double params[] = {mass};
4766 //
4767 // int i = CacheCheckReal(ip_ex_VBF_H_ZZ_llll_ATLAS13_cache, NumPar, params);
4768 // if (i>=0) {
4769 // return(ip_ex_VBF_H_ZZ_llll_ATLAS13_cache[NumPar][i] );
4770 // } else {
4771 // double newResult = interpolate (ATLAS13_VBF_H_ZZ_llll,mass);
4772 // CacheShiftReal(ip_ex_VBF_H_ZZ_llll_ATLAS13_cache, NumPar, params, newResult);
4773 // return newResult;
4774 // }
4775 //}
4776 //
4777 //
4778 //
4779 //double GeneralTHDMcache::ip_ex_VBF_H_ZZ_llll_ATLAS13_e(double mass){
4780 // int NumPar = 1;
4781 // double params[] = {mass};
4782 //
4783 // int i = CacheCheckReal(ip_ex_VBF_H_ZZ_llll_ATLAS13_cache_e, NumPar, params);
4784 // if (i>=0) {
4785 // return(ip_ex_VBF_H_ZZ_llll_ATLAS13_cache_e[NumPar][i] );
4786 // } else {
4787 // double newResult = interpolate (ATLAS13_VBF_H_ZZ_llll_e,mass);
4788 // CacheShiftReal(ip_ex_VBF_H_ZZ_llll_ATLAS13_cache_e, NumPar, params, newResult);
4789 // return newResult;
4790 // }
4791 //}
4792 //
4793 //
4794 //
4795 //double GeneralTHDMcache::ip_ex_gg_H_ZZ_qqllnunu_ATLAS13(double mass){
4796 // int NumPar = 1;
4797 // double params[] = {mass};
4798 //
4799 // int i = CacheCheckReal(ip_ex_gg_H_ZZ_qqllnunu_ATLAS13_cache, NumPar, params);
4800 // if (i>=0) {
4801 // return(ip_ex_gg_H_ZZ_qqllnunu_ATLAS13_cache[NumPar][i] );
4802 // } else {
4803 // double newResult = interpolate (ATLAS13_gg_H_ZZ_qqllnunu,mass);
4804 // CacheShiftReal(ip_ex_gg_H_ZZ_qqllnunu_ATLAS13_cache, NumPar, params, newResult);
4805 // return newResult;
4806 // }
4807 //}
4808 //
4809 //
4810 //
4811 //double GeneralTHDMcache::ip_ex_gg_H_ZZ_qqllnunu_ATLAS13_e(double mass){
4812 // int NumPar = 1;
4813 // double params[] = {mass};
4814 //
4815 // int i = CacheCheckReal(ip_ex_gg_H_ZZ_qqllnunu_ATLAS13_cache_e, NumPar, params);
4816 // if (i>=0) {
4817 // return(ip_ex_gg_H_ZZ_qqllnunu_ATLAS13_cache_e[NumPar][i] );
4818 // } else {
4819 // double newResult = interpolate (ATLAS13_gg_H_ZZ_qqllnunu_e,mass);
4820 // CacheShiftReal(ip_ex_gg_H_ZZ_qqllnunu_ATLAS13_cache_e, NumPar, params, newResult);
4821 // return newResult;
4822 // }
4823 //}
4824 //
4825 //
4826 //
4827 //double GeneralTHDMcache::ip_ex_VBF_H_ZZ_qqllnunu_ATLAS13(double mass){
4828 // int NumPar = 1;
4829 // double params[] = {mass};
4830 //
4831 // int i = CacheCheckReal(ip_ex_VBF_H_ZZ_qqllnunu_ATLAS13_cache, NumPar, params);
4832 // if (i>=0) {
4833 // return(ip_ex_VBF_H_ZZ_qqllnunu_ATLAS13_cache[NumPar][i] );
4834 // } else {
4835 // double newResult = interpolate (ATLAS13_VBF_H_ZZ_qqllnunu,mass);
4836 // CacheShiftReal(ip_ex_VBF_H_ZZ_qqllnunu_ATLAS13_cache, NumPar, params, newResult);
4837 // return newResult;
4838 // }
4839 //}
4840 //
4841 //
4842 //
4843 //double GeneralTHDMcache::ip_ex_VBF_H_ZZ_qqllnunu_ATLAS13_e(double mass){
4844 // int NumPar = 1;
4845 // double params[] = {mass};
4846 //
4847 // int i = CacheCheckReal(ip_ex_VBF_H_ZZ_qqllnunu_ATLAS13_cache_e, NumPar, params);
4848 // if (i>=0) {
4849 // return(ip_ex_VBF_H_ZZ_qqllnunu_ATLAS13_cache_e[NumPar][i] );
4850 // } else {
4851 // double newResult = interpolate (ATLAS13_VBF_H_ZZ_qqllnunu_e,mass);
4852 // CacheShiftReal(ip_ex_VBF_H_ZZ_qqllnunu_ATLAS13_cache_e, NumPar, params, newResult);
4853 // return newResult;
4854 // }
4855 //}
4856 //
4857 //
4858 //
4859 //double GeneralTHDMcache::ip_ex_gg_H_ZZ_llqq_ATLAS13(double mass){
4860 // int NumPar = 1;
4861 // double params[] = {mass};
4862 //
4863 // int i = CacheCheckReal(ip_ex_gg_H_ZZ_llqq_ATLAS13_cache, NumPar, params);
4864 // if (i>=0) {
4865 // return(ip_ex_gg_H_ZZ_llqq_ATLAS13_cache[NumPar][i] );
4866 // } else {
4867 // double newResult = interpolate (ATLAS13_gg_H_ZZ_llqq,mass);
4868 // CacheShiftReal(ip_ex_gg_H_ZZ_llqq_ATLAS13_cache, NumPar, params, newResult);
4869 // return newResult;
4870 // }
4871 //}
4872 //
4873 //
4874 //
4875 //double GeneralTHDMcache::ip_ex_gg_H_ZZ_llqq_ATLAS13_e(double mass){
4876 // int NumPar = 1;
4877 // double params[] = {mass};
4878 //
4879 // int i = CacheCheckReal(ip_ex_gg_H_ZZ_llqq_ATLAS13_cache_e, NumPar, params);
4880 // if (i>=0) {
4881 // return(ip_ex_gg_H_ZZ_llqq_ATLAS13_cache_e[NumPar][i] );
4882 // } else {
4883 // double newResult = interpolate (ATLAS13_gg_H_ZZ_llqq_e,mass);
4884 // CacheShiftReal(ip_ex_gg_H_ZZ_llqq_ATLAS13_cache_e, NumPar, params, newResult);
4885 // return newResult;
4886 // }
4887 //}
4888 //
4889 //
4890 //
4891 //double GeneralTHDMcache::ip_ex_VBF_H_ZZ_llqq_ATLAS13(double mass){
4892 // int NumPar = 1;
4893 // double params[] = {mass};
4894 //
4895 // int i = CacheCheckReal(ip_ex_VBF_H_ZZ_llqq_ATLAS13_cache, NumPar, params);
4896 // if (i>=0) {
4897 // return(ip_ex_VBF_H_ZZ_llqq_ATLAS13_cache[NumPar][i] );
4898 // } else {
4899 // double newResult = interpolate (ATLAS13_VBF_H_ZZ_llqq,mass);
4900 // CacheShiftReal(ip_ex_VBF_H_ZZ_llqq_ATLAS13_cache, NumPar, params, newResult);
4901 // return newResult;
4902 // }
4903 //}
4904 //
4905 //
4906 //
4907 //double GeneralTHDMcache::ip_ex_VBF_H_ZZ_llqq_ATLAS13_e(double mass){
4908 // int NumPar = 1;
4909 // double params[] = {mass};
4910 //
4911 // int i = CacheCheckReal(ip_ex_VBF_H_ZZ_llqq_ATLAS13_cache_e, NumPar, params);
4912 // if (i>=0) {
4913 // return(ip_ex_VBF_H_ZZ_llqq_ATLAS13_cache_e[NumPar][i] );
4914 // } else {
4915 // double newResult = interpolate (ATLAS13_VBF_H_ZZ_llqq_e,mass);
4916 // CacheShiftReal(ip_ex_VBF_H_ZZ_llqq_ATLAS13_cache_e, NumPar, params, newResult);
4917 // return newResult;
4918 // }
4919 //}
4920 //
4921 //
4922 //
4923 //double GeneralTHDMcache::ip_ex_gg_H_ZZ_nunuqq_ATLAS13(double mass){
4924 // int NumPar = 1;
4925 // double params[] = {mass};
4926 //
4927 // int i = CacheCheckReal(ip_ex_gg_H_ZZ_nunuqq_ATLAS13_cache, NumPar, params);
4928 // if (i>=0) {
4929 // return(ip_ex_gg_H_ZZ_nunuqq_ATLAS13_cache[NumPar][i] );
4930 // } else {
4931 // double newResult = interpolate (ATLAS13_gg_H_ZZ_nunuqq,mass);
4932 // CacheShiftReal(ip_ex_gg_H_ZZ_nunuqq_ATLAS13_cache, NumPar, params, newResult);
4933 // return newResult;
4934 // }
4935 //}
4936 //
4937 //
4938 //
4939 //double GeneralTHDMcache::ip_ex_gg_H_ZZ_nunuqq_ATLAS13_e(double mass){
4940 // int NumPar = 1;
4941 // double params[] = {mass};
4942 //
4943 // int i = CacheCheckReal(ip_ex_gg_H_ZZ_nunuqq_ATLAS13_cache_e, NumPar, params);
4944 // if (i>=0) {
4945 // return(ip_ex_gg_H_ZZ_nunuqq_ATLAS13_cache_e[NumPar][i] );
4946 // } else {
4947 // double newResult = interpolate (ATLAS13_gg_H_ZZ_nunuqq_e,mass);
4948 // CacheShiftReal(ip_ex_gg_H_ZZ_nunuqq_ATLAS13_cache_e, NumPar, params, newResult);
4949 // return newResult;
4950 // }
4951 //}
4952 //
4953 //
4954 //
4955 //double GeneralTHDMcache::ip_ex_gg_H_WW_enumunu_ATLAS13(double mass){
4956 // int NumPar = 1;
4957 // double params[] = {mass};
4958 //
4959 // int i = CacheCheckReal(ip_ex_gg_H_WW_enumunu_ATLAS13_cache, NumPar, params);
4960 // if (i>=0) {
4961 // return(ip_ex_gg_H_WW_enumunu_ATLAS13_cache[NumPar][i] );
4962 // } else {
4963 // double newResult = interpolate (ATLAS13_gg_H_WW_enumumu,mass);
4964 // CacheShiftReal(ip_ex_gg_H_WW_enumunu_ATLAS13_cache, NumPar, params, newResult);
4965 // return newResult;
4966 // }
4967 //}
4968 //
4969 //
4970 //
4971 //double GeneralTHDMcache::ip_ex_gg_H_WW_enumunu_ATLAS13_e(double mass){
4972 // int NumPar = 1;
4973 // double params[] = {mass};
4974 //
4975 // int i = CacheCheckReal(ip_ex_gg_H_WW_enumunu_ATLAS13_cache_e, NumPar, params);
4976 // if (i>=0) {
4977 // return(ip_ex_gg_H_WW_enumunu_ATLAS13_cache_e[NumPar][i] );
4978 // } else {
4979 // double newResult = interpolate (ATLAS13_gg_H_WW_enumumu_e,mass);
4980 // CacheShiftReal(ip_ex_gg_H_WW_enumunu_ATLAS13_cache_e, NumPar, params, newResult);
4981 // return newResult;
4982 // }
4983 //}
4984 //
4985 //
4986 //
4987 //double GeneralTHDMcache::ip_ex_VBF_H_WW_enumunu_ATLAS13(double mass){
4988 // int NumPar = 1;
4989 // double params[] = {mass};
4990 //
4991 // int i = CacheCheckReal(ip_ex_VBF_H_WW_enumunu_ATLAS13_cache, NumPar, params);
4992 // if (i>=0) {
4993 // return(ip_ex_VBF_H_WW_enumunu_ATLAS13_cache[NumPar][i] );
4994 // } else {
4995 // double newResult = interpolate (ATLAS13_VBF_H_WW_enumumu,mass);
4996 // CacheShiftReal(ip_ex_VBF_H_WW_enumunu_ATLAS13_cache, NumPar, params, newResult);
4997 // return newResult;
4998 // }
4999 //}
5000 //
5001 //
5002 //
5003 //double GeneralTHDMcache::ip_ex_VBF_H_WW_enumunu_ATLAS13_e(double mass){
5004 // int NumPar = 1;
5005 // double params[] = {mass};
5006 //
5007 // int i = CacheCheckReal(ip_ex_VBF_H_WW_enumunu_ATLAS13_cache_e, NumPar, params);
5008 // if (i>=0) {
5009 // return(ip_ex_VBF_H_WW_enumunu_ATLAS13_cache_e[NumPar][i] );
5010 // } else {
5011 // double newResult = interpolate (ATLAS13_VBF_H_WW_enumumu_e,mass);
5012 // CacheShiftReal(ip_ex_VBF_H_WW_enumunu_ATLAS13_cache_e, NumPar, params, newResult);
5013 // return newResult;
5014 // }
5015 //}
5016 //
5017 //
5018 //
5019 //double GeneralTHDMcache::ip_ex_gg_H_WW_lnuqq_ATLAS13(double mass){
5020 // int NumPar = 1;
5021 // double params[] = {mass};
5022 //
5023 // int i = CacheCheckReal(ip_ex_gg_H_WW_lnuqq_ATLAS13_cache, NumPar, params);
5024 // if (i>=0) {
5025 // return(ip_ex_gg_H_WW_lnuqq_ATLAS13_cache[NumPar][i] );
5026 // } else {
5027 // double newResult = interpolate (ATLAS13_gg_H_WW_lnuqq,mass);
5028 // CacheShiftReal(ip_ex_gg_H_WW_lnuqq_ATLAS13_cache, NumPar, params, newResult);
5029 // return newResult;
5030 // }
5031 //}
5032 //
5033 //
5034 //
5035 //double GeneralTHDMcache::ip_ex_gg_H_WW_lnuqq_ATLAS13_e(double mass){
5036 // int NumPar = 1;
5037 // double params[] = {mass};
5038 //
5039 // int i = CacheCheckReal(ip_ex_gg_H_WW_lnuqq_ATLAS13_cache_e, NumPar, params);
5040 // if (i>=0) {
5041 // return(ip_ex_gg_H_WW_lnuqq_ATLAS13_cache_e[NumPar][i] );
5042 // } else {
5043 // double newResult = interpolate (ATLAS13_gg_H_WW_lnuqq_e,mass);
5044 // CacheShiftReal(ip_ex_gg_H_WW_lnuqq_ATLAS13_cache_e, NumPar, params, newResult);
5045 // return newResult;
5046 // }
5047 //}
5048 //
5049 //
5050 //
5051 //double GeneralTHDMcache::ip_ex_VBF_H_WW_lnuqq_ATLAS13(double mass){
5052 // int NumPar = 1;
5053 // double params[] = {mass};
5054 //
5055 // int i = CacheCheckReal(ip_ex_VBF_H_WW_lnuqq_ATLAS13_cache, NumPar, params);
5056 // if (i>=0) {
5057 // return(ip_ex_VBF_H_WW_lnuqq_ATLAS13_cache[NumPar][i] );
5058 // } else {
5059 // double newResult = interpolate (ATLAS13_VBF_H_WW_lnuqq,mass);
5060 // CacheShiftReal(ip_ex_VBF_H_WW_lnuqq_ATLAS13_cache, NumPar, params, newResult);
5061 // return newResult;
5062 // }
5063 //}
5064 //
5065 //
5066 //
5067 //double GeneralTHDMcache::ip_ex_VBF_H_WW_lnuqq_ATLAS13_e(double mass){
5068 // int NumPar = 1;
5069 // double params[] = {mass};
5070 //
5071 // int i = CacheCheckReal(ip_ex_VBF_H_WW_lnuqq_ATLAS13_cache_e, NumPar, params);
5072 // if (i>=0) {
5073 // return(ip_ex_VBF_H_WW_lnuqq_ATLAS13_cache_e[NumPar][i] );
5074 // } else {
5075 // double newResult = interpolate (ATLAS13_VBF_H_WW_lnuqq_e,mass);
5076 // CacheShiftReal(ip_ex_VBF_H_WW_lnuqq_ATLAS13_cache_e, NumPar, params, newResult);
5077 // return newResult;
5078 // }
5079 //}
5080 //
5081 //
5082 //
5083 //double GeneralTHDMcache::ip_ex_pp_H_VV_qqqq_ATLAS13(double mass){
5084 // int NumPar = 1;
5085 // double params[] = {mass};
5086 //
5087 // int i = CacheCheckReal(ip_ex_pp_H_VV_qqqq_ATLAS13_cache, NumPar, params);
5088 // if (i>=0) {
5089 // return(ip_ex_pp_H_VV_qqqq_ATLAS13_cache[NumPar][i] );
5090 // } else {
5091 // double newResult = interpolate (ATLAS13_pp_H_VV_qqqq,mass);
5092 // CacheShiftReal(ip_ex_pp_H_VV_qqqq_ATLAS13_cache, NumPar, params, newResult);
5093 // return newResult;
5094 // }
5095 //}
5096 //
5097 //
5098 //
5099 //double GeneralTHDMcache::ip_ex_pp_H_VV_qqqq_ATLAS13_e(double mass){
5100 // int NumPar = 1;
5101 // double params[] = {mass};
5102 //
5103 // int i = CacheCheckReal(ip_ex_pp_H_VV_qqqq_ATLAS13_cache_e, NumPar, params);
5104 // if (i>=0) {
5105 // return(ip_ex_pp_H_VV_qqqq_ATLAS13_cache_e[NumPar][i] );
5106 // } else {
5107 // double newResult = interpolate (ATLAS13_pp_H_VV_qqqq_e,mass);
5108 // CacheShiftReal(ip_ex_pp_H_VV_qqqq_ATLAS13_cache_e, NumPar, params, newResult);
5109 // return newResult;
5110 // }
5111 //}
5112 //
5113 //
5114 //
5115 
5116 
5117 
5119  int NumPar = 1;
5120  double params[] = {mass};
5121 
5122  int i = CacheCheckReal(ip_ex_pp_Hpm_taunu_ATLAS8_cache, NumPar, params);
5123  if (i>=0) {
5124  return(ip_ex_pp_Hpm_taunu_ATLAS8_cache[NumPar][i] );
5125  } else {
5126  double newResult = interpolate (ATLAS8_pp_Hpm_taunu,mass);
5127  CacheShiftReal(ip_ex_pp_Hpm_taunu_ATLAS8_cache, NumPar, params, newResult);
5128  return newResult;
5129  }
5130 }
5131 
5132 
5133 
5135  int NumPar = 1;
5136  double params[] = {mass};
5137 
5138  int i = CacheCheckReal(ip_ex_pp_Hp_taunu_CMS8_cache, NumPar, params);
5139  if (i>=0) {
5140  return(ip_ex_pp_Hp_taunu_CMS8_cache[NumPar][i] );
5141  } else {
5142  double newResult = interpolate (CMS8_pp_Hp_taunu,mass);
5143  CacheShiftReal(ip_ex_pp_Hp_taunu_CMS8_cache, NumPar, params, newResult);
5144  return newResult;
5145  }
5146 }
5147 
5148 
5149 
5151  int NumPar = 1;
5152  double params[] = {mass};
5153 
5154  int i = CacheCheckReal(ip_ex_pp_Hpm_taunu_ATLAS13_cache, NumPar, params);
5155  if (i>=0) {
5156  return(ip_ex_pp_Hpm_taunu_ATLAS13_cache[NumPar][i] );
5157  } else {
5158  double newResult = interpolate (ATLAS13_pp_Hpm_taunu,mass);
5159  CacheShiftReal(ip_ex_pp_Hpm_taunu_ATLAS13_cache, NumPar, params, newResult);
5160  return newResult;
5161  }
5162 }
5163 
5164 
5165 
5167  int NumPar = 1;
5168  double params[] = {mass};
5169 
5170  int i = CacheCheckReal(ip_ex_pp_Hpm_taunu_CMS13_cache, NumPar, params);
5171  if (i>=0) {
5172  return(ip_ex_pp_Hpm_taunu_CMS13_cache[NumPar][i] );
5173  } else {
5174  double newResult = interpolate (CMS13_pp_Hpm_taunu,mass);
5175  CacheShiftReal(ip_ex_pp_Hpm_taunu_CMS13_cache, NumPar, params, newResult);
5176  return newResult;
5177  }
5178 }
5179 
5180 
5181 
5183  int NumPar = 1;
5184  double params[] = {mass};
5185 
5186  int i = CacheCheckReal(ip_ex_pp_Hpm_tb_ATLAS8_cache, NumPar, params);
5187  if (i>=0) {
5188  return(ip_ex_pp_Hpm_tb_ATLAS8_cache[NumPar][i] );
5189  } else {
5190  double newResult = interpolate (ATLAS8_pp_Hpm_tb,mass);
5191  CacheShiftReal(ip_ex_pp_Hpm_tb_ATLAS8_cache, NumPar, params, newResult);
5192  return newResult;
5193  }
5194 }
5195 
5196 
5197 
5199  int NumPar = 1;
5200  double params[] = {mass};
5201 
5202  int i = CacheCheckReal(ip_ex_pp_Hp_tb_CMS8_cache, NumPar, params);
5203  if (i>=0) {
5204  return(ip_ex_pp_Hp_tb_CMS8_cache[NumPar][i] );
5205  } else {
5206  double newResult = interpolate (CMS8_pp_Hp_tb,mass);
5207  CacheShiftReal(ip_ex_pp_Hp_tb_CMS8_cache, NumPar, params, newResult);
5208  return newResult;
5209  }
5210 }
5211 
5213  int NumPar = 1;
5214  double params[] = {mass};
5215 
5216  int i = CacheCheckReal(ip_ex_pp_Hpm_tb_ATLAS13_cache, NumPar, params);
5217  if (i>=0) {
5218  return(ip_ex_pp_Hpm_tb_ATLAS13_cache[NumPar][i] );
5219  } else {
5220  double newResult = interpolate (ATLAS13_pp_Hpm_tb,mass);
5221  CacheShiftReal(ip_ex_pp_Hpm_tb_ATLAS13_cache, NumPar, params, newResult);
5222  return newResult;
5223  }
5224 }
5225 
5226 double GeneralTHDMcache::ip_ex_bsgamma(double logtb, double logmHp){
5227  int NumPar = 2;
5228  double params[] = {logtb, logmHp};
5229 
5230  int i = CacheCheckReal(ip_ex_bsgamma_cache, NumPar, params);
5231  if (i>=0) {
5232  return ( ip_ex_bsgamma_cache[NumPar][i] );
5233  } else {
5234  double newResult = interpolate2D(arraybsgamma, logtb, logmHp);
5235  CacheShiftReal(ip_ex_bsgamma_cache, NumPar, params, newResult);
5236  return newResult;
5237  }
5238 }
5239 
5240 // Function needed to calculate some loop functions
5241 
5242 gslpp::complex GeneralTHDMcache::f_func(const double x) const{
5243  if(x<1) {
5244  gslpp::complex z = -gslpp::complex::i()*M_PI;
5245  return -pow(log((1.0+sqrt(1.0-x))/(1.0-sqrt(1.0-x)))+z,2)/4.0;
5246  }
5247  else {
5248  return pow(asin(sqrt(1.0/x)),2);
5249  }
5250 }
5251 
5252 gslpp::complex GeneralTHDMcache::g_func(const double x) const{
5253  if(x<1) {
5254  gslpp::complex z = -gslpp::complex::i()*M_PI;
5255  gslpp::complex gs1 = sqrt(1.0-x)*(log((1.0+sqrt(1.0-x))/(1.0-sqrt(1.0-x)))+z)/2.0;
5256  return gs1;
5257  }
5258  else {
5259  gslpp::complex gg1 = sqrt(x-1.0)*asin(sqrt(1.0/x));
5260  return gg1;
5261  }
5262 }
5263 
5264 gslpp::complex GeneralTHDMcache::Int1(const double tau, const double lambda) const{
5265  return tau*lambda/(tau-lambda)/2.0+tau*tau*lambda*lambda/((tau-lambda)
5266  *(tau-lambda))/2.0*(f_func(tau)-f_func(lambda))+tau*tau*lambda/((tau-lambda)
5267  *(tau-lambda))*(g_func(tau)-g_func(lambda));
5268 }
5269 
5270 gslpp::complex GeneralTHDMcache::Int2(const double tau, const double lambda) const{
5271  return -tau*lambda/(tau-lambda)/2.0*(f_func(tau)-f_func(lambda));
5272 }
5273 
5274  //Loop functions needed for decays and cross sections
5275 
5276 
5277 gslpp::complex GeneralTHDMcache::I_h_U(const double mHl2, const double Mu, const double Mc, const double Mt) const {
5278  int NumPar = 4;
5279  double params[] = {mHl2, Mu, Mc, Mt};
5280 
5281  int i = CacheCheck(I_h_U_cache, NumPar, params);
5282  if (i>=0) {
5283  return ( I_h_U_cache[NumPar][i] );
5284  } else {
5285  double TAUu=4.0*Mu*Mu/mHl2;
5286  double TAUc=4.0*Mc*Mc/mHl2;
5287  double TAUt=4.0*Mt*Mt/mHl2;
5288  gslpp::complex newResult = -(8./3.)*(TAUu*(1.0+(1.0-TAUu)*f_func(TAUu))
5289  +TAUc*(1.0+(1.0-TAUc)*f_func(TAUc))+TAUt*(1.0+(1.0-TAUt)*f_func(TAUt)));
5290  CacheShift(I_h_U_cache, NumPar, params, newResult);
5291  return newResult;
5292  }
5293 }
5294 
5295 gslpp::complex GeneralTHDMcache::I_HH_U(const double mHh2, const double Mc, const double Mt) const {
5296  int NumPar = 3;
5297  double params[] = {mHh2, Mc, Mt};
5298 
5299  int i = CacheCheck(I_HH_U_cache, NumPar, params);
5300  if (i>=0) {
5301  return ( I_HH_U_cache[NumPar][i] );
5302  } else {
5303  double TAUc=4.0*Mc*Mc/mHh2;
5304  double TAUt=4.0*Mt*Mt/mHh2;
5305  gslpp::complex newResult = -(8./3.)*(TAUc*(1.0+(1.0-TAUc)*f_func(TAUc))
5306  +TAUt*(1.0+(1.0-TAUt)*f_func(TAUt)));
5307  CacheShift(I_HH_U_cache, NumPar, params, newResult);
5308  return newResult;
5309  }
5310 }
5311 
5312 gslpp::complex GeneralTHDMcache::I_A_U(const double mA2, const double Mc, const double Mt) const {
5313  int NumPar = 3;
5314  double params[] = {mA2, Mc, Mt};
5315 
5316  int i = CacheCheck(I_A_U_cache, NumPar, params);
5317  if (i>=0) {
5318  return ( I_A_U_cache[NumPar][i] );
5319  } else {
5320  double TAUc=4.0*Mc*Mc/mA2;
5321  double TAUt=4.0*Mt*Mt/mA2;
5322  gslpp::complex newResult = -(8./3.)*(TAUc*f_func(TAUc)+TAUt*f_func(TAUt));
5323  CacheShift(I_A_U_cache, NumPar, params, newResult);
5324  return newResult;
5325  }
5326 }
5327 
5328 gslpp::complex GeneralTHDMcache::I_h_D(const double mHl2, const double Md, const double Ms, const double Mb) const {
5329  int NumPar = 4;
5330  double params[] = {mHl2, Md, Ms, Mb};
5331 
5332  int i = CacheCheck(I_h_D_cache, NumPar, params);
5333  if (i>=0) {
5334  return ( I_h_D_cache[NumPar][i] );
5335  } else {
5336  double TAUd=4.0*Md*Md/mHl2;
5337  double TAUs=4.0*Ms*Ms/mHl2;
5338  double TAUb=4.0*Mb*Mb/mHl2;
5339  gslpp::complex newResult = -(2./3.)*(TAUd*(1.0+(1.0-TAUd)*f_func(TAUd))
5340  +TAUs*(1.0+(1.0-TAUs)*f_func(TAUs))+TAUb*(1.0+(1.0-TAUb)*f_func(TAUb)));
5341  CacheShift(I_h_D_cache, NumPar, params, newResult);
5342  return newResult;
5343  }
5344 }
5345 
5346 gslpp::complex GeneralTHDMcache::I_HH_D(const double mHh2, const double Ms, const double Mb) const {
5347  int NumPar = 3;
5348  double params[] = {mHh2, Ms, Mb};
5349 
5350  int i = CacheCheck(I_HH_D_cache, NumPar, params);
5351  if (i>=0) {
5352  return ( I_HH_D_cache[NumPar][i] );
5353  } else {
5354  double TAUs=4.0*Ms*Ms/mHh2;
5355  double TAUb=4.0*Mb*Mb/mHh2;
5356  gslpp::complex newResult = -(2./3.)*(TAUs*(1.0+(1.0-TAUs)*f_func(TAUs))
5357  +TAUb*(1.0+(1.0-TAUb)*f_func(TAUb)));
5358  CacheShift(I_HH_D_cache, NumPar, params, newResult);
5359  return newResult;
5360  }
5361 }
5362 
5363 gslpp::complex GeneralTHDMcache::I_A_D(const double mA2, const double Ms, const double Mb) const {
5364  int NumPar = 3;
5365  double params[] = {mA2, Ms, Mb};
5366 
5367  int i = CacheCheck(I_A_D_cache, NumPar, params);
5368  if (i>=0) {
5369  return ( I_A_D_cache[NumPar][i] );
5370  } else {
5371  double TAUs=4.0*Ms*Ms/mA2;
5372  double TAUb=4.0*Mb*Mb/mA2;
5373  gslpp::complex newResult = -(2./3.)*(TAUs*f_func(TAUs)+TAUb*f_func(TAUb));
5374  CacheShift(I_A_D_cache, NumPar, params, newResult);
5375  return newResult;
5376  }
5377 }
5378 
5379 gslpp::complex GeneralTHDMcache::I_h_L(const double mHl2, const double Me, const double Mmu, const double Mtau) const {
5380  int NumPar = 4;
5381  double params[] = {mHl2, Me, Mmu, Mtau};
5382 
5383  int i = CacheCheck(I_h_L_cache, NumPar, params);
5384  if (i>=0) {
5385  return ( I_h_L_cache[NumPar][i] );
5386  } else {
5387  double TAUe=4.0*Me*Me/mHl2;
5388  double TAUmu=4.0*Mmu*Mmu/mHl2;
5389  double TAUtau=4.0*Mtau*Mtau/mHl2;
5390  gslpp::complex newResult = -2.0*(TAUe*(1.0+(1.0-TAUe)*f_func(TAUe))
5391  +TAUmu*(1.0+(1.0-TAUmu)*f_func(TAUmu))
5392  +TAUtau*(1.0+(1.0-TAUtau)*f_func(TAUtau)));
5393  CacheShift(I_h_L_cache, NumPar, params, newResult);
5394  return newResult;
5395  }
5396 }
5397 
5398 gslpp::complex GeneralTHDMcache::I_HH_L(const double mHh2, const double Mmu, const double Mtau) const {
5399  int NumPar = 3;
5400  double params[] = {mHh2, Mmu, Mtau};
5401 
5402  int i = CacheCheck(I_HH_L_cache, NumPar, params);
5403  if (i>=0) {
5404  return ( I_HH_L_cache[NumPar][i] );
5405  } else {
5406  double TAUmu=4.0*Mmu*Mmu/mHh2;
5407  double TAUtau=4.0*Mtau*Mtau/mHh2;
5408  gslpp::complex newResult = -2.0*(TAUmu*(1.0+(1.0-TAUmu)*f_func(TAUmu))+
5409  TAUtau*(1.0+(1.0-TAUtau)*f_func(TAUtau)));
5410  CacheShift(I_HH_L_cache, NumPar, params, newResult);
5411  return newResult;
5412  }
5413 }
5414 
5415 gslpp::complex GeneralTHDMcache::I_A_L(const double mA2, const double Mmu, const double Mtau) const {
5416  int NumPar = 3;
5417  double params[] = {mA2, Mmu, Mtau};
5418 
5419  int i = CacheCheck(I_A_L_cache, NumPar, params);
5420  if (i>=0) {
5421  return ( I_A_L_cache[NumPar][i] );
5422  } else {
5423  double TAUmu=4.0*Mmu*Mmu/mA2;
5424  double TAUtau=4.0*Mtau*Mtau/mA2;
5425  gslpp::complex newResult = -2.0*(TAUmu*f_func(TAUmu)+TAUtau*f_func(TAUtau));
5426  CacheShift(I_A_L_cache, NumPar, params, newResult);
5427  return newResult;
5428  }
5429 }
5430 
5431 gslpp::complex GeneralTHDMcache::I_H_W(const double mH, const double MW) const {
5432  int NumPar = 2;
5433  double params[] = {mH, MW};
5434 
5435  int i = CacheCheck(I_H_W_cache, NumPar, params);
5436  if (i>=0) {
5437  return ( I_H_W_cache[NumPar][i] );
5438  } else {
5439  double TAUw=4.0*MW*MW/(mH*mH);
5440  gslpp::complex newResult = 2.0 + 3.0*TAUw + 3.0*TAUw*(2.0-TAUw)*f_func(TAUw);
5441  CacheShift(I_H_W_cache, NumPar, params, newResult);
5442  return newResult;
5443  }
5444 }
5445 
5446 gslpp::complex GeneralTHDMcache::I_H_Hp(const double mHp2, const double mH) const {
5447  int NumPar = 2;
5448  double params[] = {mHp2, mH};
5449 
5450  int i = CacheCheck(I_H_Hp_cache, NumPar, params);
5451  if (i>=0) {
5452  return ( I_H_Hp_cache[NumPar][i] );
5453  } else {
5454  double TAUhp=4.0*mHp2/(mH*mH);
5455  gslpp::complex newResult = -TAUhp*(1.0-TAUhp*f_func(TAUhp));
5456  CacheShift(I_H_Hp_cache, NumPar, params, newResult);
5457  return newResult;
5458  }
5459 }
5460 
5461 gslpp::complex GeneralTHDMcache::A_h_U(const double mHl2, const double cW2, const double Mu, const double Mc, const double Mt, const double MZ) const {
5462  int NumPar = 6;
5463  double params[] = {mHl2, cW2, Mu, Mc, Mt, MZ};
5464 
5465  int i = CacheCheck(A_h_U_cache, NumPar, params);
5466  if (i>=0) {
5467  return ( A_h_U_cache[NumPar][i] );
5468  } else {
5469  double TAUu=4.0*Mu*Mu/mHl2;
5470  double TAUc=4.0*Mc*Mc/mHl2;
5471  double TAUt=4.0*Mt*Mt/mHl2;
5472  double LAMu=4.0*Mu*Mu/(MZ*MZ);
5473  double LAMc=4.0*Mc*Mc/(MZ*MZ);
5474  double LAMt=4.0*Mt*Mt/(MZ*MZ);
5475  double sW2=1.0-cW2;
5476  gslpp::complex newResult = -4.0*(1.0/2.0-4.0/3.0*sW2)*(Int1(TAUu,LAMu)+Int1(TAUc,LAMc)
5477  +Int1(TAUt,LAMt)-Int2(TAUu,LAMu)-Int2(TAUc,LAMc)-Int2(TAUt,LAMt));
5478  CacheShift(A_h_U_cache, NumPar, params, newResult);
5479  return newResult;
5480  }
5481 
5482 }
5483 
5484 gslpp::complex GeneralTHDMcache::A_HH_U(const double mHh2, const double cW2, const double Mc, const double Mt, const double MZ) const {
5485  int NumPar = 5;
5486  double params[] = {mHh2, cW2, Mc, Mt, MZ};
5487 
5488  int i = CacheCheck(A_HH_U_cache, NumPar, params);
5489  if (i>=0) {
5490  return ( A_HH_U_cache[NumPar][i] );
5491  } else {
5492  double TAUc=4.0*Mc*Mc/mHh2;
5493  double TAUt=4.0*Mt*Mt/mHh2;
5494  double LAMc=4.0*Mc*Mc/(MZ*MZ);
5495  double LAMt=4.0*Mt*Mt/(MZ*MZ);
5496  double sW2=1.0-cW2;
5497  gslpp::complex newResult = -4.0*(1.0/2.0-4.0/3.0*sW2)*(Int1(TAUc,LAMc)-Int2(TAUc,LAMc)
5498  +Int1(TAUt,LAMt)-Int2(TAUt,LAMt));
5499  CacheShift(A_HH_U_cache, NumPar, params, newResult);
5500  return newResult;
5501  }
5502 }
5503 
5504 gslpp::complex GeneralTHDMcache::A_A_U(const double mA2, const double cW2, const double Mc, const double Mt, const double MZ) const {
5505  int NumPar = 5;
5506  double params[] = {mA2, cW2, Mc, Mt, MZ};
5507 
5508  int i = CacheCheck(A_A_U_cache, NumPar, params);
5509  if (i>=0) {
5510  return ( A_A_U_cache[NumPar][i] );
5511  } else {
5512  double TAUc=4.0*Mc*Mc/mA2;
5513  double TAUt=4.0*Mt*Mt/mA2;
5514  double LAMc=4.0*Mc*Mc/(MZ*MZ);
5515  double LAMt=4.0*Mt*Mt/(MZ*MZ);
5516  double sW2=1.0-cW2;
5517  gslpp::complex newResult = -4.0*(1.0/2.0-4.0/3.0*sW2)*(-Int2(TAUc,LAMc)-Int2(TAUt,LAMt))/sqrt(sW2*cW2);
5518  CacheShift(A_A_U_cache, NumPar, params, newResult);
5519  return newResult;
5520  }
5521 }
5522 
5523 gslpp::complex GeneralTHDMcache::A_h_D(const double mHl2, const double cW2, const double Md, const double Ms, const double Mb, const double MZ) const {
5524  int NumPar = 6;
5525  double params[] = {mHl2, cW2, Md, Ms, Mb, MZ};
5526 
5527  int i = CacheCheck(A_h_D_cache, NumPar, params);
5528  if (i>=0) {
5529  return ( A_h_D_cache[NumPar][i] );
5530  } else {
5531  double TAUd=4.0*Md*Md/mHl2;
5532  double TAUs=4.0*Ms*Ms/mHl2;
5533  double TAUb=4.0*Mb*Mb/mHl2;
5534  double LAMd=4.0*Md*Md/(MZ*MZ);
5535  double LAMs=4.0*Ms*Ms/(MZ*MZ);
5536  double LAMb=4.0*Mb*Mb/(MZ*MZ);
5537  double sW2=1.0-cW2;
5538  gslpp::complex newResult = 2.0*(-1.0/2.0+2.0/3.0*sW2)*(Int1(TAUd,LAMd)+Int1(TAUs,LAMs)
5539  +Int1(TAUb,LAMb)-Int2(TAUd,LAMd)-Int2(TAUs,LAMs)-Int2(TAUb,LAMb));
5540  CacheShift(A_h_D_cache, NumPar, params, newResult);
5541  return newResult;
5542  }
5543 }
5544 
5545 gslpp::complex GeneralTHDMcache::A_HH_D(const double mHh2, const double cW2, const double Ms, const double Mb, const double MZ) const {
5546  int NumPar = 5;
5547  double params[] = {mHh2, cW2, Ms, Mb, MZ};
5548 
5549  int i = CacheCheck(A_HH_D_cache, NumPar, params);
5550  if (i>=0) {
5551  return ( A_HH_D_cache[NumPar][i] );
5552  } else {
5553  double TAUs=4.0*Ms*Ms/mHh2;
5554  double TAUb=4.0*Mb*Mb/mHh2;
5555  double LAMs=4.0*Ms*Ms/(MZ*MZ);
5556  double LAMb=4.0*Mb*Mb/(MZ*MZ);
5557  double sW2=1.0-cW2;
5558  gslpp::complex newResult = 2.0*(-1.0/2.0+2.0/3.0*sW2)*(Int1(TAUs,LAMs)-Int2(TAUs,LAMs)
5559  +Int1(TAUb,LAMb)-Int2(TAUb,LAMb));
5560  CacheShift(A_HH_D_cache, NumPar, params, newResult);
5561  return newResult;
5562  }
5563 }
5564 
5565 gslpp::complex GeneralTHDMcache::A_A_D(const double mA2, const double cW2, const double Ms, const double Mb, const double MZ) const {
5566  int NumPar = 5;
5567  double params[] = {mA2, cW2, Ms, Mb, MZ};
5568 
5569  int i = CacheCheck(A_A_D_cache, NumPar, params);
5570  if (i>=0) {
5571  return ( A_A_D_cache[NumPar][i] );
5572  } else {
5573  double TAUs=4.0*Ms*Ms/mA2;
5574  double TAUb=4.0*Mb*Mb/mA2;
5575  double LAMs=4.0*Ms*Ms/(MZ*MZ);
5576  double LAMb=4.0*Mb*Mb/(MZ*MZ);
5577  double sW2=1.0-cW2;
5578  gslpp::complex newResult = 2.0*(-1.0/2.0+2.0/3.0*sW2)*(-Int2(TAUs,LAMs)-Int2(TAUb,LAMb))/sqrt(sW2*cW2);
5579  CacheShift(A_A_D_cache, NumPar, params, newResult);
5580  return newResult;
5581  }
5582 }
5583 
5584 gslpp::complex GeneralTHDMcache::A_h_L(const double mHl2, const double cW2, const double Me, const double Mmu, const double Mtau, const double MZ) const {
5585  int NumPar = 6;
5586  double params[] = {mHl2, cW2, Me, Mmu, Mtau, MZ};
5587 
5588  int i = CacheCheck(A_h_L_cache, NumPar, params);
5589  if (i>=0) {
5590  return ( A_h_L_cache[NumPar][i] );
5591  } else {
5592  double TAUe=4.0*Me*Me/mHl2;
5593  double TAUmu=4.0*Mmu*Mmu/mHl2;
5594  double TAUtau=4.0*Mtau*Mtau/mHl2;
5595  double LAMe=4.0*Me*Me/(MZ*MZ);
5596  double LAMmu=4.0*Mmu*Mmu/(MZ*MZ);
5597  double LAMtau=4.0*Mtau*Mtau/(MZ*MZ);
5598  double sW2=1.0-cW2;
5599  gslpp::complex newResult = 2.0*(-1.0/2.0+2.0*sW2)*(Int1(TAUe,LAMe)+Int1(TAUmu,LAMmu)
5600  +Int1(TAUtau,LAMtau)-Int2(TAUe,LAMe)-Int2(TAUmu,LAMmu)
5601  -Int2(TAUtau,LAMtau));
5602  CacheShift(A_h_L_cache, NumPar, params, newResult);
5603  return newResult;
5604  }
5605 }
5606 
5607 gslpp::complex GeneralTHDMcache::A_HH_L(const double mHh2, const double cW2, const double Mmu, const double Mtau, const double MZ) const {
5608  int NumPar = 5;
5609  double params[] = {mHh2, cW2, Mmu, Mtau, MZ};
5610 
5611  int i = CacheCheck(A_HH_L_cache, NumPar, params);
5612  if (i>=0) {
5613  return ( A_HH_L_cache[NumPar][i] );
5614  } else {
5615  double TAUmu=4.0*Mmu*Mmu/mHh2;
5616  double TAUtau=4.0*Mtau*Mtau/mHh2;
5617  double LAMmu=4.0*Mmu*Mmu/(MZ*MZ);
5618  double LAMtau=4.0*Mtau*Mtau/(MZ*MZ);
5619  double sW2=1.0-cW2;
5620  gslpp::complex newResult = 2.0*(-1.0/2.0+2.0*sW2)*(Int1(TAUmu,LAMmu)-Int2(TAUmu,LAMmu)
5621  +Int1(TAUtau,LAMtau)-Int2(TAUtau,LAMtau));
5622  CacheShift(A_HH_L_cache, NumPar, params, newResult);
5623  return newResult;
5624  }
5625 }
5626 
5627 
5628 
5629 gslpp::complex GeneralTHDMcache::A_A_L(const double mA2, const double cW2, const double Mmu, const double Mtau, const double MZ) const {
5630  int NumPar = 5;
5631  double params[] = {mA2, cW2, Mmu, Mtau, MZ};
5632 
5633  int i = CacheCheck(A_A_L_cache, NumPar, params);
5634  if (i>=0) {
5635  return ( A_A_L_cache[NumPar][i] );
5636  } else {
5637  double TAUmu=4.0*Mmu*Mmu/mA2;
5638  double TAUtau=4.0*Mtau*Mtau/mA2;
5639  double LAMmu=4.0*Mmu*Mmu/(MZ*MZ);
5640  double LAMtau=4.0*Mtau*Mtau/(MZ*MZ);
5641  double sW2=1.0-cW2;
5642  gslpp::complex newResult = 2.0*(-1.0/2.0+2.0*sW2)*(-Int2(TAUmu,LAMmu)-Int2(TAUtau,LAMtau))/sqrt(sW2*cW2);
5643  CacheShift(A_A_L_cache, NumPar, params, newResult);
5644  return newResult;
5645  }
5646 }
5647 
5648 gslpp::complex GeneralTHDMcache::A_H_W(const double mH, const double cW2, const double MW, const double MZ) const {
5649  int NumPar = 4;
5650  double params[] = {mH, cW2, MW, MZ};
5651 
5652  int i = CacheCheck(A_H_W_cache, NumPar, params);
5653  if (i>=0) {
5654  return ( A_H_W_cache[NumPar][i] );
5655  } else {
5656  double TAUw=4.0*MW*MW/(mH*mH);
5657  double LAMw=4.0*MW*MW/(MZ*MZ);
5658  double sW2=1.0-cW2;
5659  gslpp::complex newResult = -sqrt(cW2/sW2)*(4.0*(3.0-sW2/cW2)*Int2(TAUw,LAMw)
5660  +((1.0+2.0/TAUw)*sW2/cW2-(5.0+2.0/TAUw))*Int1(TAUw,LAMw));
5661  CacheShift(A_H_W_cache, NumPar, params, newResult);
5662  return newResult;
5663  }
5664 }
5665 
5666 gslpp::complex GeneralTHDMcache::A_H_Hp(const double mHp2, const double mH, const double cW2, const double MZ) const {
5667  int NumPar = 4;
5668  double params[] = {mHp2, mH, cW2, MZ};
5669 
5670  int i = CacheCheck(A_H_Hp_cache, NumPar, params);
5671  if (i>=0) {
5672  return ( A_H_Hp_cache[NumPar][i] );
5673  } else {
5674  double TAUhp=4.0*mHp2/(mH*mH);
5675  double LAMhp=4.0*mHp2/(MZ*MZ);
5676  double sW2=1.0-cW2;
5677  gslpp::complex newResult = (1.0-2.0*sW2)/sqrt(cW2*sW2)*Int1(TAUhp,LAMhp);
5678  CacheShift(A_H_Hp_cache, NumPar, params, newResult);
5679  return newResult;
5680  }
5681 }
5682 
5683 int GeneralTHDMcache::HSTheta (const double x) const{
5684  if(x<0) return 0.0;
5685  else return 1.0;
5686 }
5687 
5688 
5689 double GeneralTHDMcache::KaellenFunction(const double a2, const double b2, const double c2) const{
5690  int NumPar = 3;
5691  double params[] = {a2, b2, c2};
5692 
5693  int i = CacheCheckReal(KaellenFunction_cache, NumPar, params);
5694  if (i>=0) {
5695  return ( KaellenFunction_cache[NumPar][i] );
5696  }
5697  else {
5698  double newResult = 0.0;
5699  double x = (a2-b2-c2)*(a2-b2-c2)-4.0*b2*c2;
5700  if(x>0) newResult = sqrt(std::fabs(x/a2))/2.0;
5701  CacheShiftReal(KaellenFunction_cache, NumPar, params, newResult);
5702  return newResult;
5703  }
5704 }
5705 
5706 
5707  double GeneralTHDMcache::cW2GTHDM(const double c02) const{
5708  return c02;
5709  }
5710 
5711 
5712 
5713  double GeneralTHDMcache::MWGTHDM(const double MW) const{
5714  return MW;
5715  }
5716 
5717 
5718 
5719  double GeneralTHDMcache::beta(const double mf, const double m_2) const
5720  {
5721  return sqrt(1.0-4.0*mf*mf/m_2);
5722  }
5723 
5724 
5725  double GeneralTHDMcache::beta_mt_sq(const double mt,const double m_2) const
5726  {
5727  if (4.0*mt*mt/m_2 < 1 )
5728  {
5729  return 1.0-4.0*mt*mt/m_2;
5730  }
5731  else
5732  {
5733  return -(1.0-4.0*mt*mt/m_2);
5734  }
5735  }
5736 
5737 
5738  double GeneralTHDMcache::lambdaijk(const double Ri1,const double Ri2,const double Ri3,const double Rj1,const double Rj2,const double Rj3, const double Rk1,const double Rk2,const double Rk3, const double lambda1H, const double lambda3H, const double lambda4H, const double Relambda5H, const double Imlambda5H, const double Relambda6H, const double Imlambda6H, const double Relambda7H, const double Imlambda7H) const
5739  {
5740  return (1.0/2.0)*vev*(Imlambda7H*(-Ri3*Rj3*Rk3 - Ri2*Rj2*Rk3) - 3.0*Imlambda6H*Ri1*Rj1*Rk3
5741  + lambda1H*Ri1*Rj1*Rk1 + Relambda7H*Ri2*Rj2*Rk2 + 3.0*Relambda6H*Ri1*Rj1*Rk2
5742  +(Relambda5H + lambda3H + lambda4H)*Ri1*Rj2*Rk2 - (2.0*Relambda5H - lambda3H - lambda4H)*Ri1*Rj3*Rk3
5743  + Relambda7H*Ri2*Rj3*Rk3 - Imlambda5H*Ri1*Rj2*Rk3);
5744  }
5745 
5746  double GeneralTHDMcache::lambdaipm(const double Ri1,const double Ri2, const double Ri3) const
5747  {
5748  return -vev*(lambda3H*Ri1 + Relambda7H*Ri2 - Imlambda7H*Ri3);
5749  }
5750 
5752 {
5753 
5754  m2_2 = mH2sq;
5755  m2 = sqrt(m2_2);
5756  m3_2 = mH3sq;
5757  m3 = sqrt(m3_2);
5758 
5759 
5760  double GF = 1/(sqrt(2.0)*vev*vev);
5761  double sW2=1.0-cW2;
5762 
5763  //FLAG to select only the model in which all the couplings are the same (by families)
5764 
5765  if (!myGTHDM->getATHDMflag())
5766  {
5767  throw std::runtime_error("Signal strengths are only available in the A2HDM.");
5768  }
5769 
5770  /*complex i */
5772 
5773  Mt=myGTHDM->getQuarks(QCD::TOP).getMass();
5774  Mb=myGTHDM->getQuarks(QCD::BOTTOM).getMass();
5775  Mtau=myGTHDM->getLeptons(StandardModel::TAU).getMass();
5776  Mc=myGTHDM->getQuarks(QCD::CHARM).getMass();
5777  Ms=myGTHDM->getQuarks(QCD::STRANGE).getMass();
5778  Mmu=myGTHDM->getLeptons(StandardModel::MU).getMass();
5779  Mu=myGTHDM->getQuarks(QCD::UP).getMass();
5780  Md=myGTHDM->getQuarks(QCD::DOWN).getMass();
5781  Me=myGTHDM->getLeptons(StandardModel::ELECTRON).getMass();
5782  MW=MWGTHDM(myGTHDM->Mw_tree());
5783  cW2=cW2GTHDM(myGTHDM->c02());
5784 // MZ=myGTHDM->getMz();
5785 
5786 
5787 
5788  //The 125 GeV is always defined as the one of m_1, so we don't use the mass ordering
5789  double m1_2 = mH1sq;
5790  double m1 = mHl;
5791 
5792  //fermionic couplings for phi1
5793 
5794  gslpp::complex yu1 = myGTHDM->getyu1();
5795  gslpp::complex yd1 = myGTHDM->getyd1();
5796  gslpp::complex yl1 = myGTHDM->getyl1();
5797 
5798  yu1R = myGTHDM->getyu1R();
5799  yd1R = myGTHDM->getyd1R();
5800  yl1R = myGTHDM->getyl1R();
5801 
5802 
5803  //The Standard Model h branching ratios
5804 
5805  BrSM_htobb = 5.77e-1;
5806  BrSM_htotautau = 6.32e-2;
5807  BrSM_htogaga = 2.28e-3;
5808  double BrSM_htoWW = 2.15e-1;
5809  double BrSM_htoZZ = 2.64e-2;
5810  double BrSM_htogg = 8.57e-2;
5811  double BrSM_htoZga = 1.54e-3;
5812  double BrSM_htocc = 2.91e-2;
5813 
5814  //The ggH cross section in the SM at 8 TeV
5815  double SigmaggF8 = myGTHDM->computeSigmaggH(8.0);
5816  //The ggH cross section in the SM at 13 TeV.
5817  double SigmaggF13 = myGTHDM->computeSigmaggH(13.0);
5818  //The square of the top-quark contribution to the ggH cross section in the SM at 8 TeV
5819  double Sigmaggh_tt8 = myGTHDM->computeSigmaggH_tt(8.0);
5820  //The square of the top-quark contribution to the ggH cross section in the SM at 13 TeV
5821 // double Sigmaggh_tt13 = myTHDM->computeSigmaggH_tt(13.0);
5822  //The square of the bottom-quark contribution to the ggH cross section in the SM at 8 TeV
5823  double Sigmaggh_bb8 = myGTHDM->computeSigmaggH_bb(8.0);
5824  //The square of the bottom-quark contribution to the ggH cross section in the SM at 13 TeV
5825 // double Sigmaggh_bb13 = myTHDM->computeSigmaggH_bb(13.0);
5826  //The ttH production cross section in the SM at 8 TeV
5827  double Sigmatth8 = myGTHDM->computeSigmattH(8.0);
5828  //The ttH production cross section in the SM at 13 TeV
5829  double Sigmatth13 = myGTHDM->computeSigmattH(13.0);
5830  //The bbH production cross section in the SM at 13 TeV
5831  double Sigmabbh13 = ip_cs_pptobbH_13(mHl);
5832  //The VBF plus Vh production cross section in the SM at 13 TeV
5833  double SigmaVBFVh13 = (myGTHDM->computeSigmaVBF(13.0)+myGTHDM->computeSigmaWH(13.0)+myGTHDM->computeSigmaZH(13.0));
5834 
5835 
5837 
5838 
5839  //gg -> A (phi odd) production cross section ratio at 8 TeV, top loop only over total
5840  // double rSigmagghO_t8 = ip_csr_ggA_t_8(m1);
5841  //gg -> A (phi odd) production cross section ratio at 8 TeV, bottom loop only over total
5842  double rSigmagghO_b8 = ip_csr_ggA_b_8(m1);
5843 
5844  //gg -> A (phiodd) production cross section at 8 TeV, total
5845  double SigmagghO_8 = ip_cs_ggtoA_8(m1);
5846 
5847 
5848  //gg -> A (phiodd) production cross section at 13 TeV, total
5849  // double SigmagghO_13 = ip_cs_ggtoA_13(m1);
5850 
5851  // beta_h_t = beta(Mt, m1_2);
5852  beta_h_t = sqrt(-1.0+4.0*Mt*Mt/m1_2);
5853  beta_h_b = beta(Mb, m1_2);
5854  beta_h_tau = beta(Mtau, m1_2);
5855  beta_h_c = beta(Mc, m1_2);
5856  beta_h_mu = beta(Mmu, m1_2);
5857 
5858  /* r_ii is the ratio of the squared 2HDM vertex coupling of h to
5859  * the particle i and the respective squared SM coupling. Where separated
5860  E means the even part (coming from the CP-even scalar) and O
5861  the odd part (coming from the CP-odd scalar) */
5862 
5863  rh_QuQuE= yu1.real()*yu1.real();
5864  rh_QuQuO= yu1.imag()*yu1.imag();
5865  rh_QdQdE= yd1.real()*yd1.real();
5866  rh_QdQdO= yd1.imag()*yd1.imag();
5867  rh_QlQlE= yl1.real()*yl1.real();
5868  rh_QlQlO= yl1.imag()*yl1.imag();
5869  rh_ggE = yu1.real()*yd1.real() + (yu1.real()*yu1.real() - yu1.real()*yd1.real())*(Sigmaggh_tt8/SigmaggF8) + (yd1.real()*yd1.real() - yu1.real()*yd1.real())*(Sigmaggh_bb8/SigmaggF8);
5870  rh_ggO = yu1.imag()*yu1.imag() + (yu1.imag()*yu1.imag() - yu1.imag()*yd1.imag())*rSigmagghO_b8 + (yd1.imag()*yd1.imag() - yu1.imag()*yd1.imag())*rSigmagghO_b8;
5871  rh_gg = rh_ggE+rh_ggO*(SigmagghO_8/SigmaggF8);
5872  rh_VV=R11_GTHDM*R11_GTHDM;
5873 
5874  /*Loop functions needed to rh_gaga and rh_Zga ...*/
5875 
5876 
5877  gslpp::complex fermU=I_h_U(m1_2,Mu,Mc,Mt);
5878  gslpp::complex fermD=I_h_D(m1_2,Md,Ms,Mb);
5879  gslpp::complex fermL=I_h_L(m1_2,Me,Mmu,Mtau);
5880  gslpp::complex I_hSM_W=I_H_W(mHl,MW);
5881  gslpp::complex I_h_W=R11_GTHDM*I_hSM_W;
5882 
5883 
5884  gslpp::complex I_hSM_F= fermU+fermD+fermL;
5885  gslpp::complex I_hE_F= yu1.real()*fermU+ yd1.real()*fermD+yl1.real()*fermL;
5886 
5887 
5888  /*Coupling between h and two charged Higgs*/
5889 
5890  double lambdahHpHm = lambdaipm(R11_GTHDM, R12_GTHDM, R13_GTHDM);
5891 
5892  gslpp::complex I_h_Hp=(vev)/(2.0*mHp2)*I_H_Hp(mHp2,m1)*lambdahHpHm;
5893 
5894  /*CP ODD */
5895 
5896  gslpp::complex I_h_Ux=I_A_U(m1_2,Mc,Mt);
5897  gslpp::complex I_h_Dx=I_A_D(m1_2,Ms,Mb);
5898  gslpp::complex I_h_Lx=I_A_L(m1_2,Mmu,Mtau);
5899 
5900  gslpp::complex I_hO_F = yu1.imag()*I_h_Ux + yd1.imag()*I_h_Dx + yl1.imag()*I_h_Lx;
5901 
5902  // double Gamma_hgaga=(GF*Ale*Ale*m1*m1*m1/(sqrt(2.0)*128.0*M_PI*M_PI*M_PI))*((I_hE_F+I_h_W+I_h_Hp).abs2()+ (I_hO_F).abs2());
5903  rh_gaga = ((I_hE_F+I_h_W+I_h_Hp).abs2()+ (I_hO_F).abs2())/(I_hSM_F +I_hSM_W).abs2();
5904  /*Decay to Z gamma
5905  CP-EVEN PART*/
5906 
5907  gslpp::complex A_hE_Ux = A_h_U(m1_2,cW2,Mu,Mc,Mt,MZ);
5908  gslpp::complex A_hE_Dx = A_h_D(m1_2,cW2,Md,Ms,Mb,MZ);
5909  gslpp::complex A_hE_Lx = A_h_L(m1_2,cW2,Me,Mmu,Mtau,MZ);
5910  gslpp::complex A_hSM_W = A_H_W(m1,cW2,MW,MZ);
5911  gslpp::complex A_h_W = R11_GTHDM*A_hSM_W;
5912 
5913  gslpp::complex A_hSM_F = (A_hE_Ux+ A_hE_Dx+ A_hE_Lx)/sqrt(sW2*cW2);
5914  gslpp::complex A_hE_F = (yu1.real()*A_hE_Ux+ yd1.real()*A_hE_Dx+ yl1.real()*A_hE_Lx)/sqrt(sW2*cW2);
5915 
5916  gslpp::complex A_h_Hp =(vev)/(2.0*mHp2)*A_H_Hp(mHp2,m1,cW2,MZ)*(lambdahHpHm);
5917 
5918  /*CP-ODD PART*/
5919 
5920  gslpp::complex A_hO_Ux = A_A_U(m1_2,cW2,Mc,Mt,MZ);
5921  gslpp::complex A_hO_Dx = A_A_D(m1_2,cW2,Ms,Mb,MZ);
5922  gslpp::complex A_hO_Lx = A_A_L(m1_2,cW2,Mmu,Mtau,MZ);
5923 
5924  gslpp::complex A_hO_F=yu1.imag()*A_hO_Ux + yd1.imag()*A_hO_Dx + yl1.imag()*A_hO_Lx;
5925 
5926  // double Gamma_hZga=HSTheta(m1-MZ)*GF*Ale*Ale*m1*m1*m1/(sqrt(2.0)*64.0*M_PI*M_PI*M_PI)*(1.0-MZ*MZ/(m1*m1))*(1.0-MZ*MZ/(m1*m1))*(1.0-MZ*MZ/(m1*m1))*((A_hE_F+A_h_W+A_h_Hp).abs2()+ A_hO_F.abs2());
5927  rh_Zga = ((A_hE_F+A_h_W+A_h_Hp).abs2()+ A_hO_F.abs2())/(A_hSM_F +A_hSM_W ).abs2();
5928 
5929  /*Decay to gluons*/
5930 
5931  double Gamma_hggSM=GF*Als*Als*m1*m1*m1/(sqrt(2.0)*16.0*M_PI*M_PI*M_PI)*(9.0/4.0)*(fermU/4.0+fermD).abs2();
5932 
5933  double Gamma_hgg=rh_gg*GF*Als*Als*m1*m1*m1/(sqrt(2.0)*16.0*M_PI*M_PI*M_PI)*(9.0/4.0)*(fermU/4.0+fermD).abs2();
5934  double lambda122 = (2.0)*(lambdaijk(R11, R21, R31, R12, R22, R32, R11, R21, R31, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) + lambdaijk(R12, R22, R32, R11, R21, R31, R11, R21, R31, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) + lambdaijk(R12, R22, R32, R11, R21, R31, R11, R21, R31, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) );
5935  double Gamma_hHH = HSTheta(m1 - 2.0*m2)*(KaellenFunction(m1_2,m2_2,m2_2)*lambda122*lambda122)/(32.0*M_PI);
5936 
5937  double lambda133 = (vev)*(Relambda7H*R21 - (2.0*Relambda5H - lambda3H - lambda4H)*R11);
5938  double Gamma_hAA = HSTheta(m1 - 2.0*m3)*(KaellenFunction(m1_2,m3_2,m3_2)*lambda133*lambda133)/(32.0*M_PI);;
5939 
5940 
5941  // /* ggF_tth8 is the ratio of the THDM and SM cross sections for ggF or tth production at 8 TeV*/
5942  // ggF_tth8 = (SigmaggF8*rh_ggE + SigmagghO_8*rh_ggO + Sigmatth8*(rh_QuQuE + rh_QuQuO/(beta(Mc, m1_2)*beta(Mc, m1_2))))/(SigmaggF8 + Sigmatth8);
5943  // /* ggF_tth13 is the ratio of the THDM and SM cross sections for ggF or tth production at 13 TeV */
5944  // ggF_tth13 = (SigmaggF13*rh_ggE + SigmagghO_13*rh_ggO + Sigmatth8*(rh_QuQuE + rh_QuQuO/(beta(Mc, m1_2)*beta(Mc, m1_2))))/(SigmaggF13 + Sigmatth13);
5945  // /* pph13 is the ratio of the THDM and SM cross sections for an h production at 13 TeV */
5946  // pph13 = (SigmaggF13*rh_ggE + SigmagghO_13*rh_ggO+ SigmaVBFVh13*rh_VV + Sigmatth13*(rh_QuQuE + rh_QuQuO/(beta(Mc, m1_2)*beta(Mc, m1_2))) + Sigmabbh13*(rh_QdQdE + rh_QdQdE/(beta(Mb, m1_2)*beta(Mb, m1_2))))/(SigmaggF13 + SigmaVBFVh13 + Sigmatth13 + Sigmabbh13);
5947  // /* VBF_Vh is the ratio of the THDM and SM cross sections for VBF or Vh production */
5948  // VBF_Vh = rh_VV;
5949 
5950  /* ggF_tth8 is the ratio of the THDM and SM cross sections for ggF or tth production at 8 TeV*/
5951  ggF_tth8 = (SigmaggF8*rh_gg + Sigmatth8*(rh_QuQuE + rh_QuQuO/(beta(Mc, m1_2)*beta(Mc, m1_2))))/(SigmaggF8 + Sigmatth8);
5952  /* ggF_tth13 is the ratio of the THDM and SM cross sections for ggF or tth production at 13 TeV */
5953  ggF_tth13 = (SigmaggF13*rh_gg + Sigmatth8*(rh_QuQuE + rh_QuQuO/(beta(Mc, m1_2)*beta(Mc, m1_2))))/(SigmaggF13 + Sigmatth13);
5954  /* pph13 is the ratio of the THDM and SM cross sections for an h production at 13 TeV */
5955  pph13 = (SigmaggF13*rh_gg+ SigmaVBFVh13*rh_VV + Sigmatth13*(rh_QuQuE + rh_QuQuO/(beta(Mc, m1_2)*beta(Mc, m1_2))) + Sigmabbh13*(rh_QdQdE + rh_QdQdE/(beta(Mb, m1_2)*beta(Mb, m1_2))))/(SigmaggF13 + SigmaVBFVh13 + Sigmatth13 + Sigmabbh13);
5956  /* VBF_Vh is the ratio of the THDM and SM cross sections for VBF or Vh production */
5957  VBF_Vh = rh_VV;
5958 
5959  sumModBRs = BrSM_htobb*(rh_QdQdE + rh_QdQdO/(beta(Mb, m1_2)*beta(Mb, m1_2)))
5960  + (BrSM_htoWW+BrSM_htoZZ)*rh_VV
5961  + BrSM_htotautau*(rh_QlQlE + rh_QlQlO/(beta(Mtau, m1_2)*beta(Mtau, m1_2)))
5962  + BrSM_htogaga*rh_gaga
5963  + BrSM_htogg*rh_gg
5964  + BrSM_htoZga*rh_Zga
5965  + BrSM_htocc*(rh_QuQuE + rh_QuQuO/(beta(Mc, m1_2)*beta(Mc, m1_2)));
5966  Gamma_h = sumModBRs*myGTHDM->computeGammaHTotal() + Gamma_hHH + Gamma_hAA;
5967 
5968  GTHDM_BR_h_bb=(rh_QdQdE + rh_QdQdO/(beta(Mb, m1_2)*beta(Mb, m1_2)))*BrSM_htobb/sumModBRs;
5969  GTHDM_BR_h_WW = rh_VV*BrSM_htoWW/sumModBRs;
5970  GTHDM_BR_h_ZZ = rh_VV*BrSM_htoZZ/sumModBRs;
5971  GTHDM_BR_h_tautau = BrSM_htotautau*(rh_QlQlE + rh_QlQlO/(beta(Mtau, m1_2)*beta(Mtau, m1_2)))/sumModBRs;
5972  GTHDM_BR_h_cc =(rh_QuQuE + rh_QuQuO/(beta(Mc, m1_2)*beta(Mc, m1_2)))*BrSM_htocc/sumModBRs;
5973  GTHDM_BR_h_gaga = rh_gaga*BrSM_htogaga/sumModBRs;
5974  GTHDM_BR_h_gg = (Gamma_hgg/Gamma_hggSM)*BrSM_htogg/sumModBRs;
5975 
5976 }
5977 
5979 {
5980 
5981  m2_2 = mH2sq;
5982  m2 = sqrt(m2_2);
5983  m3_2 = mH3sq;
5984  m3 = sqrt(m3_2);
5985 
5986  double GF=1/(sqrt(2.0)*vev*vev);
5987  double sW2=1.0-cW2;
5988 
5989  //FLAG to select only the model in which all the couplings are the same (by families)
5990  if (!myGTHDM->getATHDMflag())
5991  {
5992  throw std::runtime_error("Direct Searches are only aviable in the A2HDM.");
5993  }
5994 
5995  /*complex i */
5997 
5998 
5999  //fermionic couplings for phi2
6000 
6001  gslpp::complex yu2 = R21 + (R22 - i*R23)*su.conjugate();
6002  gslpp::complex yd2 = R21 + (R22 + i*R23)*sd;
6003  gslpp::complex yl2 = R21 + (R22 + i*R23)*sl;
6004 
6005 
6006  yu2R = R21_GTHDM + (R22_GTHDM)*su.real();
6007  yd2R = R21_GTHDM + (R22_GTHDM)*sd.real();
6008  yl2R = R21_GTHDM + (R22_GTHDM)*sl.real();
6009 
6010 
6011 
6012  //These cross sections ratios are necessary for rphi2_gg
6013  //At 8 TeV
6014 
6015  //SM gg -> H (phi even) production cross section ratio at 8 TeV, top loop only over total
6016  double rSigmaggphi2E_t8 = ip_csr_ggH_t_8(m2);
6017  //SM gg -> H (phi even) production cross section ratio at 8 TeV, bottom loop only over total
6018  double rSigmaggphi2E_b8 = ip_csr_ggH_b_8(m2);
6019  //gg -> H (phieven) production cross section at 8 TeV, total
6020  // double Sigmaggphi2E_8 = ip_cs_ggtoH_8(m2);
6021 
6022 
6023  //gg -> A (phi odd) production cross section ratio at 8 TeV, top loop only over total
6024  double rSigmaggphi2O_t8 = ip_csr_ggA_t_8(m2);
6025  //gg -> A (phi odd) production cross section ratio at 8 TeV, bottom loop only over total
6026  double rSigmaggphi2O_b8 = ip_csr_ggA_b_8(m2);
6027 
6028  //gg -> A (phiodd) production cross section at 8 TeV, total
6029  // double Sigmaggphi2O_8 = ip_cs_ggtoA_8(m2);
6030 
6031 
6032  /* r_ii is the ratio of the squared 2HDM vertex coupling of phi2
6033  * to the particle phi2 and the respective squared SM coupling.
6034  * phi2 is fixed to be the non-SM and lightests (phi2), but can be translated*/
6035 
6036  double rphi2_QuQuE= yu2.real()*yu2.real();
6037  double rphi2_QuQuO= yu2.imag()*yu2.imag();
6038  double rphi2_QdQdE= yd2.real()*yd2.real();
6039  double rphi2_QdQdO= yd2.imag()*yd2.imag();
6040  double rphi2_QlQlE= yl2.real()*yl2.real();
6041  double rphi2_QlQlO= yl2.imag()*yl2.imag();
6042  rphi2_ggE = yu2.real()*yd2.real() + (yu2.real()*yu2.real() - yu2.real()*yd2.real())*rSigmaggphi2E_t8 + (yd2.real()*yd2.real() - yu2.real()*yd2.real())*rSigmaggphi2E_b8;
6043  rphi2_ggO = yu2.imag()*yu2.imag() + (yu2.imag()*yu2.imag() - yu2.imag()*yd2.imag())*rSigmaggphi2O_t8 + (yd2.imag()*yd2.imag() - yu2.imag()*yd2.imag())*rSigmaggphi2O_b8;
6044  rphi2_VV=R21*R21;
6045 
6046 
6047 
6048  /*Gamma_phi2gaga and Gamma_phi2Zga expressions ...*/
6049 
6050  /*Decay to photons. The fermionic contribution has a CP-even part (HH) and a CP-odd (A)*/
6051  /*CP EVEN*/
6052 
6053 
6054  gslpp::complex I_HH2_Ux=I_HH_U(m2_2,Mc,Mt);
6055  gslpp::complex I_HH2_Dx=I_HH_D(m2_2,Ms,Mb);
6056  gslpp::complex I_HH2_Lx=I_HH_L(m2_2,Mmu,Mtau);
6057  gslpp::complex I_phi2E_F= yu2.real()*I_HH2_Ux+ yd2.real()*I_HH2_Dx+yl2.real()*I_HH2_Lx;
6058 
6059  gslpp::complex I_phi2_W=R21*I_H_W(m2,MW);
6060 
6061 
6062  double lambdaphi2HpHm = lambdaipm(R21, R22, R32);
6063  gslpp::complex I_phi2_Hp=(vev*vev)/(2.0*mHp2)*I_H_Hp(mHp2,m2)*(lambdaphi2HpHm);
6064 
6065 
6066  /*CP ODD */
6067 
6068  gslpp::complex I_A2_Ux=I_A_U(m2_2,Mc,Mt);
6069  gslpp::complex I_A2_Dx=I_A_D(m2_2,Ms,Mb);
6070  gslpp::complex I_A2_Lx=I_A_L(m2_2,Mmu,Mtau);
6071 
6072  gslpp::complex I_phi2O_F = yu2.imag()*I_A2_Ux + yd2.imag()*I_A2_Dx + yl2.imag()*I_A2_Lx;
6073 
6074  double Gamma_phi2gaga=(GF*Ale*Ale*m2*m2*m2/(sqrt(2.0)*128.0*M_PI*M_PI*M_PI))*((I_phi2E_F+I_phi2_W+I_phi2_Hp).abs2()
6075  + (I_phi2O_F).abs2());
6076 
6077  /*Decay to Z gamma
6078  CP-EVEN PART*/
6079 
6080  gslpp::complex A_HH2_Ux = A_HH_U(m2_2,cW2,Mc,Mt,MZ);
6081  gslpp::complex A_HH2_Dx = A_HH_D(m2_2,cW2,Ms,Mb,MZ);
6082  gslpp::complex A_HH2_Lx = A_HH_L(m2_2,cW2,Mmu,Mtau,MZ);
6083 
6084  gslpp::complex A_phi2E_F = (yu2.real()*A_HH2_Ux+ yd2.real()*A_HH2_Dx+ yl2.real()*A_HH2_Lx)/sqrt(sW2*cW2);
6085  gslpp::complex A_phi2_W = R21*A_H_W(m2,cW2,MW,MZ);
6086 
6087 
6088  gslpp::complex A_phi2_Hp = (vev*vev)/(2.0*mHp2)*A_H_Hp(mHp2,m2,cW2,MZ)*(lambdaphi2HpHm);
6089 
6090  /*CP-ODD PART*/
6091 
6092  gslpp::complex A_A2_Ux = A_A_U(m2_2,cW2,Mc,Mt,MZ);
6093  gslpp::complex A_A2_Dx = A_A_D(m2_2,cW2,Ms,Mb,MZ);
6094  gslpp::complex A_A2_Lx = A_A_L(m2_2,cW2,Mmu,Mtau,MZ);
6095 
6096  gslpp::complex A_phi2O_F=yu2.imag()*A_A2_Ux + yd2.imag()*A_A2_Dx + yl2.imag()*A_A2_Lx;
6097 
6098 
6099 
6100  double Gamma_phi2Zga=HSTheta(m2-MZ)*GF*Ale*Ale*m2*m2*m2/(sqrt(2.0)*64.0*M_PI*M_PI*M_PI)*(1.0-MZ*MZ/(m2*m2))*(1.0-MZ*MZ/(m2*m2))*(1.0-MZ*MZ/(m2*m2))*((A_phi2E_F+A_phi2_W+A_phi2_Hp).abs2()
6101  + A_phi2O_F.abs2());
6102 
6103  /*Decay to gluons*/
6104 
6105 
6106  double Gamma_phi2gg=(rphi2_ggE)*GF*Als*Als*m2*m2*m2/(sqrt(2.0)*16.0*M_PI*M_PI*M_PI)*(9.0/4.0)*(I_HH2_Ux/4.0+I_HH2_Dx).abs2()
6107  +rphi2_ggO*GF*Als*Als*m2*m2*m2/(sqrt(2.0)*16.0*M_PI*M_PI*M_PI)*(9.0/4.0)*(I_A2_Ux/4.0+I_A2_Dx).abs2();
6108 
6109 
6110  //Cross-sections of ggF, bbF and VBF at 8 TeV Sigmaxx_H8 = Sigmaxx_H8SM*rphi2_xx
6111  /*
6112  SigmaggF_phi2_8=ip_cs_ggtoH_8(m2)*rphi2_gg;
6113  SigmabbF_phi2_8=ip_cs_pptobbH_8(m2)*rphi2_QbQb;
6114  SigmaVBF_phi2_8=ip_cs_VBFtoH_8(m2)*rphi2_VV;
6115  SigmattF_phi2_8=ip_cs_pptottH_8(m2)*rphi2_QtQt;
6116  SigmaVH_phi2_8=(ip_cs_WtoWH_8(m2)+ip_cs_ZtoZH_8(m2))*rphi2_VV;*/
6117 
6118 
6119  SigmaggF_phi2_8=ip_cs_ggtoH_8(m2)* rphi2_ggE + ip_cs_ggtoA_8(m2)* rphi2_ggO;
6120  SigmabbF_phi2_8=ip_cs_pptobbH_8(m2)*rphi2_QdQdE + ip_cs_pptobbA_8(m2)*rphi2_QdQdO;
6121  SigmaVBF_phi2_8=ip_cs_VBFtoH_8(m2)*rphi2_VV;
6122  SigmattF_phi2_8=ip_cs_pptottH_8(m2)*rphi2_QuQuE + ip_cs_pptottA_8(m2)*rphi2_QuQuO;
6123  SigmaVH_phi2_8=(ip_cs_WtoWH_8(m2)+ip_cs_ZtoZH_8(m2))*rphi2_VV;
6124 
6125 
6126  //SM PREDICTIONS
6127 
6128  SigmaTotSM_phi2_8 = 1.0e-15;
6129 
6130  if (m2>=20. && m2 <=2000.) {
6131  SigmaTotSM_phi2_8=ip_cs_ggtoH_8(m2)+ip_cs_VBFtoH_8(m2)+ip_cs_WtoWH_8(m2)+ip_cs_ZtoZH_8(m2)+ip_cs_pptottH_8(m2)+ip_cs_pptobbH_8(m2);
6132  }
6133  SigmaSumphi2_8 = SigmaggF_phi2_8 + SigmaVBF_phi2_8 + SigmaVH_phi2_8 + SigmattF_phi2_8 + SigmabbF_phi2_8;
6134 
6135  /* SigmaggF_phi2_13=ip_cs_ggtoH_13(m2)*rphi2_gg;
6136  SigmabbF_phi2_13=ip_cs_pptobbH_13(m2)*rphi2_QbQb;
6137  SigmaVBF_phi2_13=ip_cs_VBFtoH_13(m2)*rphi2_VV;
6138  SigmattF_phi2_13=ip_cs_pptottH_13(m2)*rphi2_QtQt;
6139  SigmaVH_phi2_13=(ip_cs_WtoWH_13(m2)+ip_cs_ZtoZH_13(m2))*rphi2_VV;*/
6140 
6141 
6142 
6143  SigmaggF_phi2_13=ip_cs_ggtoH_13(m2)*rphi2_ggE + ip_cs_ggtoA_13(m2)*rphi2_ggO;
6144  SigmabbF_phi2_13=ip_cs_pptobbH_13(m2)*rphi2_QdQdE + ip_cs_pptobbA_13(m2)*rphi2_QdQdO;
6145  SigmaVBF_phi2_13=ip_cs_VBFtoH_13(m2)*rphi2_VV;
6146  SigmattF_phi2_13=ip_cs_pptottH_13(m2)*rphi2_QuQuE + ip_cs_pptottA_13(m2)*rphi2_QuQuO;
6147  SigmaVH_phi2_13=(ip_cs_WtoWH_13(m2)+ip_cs_ZtoZH_13(m2))*rphi2_VV;
6148 
6149 
6150 
6151 // double SigmaTotSM_H13 = 1.0e-15;
6152 // if (mHh>=20. && mHh <=2000.) {
6153 // SigmaTotSM_H13=ip_cs_ggtoH_13(mHh)+ip_cs_VBFtoH_13(mHh)+ip_cs_WtoWH_13(mHh)+ip_cs_ZtoZH_13(mHh)+ip_cs_pptottH_13(mHh)+ip_cs_pptobbH_13(mHh);
6154 // }
6155  SigmaSumphi2_13 = SigmaggF_phi2_13 + SigmaVBF_phi2_13 + SigmaVH_phi2_13 + SigmattF_phi2_13 + SigmabbF_phi2_13;
6156 
6157  double BrSM_phi2tott=ip_Br_HPtott(m2);
6158  double BrSM_phi2tocc=ip_Br_HPtocc(m2);
6159  double BrSM_phi2tobb=ip_Br_HPtobb(m2);
6160  double BrSM_phi2totautau=ip_Br_HPtotautau(m2);
6161  // double BrSM_phi2tomumu=ip_Br_HPtomumu(m2);
6162  double BrSM_phi2toWW =ip_Br_HPtoWW(m2);
6163  double BrSM_phi2toZZ =ip_Br_HPtoZZ(m2);
6164 
6165 Gammaphi2totSM=ip_GammaHPtotSM(m2);
6166 
6167  /*Decay of phi3 to the others scalars*/
6168 double lambda132 = lambdaijk(R11, R21, R31, R13, R23, R33, R12, R22, R32, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) + lambdaijk(R12, R22, R32, R11, R22, R32, R12, R22, R33, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) + lambdaijk(R12, R22, R32, R13, R23, R33, R11, R21, R33, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) + lambdaijk(R11, R21, R31, R13, R23, R33, R12, R22, R32, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) + lambdaijk(R13, R23,R33, R11, R21, R31, R12, R22, R32,lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) + lambdaijk(R13, R23,R33, R12, R22, R32, R11, R21, R31,lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) ;
6169 double lambda332 = lambdaijk(R13, R23, R33, R13, R23, R33, R12, R22, R32, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) + lambdaijk(R12, R22, R32, R13, R23, R33, R12, R22, R32, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) + lambdaijk(R13, R23, R33, R12, R22, R32, R12, R22, R32, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) ;
6170 //phi2 -> phi1 phi3
6171 double Gammaphi2_phi1phi3=HSTheta(m2 - (m1+m3))*KaellenFunction(m2_2,m1_2,m3_2)*lambda132*lambda132/(8.0*m3_2*M_PI);
6172 double Gammaphi2_phi3phi3=HSTheta(m2 - 2.0*m3)*sqrt(std::fabs(1.0 - (4.0*m3_2)/m2_2))*lambda332*lambda332/(32.0*m2*M_PI);
6173 
6174 
6175  /*Decay of phi2 to the others scalars*/
6176 
6177 double lambda112 = (2.0)*(lambdaijk(R11, R21, R31, R12, R22, R32, R11, R21, R31, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) + lambdaijk(R11, R21, R31, R11, R21, R31, R12, R22, R32, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) + lambdaijk(R12, R22, R32, R11, R21, R31, R11, R21, R31, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) );
6178 
6179 
6180 //phi2 -> phi1phi1
6181 double Gammaphi2_phi1phi1=HSTheta(m2 - 2.0*m1)*sqrt(std::fabs(1.0 - (4.0*m1_2)/m2_2))*lambda112*lambda112/(32.0*m2*M_PI);
6182 
6183  //phi2 ->H+H-
6184 double Gammaphi2_HpHm=HSTheta(m2 - 2.0*sqrt(mHp2))*sqrt(std::fabs(1.0 - (4.0*mHp2)/m2_2))*lambdaphi2HpHm*lambdaphi2HpHm/(8.0*m2*M_PI);
6185 //phi2 -> phi1 Z
6186 double Gammaphi2_phi1Z=HSTheta(m2-(m1+MZ))*pow(KaellenFunction(m2_2,MZ*MZ,m1_2),3)*(R23*R12 + R22*R13)*(R23*R12 + R22*R13)/(2.0*M_PI*vev*vev);
6187 
6188 //phi2 -> phi3 Z
6189 double Gammaphi2_phi3Z=HSTheta(m2-(m3+MZ))*pow(KaellenFunction(m2_2,MZ*MZ,m3_2),3)*(R33*R22 + R32*R23)*(R33*R22 + R32*R23)/(2.0*M_PI*vev*vev);
6190 
6191 
6192 /* phi2 -> H+W- */
6193 double Gammaphi2_HpW=HSTheta(m2-sqrt(mHp2)-MW)*pow(KaellenFunction(m2_2,MW*MW,mHp2),3)*(R23-i*R22).abs2()/(M_PI*vev*vev);
6194 
6195 Gammaphi2tot = 1.e-10;
6196 
6197 Gammaphi2tot= Gammaphi2tot + (BrSM_phi2tott*(rphi2_QuQuE + rphi2_QuQuO/(beta_mt_sq(Mt, m2_2)))
6198  +BrSM_phi2tocc*(rphi2_QuQuE + rphi2_QuQuO/(beta(Mc, m2_2)*beta(Mc, m2_2)))
6199  +BrSM_phi2tobb*(rphi2_QdQdE + rphi2_QdQdO/(beta(Mb, m2_2)*beta(Mb, m2_2)))
6200  +BrSM_phi2totautau*(rphi2_QlQlE + rphi2_QlQlO/(beta(Mtau, m2_2)*beta(Mtau, m2_2)))
6201  +(BrSM_phi2toWW+BrSM_phi2toZZ)*rphi2_VV)*Gammaphi2totSM+Gamma_phi2gaga+Gamma_phi2Zga+Gamma_phi2gg
6202  +Gammaphi2_phi1phi3+ Gammaphi2_phi1phi1+Br_phi2tophi3phi3+Gammaphi2_HpHm+Gammaphi2_phi1Z+Gammaphi2_phi3Z
6203  +Gammaphi2_HpW;
6204 
6205 
6206  Br_phi2tott=BrSM_phi2tott*(rphi2_QuQuE + rphi2_QuQuO/(beta_mt_sq(Mt, m2_2)))*Gammaphi2totSM/Gammaphi2tot;
6207  Br_phi2tobb=BrSM_phi2tobb*(rphi2_QdQdE + rphi2_QdQdO/(beta(Mb, m2_2)*beta(Mb, m2_2)))*Gammaphi2totSM/Gammaphi2tot;
6208  Br_phi2totautau=BrSM_phi2totautau*(rphi2_QlQlE + rphi2_QlQlO/(beta(Mtau, m2_2)*beta(Mtau, m2_2)))*Gammaphi2totSM/Gammaphi2tot;
6209 
6210  Br_phi2toWW=BrSM_phi2toWW*rphi2_VV*Gammaphi2totSM/Gammaphi2tot;
6211  Br_phi2toZZ=BrSM_phi2toZZ*rphi2_VV*Gammaphi2totSM/Gammaphi2tot;
6212  Br_phi2togaga=Gamma_phi2gaga/Gammaphi2tot;
6213  Br_phi2toZga=Gamma_phi2Zga/Gammaphi2tot;
6214  Br_phi2tophi1phi1=Gammaphi2_phi1phi1/Gammaphi2tot;
6215  Br_phi2tophi3phi3=Gammaphi2_phi3phi3/Gammaphi2tot;
6216  Br_phi2tophi1phi3=Gammaphi2_phi1phi3/Gammaphi2tot;
6217  Br_phi2toHpHm=Gammaphi2_HpHm/Gammaphi2tot;
6218  Br_phi2tophi1Z=Gammaphi2_phi1Z/Gammaphi2tot;
6219  Br_phi2tophi3Z=Gammaphi2_phi3Z/Gammaphi2tot;
6220  Br_phi2toHpW=Gammaphi2_HpW/Gammaphi2tot;
6221 
6222  return 0.;
6223 }
6224 
6225 
6226 
6228 {
6229 
6230 
6231  m2_2 = mH2sq;
6232  m2 = sqrt(m2_2);
6233  m3_2 = mH3sq;
6234  m3 = sqrt(m3_2);
6235 
6236 
6237  double GF=1/(sqrt(2.0)*vev*vev);
6238  double sW2=1.0-cW2;
6239 
6240  //FLAG to select only the model in which all the couplings are the same (by families)
6241 
6242  if (!myGTHDM->getATHDMflag())
6243  {
6244  throw std::runtime_error("Direct Searches are only aviable in the A2HDM.");
6245  }
6246 
6247  /*complex i */
6248 
6250 
6251  //fermionic couplings for phi3
6252 
6253  gslpp::complex yu3 = R31 + (R32 - i*R33)*su.conjugate();
6254  gslpp::complex yd3 = R31 + (R32 + i*R33)*sd;
6255  gslpp::complex yl3 = R31 + (R32 + i*R33)*sl;
6256 
6257  yu3R = R31_GTHDM + (R32_GTHDM)*su.real();
6258  yd3R = R31_GTHDM + (R32_GTHDM)*sd.real();
6259  yl3R = R31_GTHDM + (R32_GTHDM)*sl.real();
6260 
6261 
6262 
6263  //These cross sections ratios are necessary for rphi3_gg
6264  //At 8 TeV
6265 
6266  //SM gg -> H (phi even) production cross section ratio at 8 TeV, top loop only over total
6267  double rSigmaggphi3E_t8 = ip_csr_ggH_t_8(m3);
6268  //SM gg -> H (phi even) production cross section ratio at 8 TeV, bottom loop only over total
6269  double rSigmaggphi3E_b8 = ip_csr_ggH_b_8(m3);
6270  //gg -> H (phieven) production cross section at 8 TeV, total
6271  // double Sigmaggphi3E_8 = ip_cs_ggtoH_8(m3);
6272 
6273 
6274  //gg -> A (phi odd) production cross section ratio at 8 TeV, top loop only over total
6275  double rSigmaggphi3O_t8 = ip_csr_ggA_t_8(m3);
6276  //gg -> A (phi odd) production cross section ratio at 8 TeV, bottom loop only over total
6277  double rSigmaggphi3O_b8 = ip_csr_ggA_b_8(m3);
6278 
6279  //gg -> A (phiodd) production cross section at 8 TeV, total
6280  // double Sigmaggphi3O_8 = ip_cs_ggtoA_8(m3);
6281 
6282 
6283 
6284  /* r_ii is the ratio of the squared 2HDM vertex coupling of phi3
6285  * to the particle phi3 and the respective squared SM coupling.
6286  * phi is fixed to be the non-SM and heaviest (phi3), but can be translated*/
6287 
6288 
6289  double rphi3_QuQuE= yu3.real()*yu3.real();
6290  double rphi3_QuQuO= yu3.imag()*yu3.imag();
6291  double rphi3_QdQdE= yd3.real()*yd3.real();
6292  double rphi3_QdQdO= yd3.imag()*yd3.imag();
6293  double rphi3_QlQlE= yl3.real()*yl3.real();
6294  double rphi3_QlQlO= yl3.imag()*yl3.imag();
6295  rphi3_ggE = yu3.real()*yd3.real() + (yu3.real()*yu3.real() - yu3.real()*yd3.real())*rSigmaggphi3E_t8 + (yd3.real()*yd3.real() - yu3.real()*yd3.real())*rSigmaggphi3E_b8;
6296  rphi3_ggO = yu3.imag()*yu3.imag() + (yu3.imag()*yu3.imag() - yu3.imag()*yd3.imag())*rSigmaggphi3O_t8 + (yd3.imag()*yd3.imag() - yu3.imag()*yd3.imag())*rSigmaggphi3O_b8;
6297  rphi3_VV=R31*R31;
6298 
6299 
6300  /*Gamma_phi3gaga and Gamma_phi3Zga expressions ...*/
6301 
6302  /*Decay to photons. The fermionic contribution has a CP-even part (HH) and a CP-odd (A)*/
6303  /*CP EVEN*/
6304 
6305  gslpp::complex I_HH_Ux=I_HH_U(m3_2,Mc,Mt);
6306  gslpp::complex I_HH_Dx=I_HH_D(m3_2,Ms,Mb);
6307  gslpp::complex I_HH_Lx=I_HH_L(m3_2,Mmu,Mtau);
6308  gslpp::complex I_phi3E_F= yu3.real()*I_HH_Ux+ yd3.real()*I_HH_Dx+yl3.real()*I_HH_Lx;
6309 
6310  gslpp::complex I_phi3_W=R31*I_H_W(m3,MW);
6311 
6312 
6313 
6314  double lambdaphi3HpHm = lambdaipm(R31, R32, R33);
6315  gslpp::complex I_phi3_Hp=(vev*vev)/(2.0*mHp2)*I_H_Hp(mHp2,m3)*(lambdaphi3HpHm);
6316 
6317 
6318  /*CP ODD */
6319 
6320  gslpp::complex I_A_Ux=I_A_U(m3_2,Mc,Mt);
6321  gslpp::complex I_A_Dx=I_A_D(m3_2,Ms,Mb);
6322  gslpp::complex I_A_Lx=I_A_L(m3_2,Mmu,Mtau);
6323 
6324  gslpp::complex I_phi3O_F = yu3.imag()*I_A_Ux + yd3.imag()*I_A_Dx + yl3.imag()*I_A_Lx;
6325 
6326  double Gamma_phi3gaga=(GF*Ale*Ale*m3*m3*m3/(sqrt(2.0)*128.0*M_PI*M_PI*M_PI))*((I_phi3E_F+I_phi3_W+I_phi3_Hp).abs2()
6327  + (I_phi3O_F).abs2());
6328 
6329 
6330 
6331  /*Decay to Z gamma
6332  CP-EVEN PART*/
6333 
6334  gslpp::complex A_HH_Ux = A_HH_U(m3_2,cW2,Mc,Mt,MZ);
6335  gslpp::complex A_HH_Dx = A_HH_D(m3_2,cW2,Ms,Mb,MZ);
6336  gslpp::complex A_HH_Lx = A_HH_L(m3_2,cW2,Mmu,Mtau,MZ);
6337 
6338  gslpp::complex A_phi3E_F = (yu3.real()*A_HH_Ux+ yd3.real()*A_HH_Dx+ yl3.real()*A_HH_Lx)/sqrt(sW2*cW2);
6339  gslpp::complex A_phi3_W = R31*A_H_W(m3,cW2,MW,MZ);
6340 
6341  gslpp::complex A_phi3_Hp = (vev*vev)/(2.0*mHp2)*A_H_Hp(mHp2,m3,cW2,MZ)*(lambdaphi3HpHm);
6342 
6343  /*CP-ODD PART*/
6344 
6345  gslpp::complex A_A_Ux = A_A_U(m3_2,cW2,Mc,Mt,MZ);
6346  gslpp::complex A_A_Dx = A_A_D(m3_2,cW2,Ms,Mb,MZ);
6347  gslpp::complex A_A_Lx = A_A_L(m3_2,cW2,Mmu,Mtau,MZ);
6348 
6349  gslpp::complex A_phi3O_F=yu3.imag()*A_A_Ux + yd3.imag()*A_A_Dx + yl3.imag()*A_A_Lx;
6350 
6351  double Gamma_phi3Zga=HSTheta(m3-MZ)*GF*Ale*Ale*m3*m3*m3/(sqrt(2.0)*64.0*M_PI*M_PI*M_PI)*(1.0-MZ*MZ/(m3*m3))*(1.0-MZ*MZ/(m3*m3))*(1.0-MZ*MZ/(m3*m3))*((A_phi3E_F+A_phi3_W+A_phi3_Hp).abs2()
6352  + A_phi3O_F.abs2());
6353 
6354 
6355  /*Decay to gluons */
6356 
6357  double Gamma_phi3gg=(rphi3_ggE)*GF*Als*Als*m3*m3*m3/(sqrt(2.0)*16.0*M_PI*M_PI*M_PI)*(9.0/4.0)*(I_HH_Ux/4.0+I_HH_Dx).abs2()
6358  +rphi3_ggO*GF*Als*Als*m3*m3*m3/(sqrt(2.0)*16.0*M_PI*M_PI*M_PI)*(9.0/4.0)*(I_A_Ux/4.0+I_A_Dx).abs2();
6359 
6360 
6361  //Cross-sections of ggF, bbF and VBF at 8 TeV Sigmaxx_H8 = Sigmaxx_H8SM*rphi3_xx
6362 
6363  /*SigmaggF_phi3_8=ip_cs_ggtoH_8(m3)*rphi3_gg;
6364  SigmabbF_phi3_8=ip_cs_pptobbH_8(m3)*rphi3_QbQb;
6365  SigmattF_phi3_8=ip_cs_pptottH_8(m3)*rphi3_QtQt;
6366  */
6367 
6368  SigmaggF_phi3_8=ip_cs_ggtoH_8(m3)*rphi3_ggE + ip_cs_ggtoA_8(m3)*rphi3_ggO;
6369  SigmabbF_phi3_8=ip_cs_pptobbH_8(m3)*rphi3_QdQdE + ip_cs_pptobbA_8(m3)*rphi3_QdQdO;
6370  SigmaVBF_phi3_8=ip_cs_VBFtoH_8(m3)*rphi3_VV;
6371  SigmattF_phi3_8=ip_cs_pptottH_8(m3)*rphi3_QuQuE + ip_cs_pptottA_8(m3)*rphi3_QuQuO;
6372  SigmaVH_phi3_8=(ip_cs_WtoWH_8(m3)+ip_cs_ZtoZH_8(m3))*rphi3_VV;
6373 
6374  //SM PREDICTIONS
6375  SigmaTotSM_phi3_8 = 1.0e-15;
6376 
6377  if (m3>=20. && m3 <=2000.) {
6378  SigmaTotSM_phi3_8=ip_cs_ggtoH_8(m3)+ip_cs_VBFtoH_8(m3)+ip_cs_WtoWH_8(m3)+ip_cs_ZtoZH_8(m3)+ip_cs_pptottH_8(m3)+ip_cs_pptobbH_8(m3);
6379  }
6380  SigmaSumphi3_8 = SigmaggF_phi3_8 + SigmaVBF_phi3_8 + SigmaVH_phi3_8 + SigmattF_phi3_8 + SigmabbF_phi3_8;
6381 
6382  /* SigmaggF_phi3_13=ip_cs_ggtoH_13(m3)*rphi3_gg;
6383  SigmabbF_phi3_13=ip_cs_pptobbH_13(m3)*rphi3_QbQb;
6384  SigmattF_phi3_13=ip_cs_pptottH_13(m3)*rphi3_QtQt;*/
6385 
6386  SigmaggF_phi3_13=ip_cs_ggtoH_13(m3)* rphi3_ggE + ip_cs_ggtoA_13(m3)* rphi3_ggO;
6387  SigmabbF_phi3_13=ip_cs_pptobbH_13(m3)*rphi3_QdQdE + ip_cs_pptobbA_13(m3)*rphi3_QdQdO;
6388  SigmaVBF_phi3_13=ip_cs_VBFtoH_13(m3)*rphi3_VV;
6389  SigmattF_phi3_13=ip_cs_pptottH_13(m3)*rphi3_QuQuE + ip_cs_pptottA_13(m3)*rphi3_QuQuO;
6390  SigmaVH_phi3_13=(ip_cs_WtoWH_13(m3)+ip_cs_ZtoZH_13(m3))*rphi3_VV;
6391 
6392 
6393 // double SigmaTotSM_H13 = 1.0e-15;
6394 // if (mHh>=20. && mHh <=2000.) {
6395 // SigmaTotSM_H13=ip_cs_ggtoH_13(mHh)+ip_cs_VBFtoH_13(mHh)+ip_cs_WtoWH_13(mHh)+ip_cs_ZtoZH_13(mHh)+ip_cs_pptottH_13(mHh)+ip_cs_pptobbH_13(mHh);
6396 // }
6397  SigmaSumphi3_13 = SigmaggF_phi3_13 + SigmaVBF_phi3_13 + SigmaVH_phi3_13 + SigmattF_phi3_13 + SigmabbF_phi3_13;
6398 
6399 
6400 double BrSM_phi3tott=ip_Br_HPtott(m3);
6401 double BrSM_phi3tocc=ip_Br_HPtocc(m3);
6402 double BrSM_phi3tobb=ip_Br_HPtobb(m3);
6403 double BrSM_phi3totautau=ip_Br_HPtotautau(m3);
6404 //double BrSM_phi3tomumu=ip_Br_HPtomumu(m3);
6405 double BrSM_phi3toWW =ip_Br_HPtoWW(m3);
6406 double BrSM_phi3toZZ =ip_Br_HPtoZZ(m3);
6407 
6408 Gammaphi3totSM=ip_GammaHPtotSM(m3);
6409 
6410 
6411 
6412 /*Decay of phi3 to the others scalars*/
6413 double lambda123 = lambdaijk(R11, R21, R13, R12, R22, R32, R13, R23, R33, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) + lambdaijk(R12, R22, R32, R11, R22, R32, R12, R22, R33, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) + lambdaijk(R12, R22, R32, R13, R23, R33, R11, R21, R33, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) + lambdaijk(R11, R21, R31, R13, R23, R33, R12, R22, R32, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) + lambdaijk(R13, R23,R33, R11, R21, R31, R12, R22, R32,lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) + lambdaijk(R13, R23,R33, R12, R22, R32, R11, R21, R31,lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) ;
6414 double lambda223 = lambdaijk(R11, R22, R32, R12, R22, R32, R13, R23, R33, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) + lambdaijk(R12, R22, R32, R13, R23, R33, R12, R22, R32, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) + lambdaijk(R13, R23, R33, R12, R22, R32, R12, R22, R32, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) ;
6415 double lambda113 = lambdaijk(R11, R21, R31, R11, R21, R31, R13, R23, R33, lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) + lambdaijk(R11, R21, R31, R13, R23, R33, R11, R21, R31,lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) + lambdaijk(R13, R23, R33, R11, R21, R31, R11, R21, R31,lambda1H, lambda3H, lambda4H, Relambda5H, Imlambda5H, Relambda6H, Imlambda6H, Relambda7H, Imlambda7H) ;
6416 //phi3 -> phi1 phi2
6417 double Gammaphi3_phi1phi2=HSTheta(m3 - (m1+m2))*KaellenFunction(m3_2,m1_2,m2_2)*lambda123*lambda123/(8.0*m3_2*M_PI);
6418 // phi3 -> phi2 phi2
6419 double Gammaphi3_phi2phi2=HSTheta(m3 - 2.0*m2)*sqrt(std::fabs(1.0 - (4.0*m2_2)/m3_2))*lambda223*lambda223/(32.0*m3*M_PI);
6420 //phi3 -> phi1phi1
6421 double Gammaphi3_phi1phi1=HSTheta(m3 - 2.0*m1)*sqrt(std::fabs(1.0 - (4.0*m1_2)/m3_2))*lambda113*lambda113/(32.0*m3*M_PI);
6422 //phi3 ->H+H-
6423 double Gammaphi3_HpHm=HSTheta(m3 - 2.0*sqrt(mHp2))*sqrt(std::fabs(1.0 - (4.0*mHp2)/m3_2))*lambdaphi3HpHm*lambdaphi3HpHm/(32.0*m3*M_PI);
6424 //phi3 -> phi1 Z
6425 double Gammaphi3_phi1Z=HSTheta(m3-(m1+MZ))*pow(KaellenFunction(m3_2,MZ*MZ,m1_2),3)*(R33*R12 + R32*R13)*(R33*R12 + R32*R13)/(2.0*M_PI*vev*vev);
6426 //phi3 -> phi2 Z
6427 double Gammaphi3_phi2Z=HSTheta(m3-(m2+MZ))*pow(KaellenFunction(m3_2,MZ*MZ,m2_2),3)*(R33*R22 + R32*R23)*(R33*R22 + R32*R23)/(2.0*M_PI*vev*vev);
6428 /* phi3 -> H+W- */
6429 double Gammaphi3_HpW=HSTheta(m3-sqrt(mHp2)-MW)*pow(KaellenFunction(m3_2,MW*MW,mHp2),3)*(R33-i*R32).abs2()/(M_PI*vev*vev);
6430 
6431 Gammaphi3tot = 1.e-10;
6432 
6433  Gammaphi3tot= Gammaphi3tot + (BrSM_phi3tott*(rphi3_QuQuE + rphi3_QuQuO/(beta_mt_sq(Mt, m3_2)))
6434  +BrSM_phi3tocc*(rphi3_QuQuE + rphi3_QuQuO/(beta(Mc, m3_2)*beta(Mc, m3_2)))
6435  +BrSM_phi3tobb*(rphi3_QdQdE + rphi3_QdQdO/(beta(Mb, m3_2)*beta(Mb, m3_2)))
6436  +BrSM_phi3totautau*(rphi3_QlQlE + rphi3_QlQlO/(beta(Mtau, m3_2)*beta(Mtau, m3_2)))
6437  +(BrSM_phi3toWW+BrSM_phi3toZZ)*rphi3_VV)*Gammaphi3totSM+Gamma_phi3gaga+Gamma_phi3Zga+Gamma_phi3gg
6438  + Gammaphi3_phi1phi1+Gammaphi3_phi2phi2+Gammaphi3_phi1phi2+Gammaphi3_HpHm+Gammaphi3_phi1Z+Gammaphi3_phi2Z
6439  +Gammaphi3_HpW;
6440 
6441  Br_phi3tott=BrSM_phi3tott*(rphi3_QuQuE + rphi3_QuQuO/(beta_mt_sq(Mt, m3_2)))*Gammaphi3totSM/Gammaphi3tot;
6442  Br_phi3tobb=BrSM_phi3tobb*(rphi3_QdQdE + rphi3_QdQdO/(beta(Mb, m3_2)*beta(Mb, m3_2)))*Gammaphi3totSM/Gammaphi3tot;
6443 
6444 
6445  Br_phi3totautau=BrSM_phi3totautau*(rphi3_QlQlE + rphi3_QlQlO/(beta(Mtau, m3_2)*beta(Mtau, m3_2)))*Gammaphi3totSM/Gammaphi3tot;
6446  Br_phi3toWW=BrSM_phi3toWW*rphi3_VV*Gammaphi3totSM/Gammaphi3tot;
6447  Br_phi3toZZ=BrSM_phi3toZZ*rphi3_VV*Gammaphi3totSM/Gammaphi3tot;
6448  Br_phi3togaga=Gamma_phi3gaga/Gammaphi3tot;
6449  Br_phi3toZga=Gamma_phi3Zga/Gammaphi3tot;
6450  Br_phi3tophi1phi1=Gammaphi3_phi1phi1/Gammaphi3tot;
6451  Br_phi3tophi2phi2=Gammaphi3_phi2phi2/Gammaphi3tot;
6452 
6453  Br_phi3tophi1phi2=Gammaphi3_phi1phi2/Gammaphi3tot;
6454  Br_phi3toHpHm=Gammaphi3_HpHm/Gammaphi3tot;
6455  Br_phi3tophi1Z=Gammaphi3_phi1Z/Gammaphi3tot;
6456  Br_phi3tophi2Z=Gammaphi3_phi2Z/Gammaphi3tot;
6457  Br_phi3toHpW=Gammaphi3_HpW/Gammaphi3tot;
6458 
6459 
6460  return 0.;
6461 
6462 
6463 }
6464 
6465 
6467 {
6468 
6469  m2_2 = mH2sq;
6470  m2 = sqrt(m2_2);
6471  m3_2 = mH3sq;
6472  m3 = sqrt(m3_2);
6473 
6474 // double GF=1/(sqrt(2.0)*vev*vev);
6475 // double sW2=1.0-cW2;
6476  double Mb2 = Mb*Mb;
6477  double Mt2 = Mt*Mt;
6478  double Mtau2=Mtau*Mtau;
6479  double MW2 = MW*MW;
6480  double Vtb=myGTHDM->getCKM().getV_tb().abs();
6481 
6482  m2 = sqrt(m2_2);
6483  m3 = sqrt(m3_2);
6484 
6485  //FLAG to select only the model in which all the couplings are the same (by families)
6486 
6487  if (!myGTHDM->getATHDMflag())
6488  {
6489  throw std::runtime_error("Direct Searches are only aviable in the A2HDM.");
6490  }
6491 
6492  /*complex i */
6493 
6495 
6496  SigmaHp8=0.0;
6497  SigmaHpm13=0.0;
6498 
6499  double GammaHptaunu=HSTheta(mHp-Mtau)*(Mtau2*(mHp2-Mtau2)*(mHp2-Mtau2)*sl.abs2())/(8.0*mHp*mHp2*M_PI*vev*vev);
6500 
6501 
6502 
6503  double GammaHptb=HSTheta(mHp-Mt-Mb)*(Vtb*Vtb/(8.0*mHp*M_PI*vev*vev))*3.0*(-4.0*(su*sd).real()*Mb2*Mt2
6504  -sd.abs2()*Mb2*(Mb2-mHp2+Mt2)-su.abs2()*Mt2*(Mb2-mHp2+Mt2))
6505  *sqrt((Mb2*Mb2+(mHp2-Mt2)*(mHp2-Mt2)-2.0*Mb2*(mHp2+Mt2))/(mHp2*mHp2));
6506 
6507 
6508  //decay to SM Higgs
6509  double GammaHpHlW=KaellenFunction(1.0,mHl/mHp,MW/mHp)*KaellenFunction(1.0,mHp/MW,mHl/MW)*KaellenFunction(1.0,mHp/MW,mHl/MW)
6510  *MW2*MW2/mHp*(R21-R31)*(R21-R31)/(2.0*M_PI*vev*vev);
6511 
6512  //decay to phi2
6513  double GammaHpphi2W=KaellenFunction(1.0,m2/mHp,MW/mHp)*KaellenFunction(1.0,mHp/MW,m2/MW)*KaellenFunction(1.0,mHp/MW,m2/MW)
6514  *MW2*MW2/mHp*(R22-R32)*(R22-R32)/(2.0*M_PI*vev*vev);
6515 
6516  //decay to phi3
6517  double GammaHpphi3W=KaellenFunction(1.0,m3/mHp,MW/mHp)*KaellenFunction(1.0,mHp/MW,m3/MW)*KaellenFunction(1.0,mHp/MW,m3/MW)
6518  *MW2*MW2/mHp*(R23-R33)*(R23-R33)/(2.0*M_PI*vev*vev);
6519 
6520  GammaHptot = 1.e-10;
6521 
6522  GammaHptot= GammaHptot + GammaHptaunu + GammaHptb + GammaHpHlW + GammaHpphi2W + GammaHpphi3W;
6523 
6524 
6525  Br_Hptotaunu=GammaHptaunu/GammaHptot;
6526  Br_Hptotb=GammaHptb/GammaHptot;
6527 
6528 
6529  return 0;
6530 }
6531 
6532 //Higgs direct searches
6533 
6535 {
6536 
6537  m2_2 = mH2sq;
6538  m2 = sqrt(m2_2);
6539  m3_2 = mH3sq;
6540  m3 = sqrt(m3_2);
6541 
6542 
6543  //FLAG to select only the model in which all the couplings are the same (by families)
6544  if (!myGTHDM->getATHDMflag())
6545  {
6546  throw std::runtime_error("Direct Searches are only aviable in the A2HDM.");
6547  }
6548 
6549  /*complex i */
6551 
6552  double Br_Ztoee=0.03363; //C. Patrignani et al.(Particle Data Group), Chin. Phys. C, 40, 100001 (2016)
6553  double Br_Ztomumu=0.03366; //C. Patrignani et al.(Particle Data Group), Chin. Phys. C, 40, 100001 (2016)
6554  double Br_Ztotautau=0.0337; //C. Patrignani et al.(Particle Data Group), Chin. Phys. C, 40, 100001 (2016)
6555  double Br_Ztoinv=0.2; //C. Patrignani et al.(Particle Data Group), Chin. Phys. C, 40, 100001 (2016)
6556  double Br_Wtoenu=0.1071; //C. Patrignani et al.(Particle Data Group), Chin. Phys. C, 40, 100001 (2016)
6557  double Br_Wtomunu=0.1063; //C. Patrignani et al.(Particle Data Group), Chin. Phys. C, 40, 100001 (2016)
6558  double Br_Wtotaunu=0.1138; //C. Patrignani et al.(Particle Data Group), Chin. Phys. C, 40, 100001 (2016)
6559 
6560  THoEX_bb_phi2_tt_ATLAS13=0.0;
6561  THoEX_bb_phi3_tt_ATLAS13=0.0;
6562  THoEX_bb_phi2_bb_CMS8=0.0;
6563  THoEX_bb_phi3_bb_CMS8=0.0;
6564  THoEX_gg_phi2_bb_CMS8=0.0;
6565  THoEX_gg_phi3_bb_CMS8=0.0;
6566  THoEX_pp_phi2_bb_CMS13=0.0;
6567  THoEX_pp_phi3_bb_CMS13=0.0;
6568  THoEX_bb_phi2_bb_CMS13=0.0;
6569  THoEX_bb_phi3_bb_CMS13=0.0;
6570  THoEX_gg_phi2_tautau_ATLAS8=0.0;
6571  THoEX_gg_phi3_tautau_ATLAS8=0.0;
6572  THoEX_gg_phi2_tautau_CMS8=0.0;
6573  THoEX_gg_phi3_tautau_CMS8=0.0;
6574  THoEX_bb_phi2_tautau_ATLAS8=0.0;
6575  THoEX_bb_phi3_tautau_ATLAS8=0.0;
6576  THoEX_bb_phi2_tautau_CMS8=0.0;
6577  THoEX_bb_phi3_tautau_CMS8=0.0;
6578  THoEX_gg_phi2_tautau_ATLAS13=0.0;
6579  THoEX_gg_phi3_tautau_ATLAS13=0.0;
6580  THoEX_gg_phi2_tautau_CMS13=0.0;
6581  THoEX_gg_phi3_tautau_CMS13=0.0;
6582  THoEX_bb_phi2_tautau_ATLAS13=0.0;
6583  THoEX_bb_phi3_tautau_ATLAS13=0.0;
6584  THoEX_bb_phi2_tautau_CMS13=0.0;
6585  THoEX_bb_phi3_tautau_CMS13=0.0;
6586  THoEX_gg_phi2_gaga_ATLAS8=0.0;
6587  THoEX_gg_phi3_gaga_ATLAS8=0.0;
6588  THoEX_pp_phi2_gaga_ATLAS13=0.0;
6589  THoEX_pp_phi3_gaga_ATLAS13=0.0;
6590  THoEX_gg_phi2_gaga_CMS13=0.0;
6591  THoEX_gg_phi3_gaga_CMS13=0.0;
6592  THoEX_pp_phi2_Zga_llga_ATLAS8=0.0;
6593  THoEX_pp_phi3_Zga_llga_ATLAS8=0.0;
6594  THoEX_pp_phi2_Zga_llga_CMS8=0.0;
6595  THoEX_pp_phi3_Zga_llga_CMS8=0.0;
6596  THoEX_gg_phi2_Zga_llga_ATLAS13=0.0;
6597  THoEX_gg_phi3_Zga_llga_ATLAS13=0.0;
6598  THoEX_gg_phi2_Zga_qqga_ATLAS13=0.0;
6599  THoEX_gg_phi3_Zga_qqga_ATLAS13=0.0;
6600  THoEX_gg_phi2_Zga_CMS13=0.0;
6601  THoEX_gg_phi3_Zga_CMS13=0.0;
6602  THoEX_gg_phi2_ZZ_ATLAS8=0.0;
6603  THoEX_gg_phi3_ZZ_ATLAS8=0.0;
6604  THoEX_VV_phi2_ZZ_ATLAS8=0.0;
6605  THoEX_VV_phi3_ZZ_ATLAS8=0.0;
6606  THoEX_gg_phi2_ZZ_llllnunu_ATLAS13=0.0;
6607  THoEX_gg_phi3_ZZ_llllnunu_ATLAS13=0.0;
6608  THoEX_VV_phi2_ZZ_llllnunu_ATLAS13=0.0;
6609  THoEX_VV_phi3_ZZ_llllnunu_ATLAS13=0.0;
6610  THoEX_gg_phi2_ZZ_qqllnunu_ATLAS13=0.0;
6611  THoEX_gg_phi3_ZZ_qqllnunu_ATLAS13=0.0;
6612  THoEX_VV_phi2_ZZ_qqllnunu_ATLAS13=0.0;
6613  THoEX_VV_phi3_ZZ_qqllnunu_ATLAS13=0.0;
6614  THoEX_pp_phi2_ZZ_llqqnunull_CMS13=0.0;
6615  THoEX_pp_phi3_ZZ_llqqnunull_CMS13=0.0;
6616  THoEX_pp_phi2_ZZ_qqnunu_CMS13=0.0;
6617  THoEX_pp_phi3_ZZ_qqnunu_CMS13=0.0;
6618  THoEX_gg_phi2_WW_ATLAS8=0.0;
6619  THoEX_gg_phi3_WW_ATLAS8=0.0;
6620  THoEX_VV_phi2_WW_ATLAS8=0.0;
6621  THoEX_VV_phi3_WW_ATLAS8=0.0;
6622  THoEX_gg_phi2_WW_enumunu_ATLAS13=0.0;
6623  THoEX_gg_phi3_WW_enumunu_ATLAS13=0.0;
6624  THoEX_VV_phi2_WW_enumunu_ATLAS13=0.0;
6625  THoEX_VV_phi3_WW_enumunu_ATLAS13=0.0;
6626  THoEX_ggVV_phi2_WW_lnulnu_CMS13=0.0;
6627  THoEX_ggVV_phi3_WW_lnulnu_CMS13=0.0;
6628  THoEX_gg_phi2_WW_lnuqq_ATLAS13=0.0;
6629  THoEX_gg_phi3_WW_lnuqq_ATLAS13=0.0;
6630  THoEX_VV_phi2_WW_lnuqq_ATLAS13=0.0;
6631  THoEX_VV_phi3_WW_lnuqq_ATLAS13=0.0;
6632  THoEX_pp_phi2_WW_lnuqq_CMS13=0.0;
6633  THoEX_pp_phi3_WW_lnuqq_CMS13=0.0;
6634  THoEX_mu_pp_phi2_VV_CMS8=0.0;
6635  THoEX_mu_pp_phi3_VV_CMS8=0.0;
6636  THoEX_pp_phi2_VV_qqqq_ATLAS13=0.0;
6637  THoEX_pp_phi3_VV_qqqq_ATLAS13=0.0;
6638  THoEX_gg_phi2_phi1phi1_ATLAS8=0.0;
6639  THoEX_gg_phi3_phi1phi1_ATLAS8=0.0;
6640  THoEX_pp_phi2_phi1phi1_bbbb_CMS8=0.0;
6641  THoEX_pp_phi3_phi1phi1_bbbb_CMS8=0.0;
6642  THoEX_pp_phi2_phi1phi1_bbgaga_CMS8=0.0;
6643  THoEX_pp_phi3_phi1phi1_bbgaga_CMS8=0.0;
6644  THoEX_gg_phi2_phi1phi1_bbtautau_CMS8=0.0;
6645  THoEX_gg_phi3_phi1phi1_bbtautau_CMS8=0.0;
6646  THoEX_pp_phi2_phi1phi1_bbtautau_CMS8=0.0;
6647  THoEX_pp_phi3_phi1phi1_bbtautau_CMS8=0.0;
6648  THoEX_pp_phi2_phi1phi1_bbbb_ATLAS13=0.0;
6649  THoEX_pp_phi3_phi1phi1_bbbb_ATLAS13=0.0;
6650  THoEX_pp_phi2_phi1phi1_bbbb_1_CMS13=0.0;
6651  THoEX_pp_phi3_phi1phi1_bbbb_1_CMS13=0.0;
6652  THoEX_pp_phi2_phi1phi1_bbbb_2_CMS13=0.0;
6653  THoEX_pp_phi3_phi1phi1_bbbb_2_CMS13=0.0;
6654  THoEX_pp_phi2_phi1phi1_bbgaga_ATLAS13=0.0;
6655  THoEX_pp_phi3_phi1phi1_bbgaga_ATLAS13=0.0;
6656  THoEX_pp_phi2_phi1phi1_bbgaga_CMS13=0.0;
6657  THoEX_pp_phi3_phi1phi1_bbgaga_CMS13=0.0;
6658  THoEX_pp_phi2_phi1phi1_bbtautau_ATLAS13=0.0;
6659  THoEX_pp_phi3_phi1phi1_bbtautau_ATLAS13=0.0;
6660  THoEX_pp_phi2_phi1phi1_bbtautau_1_CMS13=0.0;
6661  THoEX_pp_phi3_phi1phi1_bbtautau_1_CMS13=0.0;
6662  THoEX_pp_phi2_phi1phi1_bbtautau_2_CMS13=0.0;
6663  THoEX_pp_phi3_phi1phi1_bbtautau_2_CMS13=0.0;
6664  THoEX_pp_phi2_phi1phi1_bbVV_CMS13=0.0;
6665  THoEX_pp_phi3_phi1phi1_bbVV_CMS13=0.0;
6666  THoEX_pp_phi2_phi1phi1_bbWW_ATLAS13=0.0;
6667  THoEX_pp_phi3_phi1phi1_bbWW_ATLAS13=0.0;
6668  THoEX_gg_phi2_phi1phi1_gagaWW_ATLAS13=0.0;
6669  THoEX_gg_phi3_phi1phi1_gagaWW_ATLAS13=0.0;
6670  THoEX_gg_phi2_phi1Z_bbZ_ATLAS8=0.0;
6671  THoEX_gg_phi3_phi1Z_bbZ_ATLAS8=0.0;
6672  THoEX_gg_phi2_phi1Z_bbll_CMS8=0.0;
6673  THoEX_gg_phi3_phi1Z_bbll_CMS8=0.0;
6674  THoEX_gg_phi2_phi1Z_tautauZ_ATLAS8=0.0;
6675  THoEX_gg_phi3_phi1Z_tautauZ_ATLAS8=0.0;
6676  THoEX_gg_phi2_phi1Z_tautaull_CMS8=0.0;
6677  THoEX_gg_phi3_phi1Z_tautaull_CMS8=0.0;
6678  THoEX_gg_phi2_phi1Z_bbZ_ATLAS13=0.0;
6679  THoEX_gg_phi3_phi1Z_bbZ_ATLAS13=0.0;
6680  THoEX_gg_phi2_phi1Z_bbZ_1_CMS13=0.0;
6681  THoEX_gg_phi3_phi1Z_bbZ_1_CMS13=0.0;
6682  THoEX_gg_phi2_phi1Z_bbZ_2_CMS13=0.0;
6683  THoEX_gg_phi3_phi1Z_bbZ_2_CMS13=0.0;
6684  THoEX_bb_phi2_phi1Z_bbZ_ATLAS13=0.0;
6685  THoEX_bb_phi3_phi1Z_bbZ_ATLAS13=0.0;
6686  THoEX_bb_phi2_phi1Z_bbZ_1_CMS13=0.0;
6687  THoEX_bb_phi3_phi1Z_bbZ_1_CMS13=0.0;
6688  THoEX_bb_phi2_phi1Z_bbZ_2_CMS13=0.0;
6689  THoEX_bb_phi3_phi1Z_bbZ_2_CMS13=0.0;
6690 
6691  THoEX_pp_phi3_phi2Z_bbll_1_CMS8=0.0;
6692  THoEX_pp_phi2_phi3Z_bbll_1_CMS8=0.0;
6693  THoEX_pp_phi3_phi2Z_bbll_2_CMS8=0.0;
6694  THoEX_pp_phi2_phi3Z_bbll_2_CMS8=0.0;
6695  THoEX_pp_phi3_phi2Z_tautaull_1_CMS8=0.0;
6696  THoEX_pp_phi2_phi3Z_tautaull_1_CMS8=0.0;
6697  THoEX_pp_phi3_phi2Z_tautaull_2_CMS8=0.0;
6698  THoEX_pp_phi2_phi3Z_tautaull_2_CMS8=0.0;
6699  THoEX_gg_phi3_phi2Z_bbZ_ATLAS13=0.0;
6700  THoEX_gg_phi2_phi3Z_bbZ_ATLAS13=0.0;
6701  THoEX_bb_phi3_phi2Z_bbZ_ATLAS13=0.0;
6702  THoEX_bb_phi2_phi3Z_bbZ_ATLAS13=0.0;
6703 
6704  THoEX_pp_Hpm_taunu_ATLAS8=0.0;
6705  THoEX_pp_Hp_taunu_CMS8=0.0;
6706  THoEX_pp_Hpm_taunu_ATLAS13=0.0;
6707  THoEX_pp_Hpm_taunu_CMS13=0.0;
6708  THoEX_pp_Hpm_tb_ATLAS8=0.0;
6709  THoEX_pp_Hp_tb_CMS8=0.0;
6710  THoEX_pp_Hpm_tb_ATLAS13=0.0;
6711 
6712  //Theoretical expressions for the Heavy Higgs cross sections times branching ratios
6713 
6714  tt_phi2_tt_TH13=SigmattF_phi2_13*Br_phi2tott;
6715  tt_phi3_tt_TH13=SigmattF_phi3_13*Br_phi3tott;
6716  bb_phi2_tt_TH13=SigmabbF_phi2_13*Br_phi2tott;
6717  bb_phi3_tt_TH13=SigmabbF_phi3_13*Br_phi3tott;
6718 
6719  bb_phi2_bb_TH8=SigmabbF_phi2_8*Br_phi2tobb;
6720  bb_phi3_bb_TH8=SigmabbF_phi3_8*Br_phi3tobb;
6721  gg_phi2_bb_TH8=SigmaggF_phi2_8*Br_phi2tobb;
6722  gg_phi3_bb_TH8=SigmaggF_phi3_8*Br_phi3tobb;
6723  pp_phi2_bb_TH13=SigmaSumphi2_13*Br_phi2tobb;
6724  pp_phi3_bb_TH13=SigmaSumphi3_13*Br_phi3tobb;
6725  bb_phi2_bb_TH13=SigmabbF_phi2_13*Br_phi2tobb;
6726  bb_phi3_bb_TH13=SigmabbF_phi3_13*Br_phi3tobb;
6727 
6728  gg_phi2_tautau_TH8=SigmaggF_phi2_8*Br_phi2totautau;
6729  gg_phi3_tautau_TH8=SigmaggF_phi3_8*Br_phi3totautau;
6730  bb_phi2_tautau_TH8=SigmabbF_phi2_8*Br_phi2totautau;
6731  bb_phi3_tautau_TH8=SigmabbF_phi3_8*Br_phi3totautau;
6732  gg_phi2_tautau_TH13=SigmaggF_phi2_13*Br_phi2totautau;
6733  gg_phi3_tautau_TH13=SigmaggF_phi3_13*Br_phi3totautau;
6734  bb_phi2_tautau_TH13=SigmabbF_phi2_13*Br_phi2totautau;
6735  bb_phi3_tautau_TH13=SigmabbF_phi3_13*Br_phi3totautau;
6736 
6737  gg_phi2_gaga_TH8=SigmaggF_phi2_8*Br_phi2togaga;
6738  gg_phi3_gaga_TH8=SigmaggF_phi3_8*Br_phi3togaga;
6739  pp_phi2_gaga_TH13=SigmaSumphi2_13*Br_phi2togaga;
6740  pp_phi3_gaga_TH13=SigmaSumphi3_13*Br_phi3togaga;
6741  gg_phi2_gaga_TH13=SigmaggF_phi2_13*Br_phi2togaga;
6742  gg_phi3_gaga_TH13=SigmaggF_phi3_13*Br_phi3togaga;
6743 
6744  pp_phi2_Zga_llga_TH8=SigmaSumphi2_8*Br_phi2toZga*(Br_Ztoee+Br_Ztomumu);
6745  pp_phi3_Zga_llga_TH8=SigmaSumphi3_8*Br_phi3toZga*(Br_Ztoee+Br_Ztomumu);
6746  gg_phi2_Zga_TH13=SigmaggF_phi2_13*Br_phi2toZga;
6747  gg_phi3_Zga_TH13=SigmaggF_phi3_13*Br_phi3toZga;
6748 
6749  gg_phi2_ZZ_TH8=SigmaggF_phi2_8*Br_phi2toZZ;
6750  gg_phi3_ZZ_TH8=SigmaggF_phi3_8*Br_phi3toZZ;
6751  VV_phi2_ZZ_TH8=SigmaVBF_phi2_8*Br_phi2toZZ;
6752  VV_phi3_ZZ_TH8=SigmaVBF_phi3_8*Br_phi3toZZ;
6753  gg_phi2_ZZ_TH13=SigmaggF_phi2_13*Br_phi2toZZ;
6754  gg_phi3_ZZ_TH13=SigmaggF_phi3_13*Br_phi3toZZ;
6755  VV_phi2_ZZ_TH13=SigmaVBF_phi2_13*Br_phi2toZZ;
6756  VV_phi3_ZZ_TH13=SigmaVBF_phi3_13*Br_phi3toZZ;
6757  pp_phi2_ZZ_TH13=SigmaSumphi2_13*Br_phi2toZZ;
6758  pp_phi3_ZZ_TH13=SigmaSumphi3_13*Br_phi3toZZ;
6759 
6760  gg_phi2_WW_TH8=SigmaggF_phi2_8*Br_phi2toWW;
6761  gg_phi3_WW_TH8=SigmaggF_phi3_8*Br_phi3toWW;
6762  VV_phi2_WW_TH8=SigmaVBF_phi2_8*Br_phi2toWW;
6763  VV_phi3_WW_TH8=SigmaVBF_phi3_8*Br_phi3toWW;
6764  gg_phi2_WW_TH13=SigmaggF_phi2_13*Br_phi2toWW;
6765  gg_phi3_WW_TH13=SigmaggF_phi3_13*Br_phi3toWW;
6766  VV_phi2_WW_TH13=SigmaVBF_phi2_13*Br_phi2toWW;
6767  VV_phi3_WW_TH13=SigmaVBF_phi3_13*Br_phi3toWW;
6768  ggVV_phi2_WW_lnulnu_TH13=(SigmaggF_phi2_13+SigmaVBF_phi2_13)*Br_phi2toWW*(Br_Wtoenu+Br_Wtomunu)*(Br_Wtoenu+Br_Wtomunu);
6769  ggVV_phi3_WW_lnulnu_TH13=(SigmaggF_phi3_13+SigmaVBF_phi3_13)*Br_phi3toWW*(Br_Wtoenu+Br_Wtomunu)*(Br_Wtoenu+Br_Wtomunu);
6770  pp_phi2_WW_TH13=SigmaSumphi2_13*Br_phi2toWW;
6771  pp_phi3_WW_TH13=SigmaSumphi3_13*Br_phi3toWW;
6772 
6773  mu_pp_phi2_VV_TH8=SigmaSumphi2_8/SigmaTotSM_phi2_8*rphi2_VV*Gammaphi2totSM/Gammaphi2tot;
6774  mu_pp_phi3_VV_TH8=SigmaSumphi3_8/SigmaTotSM_phi3_8*rphi3_VV*Gammaphi3totSM/Gammaphi3tot;
6775  pp_phi2_VV_TH13=SigmaSumphi2_13*(Br_phi2toZZ+Br_phi2toWW);
6776  pp_phi3_VV_TH13=SigmaSumphi3_13*(Br_phi3toZZ+Br_phi3toWW);
6777 
6778  gg_phi2_phi1phi1_TH8=SigmaggF_phi2_8*Br_phi2tophi1phi1;
6779  gg_phi3_phi1phi1_TH8=SigmaggF_phi3_8*Br_phi3tophi1phi1;
6780  pp_phi2_phi1phi1_bbbb_TH8=SigmaSumphi2_8*Br_phi2tophi1phi1*GTHDM_BR_h_bb*GTHDM_BR_h_bb;
6781  pp_phi3_phi1phi1_bbbb_TH8=SigmaSumphi3_8*Br_phi3tophi1phi1*GTHDM_BR_h_bb*GTHDM_BR_h_bb;
6782  pp_phi2_phi1phi1_bbgaga_TH8=SigmaSumphi2_8*Br_phi2tophi1phi1*GTHDM_BR_h_bb*GTHDM_BR_h_gaga*2.0;
6783  pp_phi3_phi1phi1_bbgaga_TH8=SigmaSumphi3_8*Br_phi3tophi1phi1*GTHDM_BR_h_bb*GTHDM_BR_h_gaga*2.0;
6784  gg_phi2_phi1phi1_bbtautau_TH8=SigmaggF_phi2_8*Br_phi2tophi1phi1*GTHDM_BR_h_bb*GTHDM_BR_h_tautau*2.0;
6785  gg_phi3_phi1phi1_bbtautau_TH8=SigmaggF_phi3_8*Br_phi3tophi1phi1*GTHDM_BR_h_bb*GTHDM_BR_h_tautau*2.0;
6786  pp_phi2_phi1phi1_TH8=SigmaSumphi2_8*Br_phi2tophi1phi1;
6787  pp_phi3_phi1phi1_TH8=SigmaSumphi3_8*Br_phi3tophi1phi1;
6788  pp_phi2_phi1phi1_bbbb_TH13=SigmaSumphi2_13*Br_phi2tophi1phi1*GTHDM_BR_h_bb*GTHDM_BR_h_bb;
6789  pp_phi3_phi1phi1_bbbb_TH13=SigmaSumphi3_13*Br_phi3tophi1phi1*GTHDM_BR_h_bb*GTHDM_BR_h_bb;
6790  pp_phi2_phi1phi1_TH13=SigmaSumphi2_13*Br_phi2tophi1phi1;
6791  pp_phi3_phi1phi1_TH13=SigmaSumphi3_13*Br_phi3tophi1phi1;
6792  pp_phi2_phi1phi1_bbgaga_TH13=SigmaSumphi2_13*Br_phi2tophi1phi1*GTHDM_BR_h_bb*GTHDM_BR_h_gaga*2.0;
6793  pp_phi3_phi1phi1_bbgaga_TH13=SigmaSumphi3_13*Br_phi3tophi1phi1*GTHDM_BR_h_bb*GTHDM_BR_h_gaga*2.0;
6794  pp_phi2_phi1phi1_bbtautau_TH13=SigmaSumphi2_13*Br_phi2tophi1phi1*GTHDM_BR_h_bb*GTHDM_BR_h_tautau*2.0;
6795  pp_phi3_phi1phi1_bbtautau_TH13=SigmaSumphi3_13*Br_phi3tophi1phi1*GTHDM_BR_h_bb*GTHDM_BR_h_tautau*2.0;
6796  pp_phi2_phi1phi1_bbVV_TH13=SigmaSumphi2_13*Br_phi2tophi1phi1*2.0*GTHDM_BR_h_bb*(GTHDM_BR_h_WW*pow(Br_Wtoenu+Br_Wtomunu+Br_Wtotaunu*0.352,2)
6797  +GTHDM_BR_h_ZZ*2.0*Br_Ztoinv*(Br_Ztoee+Br_Ztomumu+Br_Ztotautau*0.124));
6798  pp_phi3_phi1phi1_bbVV_TH13=SigmaSumphi3_13*Br_phi3tophi1phi1*2.0*GTHDM_BR_h_bb*(GTHDM_BR_h_WW*pow(Br_Wtoenu+Br_Wtomunu+Br_Wtotaunu*0.352,2)
6799  +GTHDM_BR_h_ZZ*2.0*Br_Ztoinv*(Br_Ztoee+Br_Ztomumu+Br_Ztotautau*0.124));
6800  pp_phi2_phi1phi1_bbWW_TH13=SigmaSumphi2_13*Br_phi2tophi1phi1*2.0*5.77e-1*2.15e-1; //SM Br of hh assumed
6801  pp_phi3_phi1phi1_bbWW_TH13=SigmaSumphi3_13*Br_phi3tophi1phi1*2.0*5.77e-1*2.15e-1; //SM Br of hh assumed
6802  gg_phi2_phi1phi1_gagaWW_TH13=SigmaggF_phi2_13*Br_phi2tophi1phi1*GTHDM_BR_h_gaga*GTHDM_BR_h_WW*2.0;
6803  gg_phi3_phi1phi1_gagaWW_TH13=SigmaggF_phi3_13*Br_phi3tophi1phi1*GTHDM_BR_h_gaga*GTHDM_BR_h_WW*2.0;
6804 
6805  gg_phi2_phi1Z_bbZ_TH8=SigmaggF_phi2_8*Br_phi2tophi1Z*GTHDM_BR_h_bb;
6806  gg_phi3_phi1Z_bbZ_TH8=SigmaggF_phi3_8*Br_phi3tophi1Z*GTHDM_BR_h_bb;
6807  gg_phi2_phi1Z_bbll_TH8=SigmaggF_phi2_8*Br_phi2tophi1Z*GTHDM_BR_h_bb*(Br_Ztoee+Br_Ztomumu);
6808  gg_phi3_phi1Z_bbll_TH8=SigmaggF_phi3_8*Br_phi3tophi1Z*GTHDM_BR_h_bb*(Br_Ztoee+Br_Ztomumu);
6809  gg_phi2_phi1Z_tautauZ_TH8=SigmaggF_phi2_8*Br_phi2tophi1Z*GTHDM_BR_h_tautau;
6810  gg_phi3_phi1Z_tautauZ_TH8=SigmaggF_phi3_8*Br_phi3tophi1Z*GTHDM_BR_h_tautau;
6811  gg_phi2_phi1Z_tautaull_TH8=SigmaggF_phi2_8*Br_phi2tophi1Z*GTHDM_BR_h_tautau*(Br_Ztoee+Br_Ztomumu);
6812  gg_phi3_phi1Z_tautaull_TH8=SigmaggF_phi3_8*Br_phi3tophi1Z*GTHDM_BR_h_tautau*(Br_Ztoee+Br_Ztomumu);
6813  gg_phi2_phi1Z_bbZ_TH13=SigmaggF_phi2_13*Br_phi2tophi1Z*GTHDM_BR_h_bb;
6814  gg_phi3_phi1Z_bbZ_TH13=SigmaggF_phi3_13*Br_phi3tophi1Z*GTHDM_BR_h_bb;
6815  bb_phi2_phi1Z_bbZ_TH13=SigmabbF_phi2_13*Br_phi2tophi1Z*GTHDM_BR_h_bb;
6816  bb_phi3_phi1Z_bbZ_TH13=SigmabbF_phi3_13*Br_phi3tophi1Z*GTHDM_BR_h_bb;
6817 
6818  pp_phi3_phi2Z_bbll_TH8=SigmaSumphi3_8*Br_phi3tophi2Z*Br_phi2tobb*(Br_Ztoee+Br_Ztomumu);
6819  pp_phi2_phi3Z_bbll_TH8=SigmaSumphi2_8*Br_phi2tophi3Z*Br_phi3tobb*(Br_Ztoee+Br_Ztomumu);
6820  pp_phi3_phi2Z_tautaull_TH8=SigmaSumphi3_8*Br_phi3tophi2Z*Br_phi2totautau*(Br_Ztoee+Br_Ztomumu);
6821  pp_phi2_phi3Z_tautaull_TH8=SigmaSumphi2_8*Br_phi2tophi3Z*Br_phi3totautau*(Br_Ztoee+Br_Ztomumu);
6822  gg_phi3_phi2Z_bbZ_TH13=SigmaggF_phi3_13*Br_phi3tophi2Z*Br_phi2tobb;
6823  gg_phi2_phi3Z_bbZ_TH13=SigmaggF_phi2_13*Br_phi2tophi3Z*Br_phi3tobb;
6824  bb_phi3_phi2Z_bbZ_TH13=SigmabbF_phi3_13*Br_phi3tophi2Z*Br_phi2tobb;
6825  bb_phi2_phi3Z_bbZ_TH13=SigmabbF_phi2_13*Br_phi2tophi3Z*Br_phi3tobb;
6826 
6827  pp_Hpm_taunu_TH8=2.0*SigmaHp8*Br_Hptotaunu;
6828  pp_Hp_taunu_TH8=SigmaHp8*Br_Hptotaunu;
6829  pp_Hpm_taunu_TH13=2.0*SigmaHpm13*Br_Hptotaunu;
6830  pp_Hpm_tb_TH8=2.0*SigmaHp8*Br_Hptotb;
6831  pp_Hp_tb_TH8=SigmaHp8*Br_Hptotb;
6832  pp_Hpm_tb_TH13=2.0*SigmaHpm13*Br_Hptotb;
6833 
6834  //95% to 1 sigma conversion factor, roughly sqrt(3.84)
6835 // double nftos=1.95996398454;
6836 
6837  if(m2>= 400.0 && m2<1000.0) THoEX_tt_phi2_tt_ATLAS13=tt_phi2_tt_TH13/ip_ex_tt_phi_tt_ATLAS13(m2);
6838  if(m3>= 400.0 && m3<1000.0) THoEX_tt_phi3_tt_ATLAS13=tt_phi3_tt_TH13/ip_ex_tt_phi_tt_ATLAS13(m3);
6839  if(m2>= 400.0 && m2<1000.0) THoEX_bb_phi2_tt_ATLAS13=bb_phi2_tt_TH13/ip_ex_bb_phi_tt_ATLAS13(m2);
6840  if(m3>= 400.0 && m3<1000.0) THoEX_bb_phi3_tt_ATLAS13=bb_phi3_tt_TH13/ip_ex_bb_phi_tt_ATLAS13(m3);
6841  if(m2>= 100.0 && m2< 900.0) THoEX_bb_phi2_bb_CMS8=bb_phi2_bb_TH8/ip_ex_bb_phi_bb_CMS8(m2);
6842  if(m3>= 100.0 && m3< 900.0) THoEX_bb_phi3_bb_CMS8=bb_phi3_bb_TH8/ip_ex_bb_phi_bb_CMS8(m3);
6843  if(m2>= 330.0 && m2<1200.0) THoEX_gg_phi2_bb_CMS8=gg_phi2_bb_TH8/ip_ex_gg_phi_bb_CMS8(m2);
6844  if(m3>= 330.0 && m3<1200.0) THoEX_gg_phi3_bb_CMS8=gg_phi3_bb_TH8/ip_ex_gg_phi_bb_CMS8(m3);
6845  if(m2>= 550.0 && m2<1200.0) THoEX_pp_phi2_bb_CMS13=pp_phi2_bb_TH13/ip_ex_pp_phi_bb_CMS13(m2);
6846  if(m3>= 550.0 && m3<1200.0) THoEX_pp_phi3_bb_CMS13=pp_phi3_bb_TH13/ip_ex_pp_phi_bb_CMS13(m3);
6847  if(m2>= 300.0 && m2<1300.0) THoEX_bb_phi2_bb_CMS13=bb_phi2_bb_TH13/ip_ex_bb_phi_bb_CMS13(m2);
6848  if(m3>= 300.0 && m3<1300.0) THoEX_bb_phi3_bb_CMS13=bb_phi3_bb_TH13/ip_ex_bb_phi_bb_CMS13(m3);
6849  if(m2>= 90.0 && m2<1000.0) THoEX_gg_phi2_tautau_ATLAS8=gg_phi2_tautau_TH8/ip_ex_gg_phi_tautau_ATLAS8(m2);
6850  if(m3>= 90.0 && m3<1000.0) THoEX_gg_phi3_tautau_ATLAS8=gg_phi3_tautau_TH8/ip_ex_gg_phi_tautau_ATLAS8(m3);
6851  if(m2>= 90.0 && m2<1000.0) THoEX_gg_phi2_tautau_CMS8=gg_phi2_tautau_TH8/ip_ex_gg_phi_tautau_CMS8(m2);
6852  if(m3>= 90.0 && m3<1000.0) THoEX_gg_phi3_tautau_CMS8=gg_phi3_tautau_TH8/ip_ex_gg_phi_tautau_CMS8(m3);
6853  if(m2>= 90.0 && m2<1000.0) THoEX_bb_phi2_tautau_ATLAS8=bb_phi2_tautau_TH8/ip_ex_bb_phi_tautau_ATLAS8(m2);
6854  if(m3>= 90.0 && m3<1000.0) THoEX_bb_phi3_tautau_ATLAS8=bb_phi3_tautau_TH8/ip_ex_bb_phi_tautau_ATLAS8(m3);
6855  if(m2>= 90.0 && m2<1000.0) THoEX_bb_phi2_tautau_CMS8=bb_phi2_tautau_TH8/ip_ex_bb_phi_tautau_CMS8(m2);
6856  if(m3>= 90.0 && m3<1000.0) THoEX_bb_phi3_tautau_CMS8=bb_phi3_tautau_TH8/ip_ex_bb_phi_tautau_CMS8(m3);
6857  if(m2>= 200.0 && m2<2250.0) THoEX_gg_phi2_tautau_ATLAS13=gg_phi2_tautau_TH13/ip_ex_gg_phi_tautau_ATLAS13(m2);
6858  if(m3>= 200.0 && m3<2250.0) THoEX_gg_phi3_tautau_ATLAS13=gg_phi3_tautau_TH13/ip_ex_gg_phi_tautau_ATLAS13(m3);
6859  if(m2>= 90.0 && m2<3200.0) THoEX_gg_phi2_tautau_CMS13=gg_phi2_tautau_TH13/ip_ex_gg_phi_tautau_CMS13(m2);
6860  if(m3>= 90.0 && m3<3200.0) THoEX_gg_phi3_tautau_CMS13=gg_phi3_tautau_TH13/ip_ex_gg_phi_tautau_CMS13(m3);
6861  if(m2>= 200.0 && m2<2250.0) THoEX_bb_phi2_tautau_ATLAS13=bb_phi2_tautau_TH13/ip_ex_bb_phi_tautau_ATLAS13(m2);
6862  if(m3>= 200.0 && m3<2250.0) THoEX_bb_phi3_tautau_ATLAS13=bb_phi3_tautau_TH13/ip_ex_bb_phi_tautau_ATLAS13(m3);
6863  if(m2>= 90.0 && m2<3200.0) THoEX_bb_phi2_tautau_CMS13=bb_phi2_tautau_TH13/ip_ex_bb_phi_tautau_CMS13(m2);
6864  if(m3>= 90.0 && m3<3200.0) THoEX_bb_phi3_tautau_CMS13=bb_phi3_tautau_TH13/ip_ex_bb_phi_tautau_CMS13(m3);
6865  if(m2>= 65.0 && m2< 600.0) THoEX_gg_phi2_gaga_ATLAS8=gg_phi2_gaga_TH8/ip_ex_gg_phi_gaga_ATLAS8(m2);
6866  if(m3>= 65.0 && m3< 600.0) THoEX_gg_phi3_gaga_ATLAS8=gg_phi3_gaga_TH8/ip_ex_gg_phi_gaga_ATLAS8(m3);
6867  if(m2>= 200.0 && m2<2700.0) THoEX_pp_phi2_gaga_ATLAS13=pp_phi2_gaga_TH13/ip_ex_pp_phi_gaga_ATLAS13(m2);
6868  if(m3>= 200.0 && m3<2700.0) THoEX_pp_phi3_gaga_ATLAS13=pp_phi3_gaga_TH13/ip_ex_pp_phi_gaga_ATLAS13(m3);
6869  if(m2>= 500.0 && m2<4000.0) THoEX_gg_phi2_gaga_CMS13=gg_phi2_gaga_TH13/ip_ex_gg_phi_gaga_CMS13(m2);
6870  if(m3>= 500.0 && m3<4000.0) THoEX_gg_phi3_gaga_CMS13=gg_phi3_gaga_TH13/ip_ex_gg_phi_gaga_CMS13(m3);
6871  if(m2>= 200.0 && m2<1600.0) THoEX_pp_phi2_Zga_llga_ATLAS8=pp_phi2_Zga_llga_TH8/ip_ex_pp_phi_Zga_llga_ATLAS8(m2);
6872  if(m3>= 200.0 && m3<1600.0) THoEX_pp_phi3_Zga_llga_ATLAS8=pp_phi3_Zga_llga_TH8/ip_ex_pp_phi_Zga_llga_ATLAS8(m3);
6873  if(m2>= 200.0 && m2<1200.0) THoEX_pp_phi2_Zga_llga_CMS8=pp_phi2_Zga_llga_TH8/ip_ex_pp_phi_Zga_llga_CMS8(m2);
6874  if(m3>= 200.0 && m3<1200.0) THoEX_pp_phi3_Zga_llga_CMS8=pp_phi3_Zga_llga_TH8/ip_ex_pp_phi_Zga_llga_CMS8(m3);
6875  if(m2>= 250.0 && m2<2400.0) THoEX_gg_phi2_Zga_llga_ATLAS13=gg_phi2_Zga_TH13/ip_ex_gg_phi_Zga_llga_ATLAS13(m2);
6876  if(m3>= 250.0 && m3<2400.0) THoEX_gg_phi3_Zga_llga_ATLAS13=gg_phi3_Zga_TH13/ip_ex_gg_phi_Zga_llga_ATLAS13(m3);
6877  if(m2>=1000.0 && m2<6800.0) THoEX_gg_phi2_Zga_qqga_ATLAS13=gg_phi2_Zga_TH13/ip_ex_gg_phi_Zga_qqga_ATLAS13(m2);
6878  if(m3>=1000.0 && m3<6800.0) THoEX_gg_phi3_Zga_qqga_ATLAS13=gg_phi3_Zga_TH13/ip_ex_gg_phi_Zga_qqga_ATLAS13(m3);
6879  if(m2>= 350.0 && m2<4000.0) THoEX_gg_phi2_Zga_CMS13=gg_phi2_Zga_TH13/ip_ex_gg_phi_Zga_CMS13(m2);
6880  if(m3>= 350.0 && m3<4000.0) THoEX_gg_phi3_Zga_CMS13=gg_phi3_Zga_TH13/ip_ex_gg_phi_Zga_CMS13(m3);
6881  if(m2>= 140.0 && m2<1000.0) THoEX_gg_phi2_ZZ_ATLAS8=gg_phi2_ZZ_TH8/ip_ex_gg_phi_ZZ_ATLAS8(m2);
6882  if(m3>= 140.0 && m3<1000.0) THoEX_gg_phi3_ZZ_ATLAS8=gg_phi3_ZZ_TH8/ip_ex_gg_phi_ZZ_ATLAS8(m3);
6883  if(m2>= 140.0 && m2<1000.0) THoEX_VV_phi2_ZZ_ATLAS8=VV_phi2_ZZ_TH8/ip_ex_VV_phi_ZZ_ATLAS8(m2);
6884  if(m3>= 140.0 && m3<1000.0) THoEX_VV_phi3_ZZ_ATLAS8=VV_phi3_ZZ_TH8/ip_ex_VV_phi_ZZ_ATLAS8(m3);
6885  if(m2>= 200.0 && m2<1200.0) THoEX_gg_phi2_ZZ_llllnunu_ATLAS13=gg_phi2_ZZ_TH13/ip_ex_gg_phi_ZZ_llllnunu_ATLAS13(m2);
6886  if(m3>= 200.0 && m3<1200.0) THoEX_gg_phi3_ZZ_llllnunu_ATLAS13=gg_phi3_ZZ_TH13/ip_ex_gg_phi_ZZ_llllnunu_ATLAS13(m3);
6887  if(m2>= 200.0 && m2<1200.0) THoEX_VV_phi2_ZZ_llllnunu_ATLAS13=VV_phi2_ZZ_TH13/ip_ex_VV_phi_ZZ_llllnunu_ATLAS13(m2);
6888  if(m3>= 200.0 && m3<1200.0) THoEX_VV_phi3_ZZ_llllnunu_ATLAS13=VV_phi3_ZZ_TH13/ip_ex_VV_phi_ZZ_llllnunu_ATLAS13(m3);
6889  if(m2>= 300.0 && m2<3000.0) THoEX_gg_phi2_ZZ_qqllnunu_ATLAS13=gg_phi2_ZZ_TH13/ip_ex_gg_phi_ZZ_qqllnunu_ATLAS13(m2);
6890  if(m3>= 300.0 && m3<3000.0) THoEX_gg_phi3_ZZ_qqllnunu_ATLAS13=gg_phi3_ZZ_TH13/ip_ex_gg_phi_ZZ_qqllnunu_ATLAS13(m3);
6891  if(m2>= 300.0 && m2<3000.0) THoEX_VV_phi2_ZZ_qqllnunu_ATLAS13=VV_phi2_ZZ_TH13/ip_ex_VV_phi_ZZ_qqllnunu_ATLAS13(m2);
6892  if(m3>= 300.0 && m3<3000.0) THoEX_VV_phi3_ZZ_qqllnunu_ATLAS13=VV_phi3_ZZ_TH13/ip_ex_VV_phi_ZZ_qqllnunu_ATLAS13(m3);
6893  if(m2>= 130.0 && m2<3000.0) THoEX_pp_phi2_ZZ_llqqnunull_CMS13=pp_phi2_ZZ_TH13/ip_ex_pp_phi_ZZ_llqqnunull_CMS13(m2);
6894  if(m3>= 130.0 && m3<3000.0) THoEX_pp_phi3_ZZ_llqqnunull_CMS13=pp_phi3_ZZ_TH13/ip_ex_pp_phi_ZZ_llqqnunull_CMS13(m3);
6895  if(m2>=1000.0 && m2<4000.0) THoEX_pp_phi2_ZZ_qqnunu_CMS13=pp_phi2_ZZ_TH13/ip_ex_pp_phi_ZZ_qqnunu_CMS13(m2);
6896  if(m3>=1000.0 && m3<4000.0) THoEX_pp_phi3_ZZ_qqnunu_CMS13=pp_phi3_ZZ_TH13/ip_ex_pp_phi_ZZ_qqnunu_CMS13(m3);
6897  if(m2>= 300.0 && m2<1500.0) THoEX_gg_phi2_WW_ATLAS8=gg_phi2_WW_TH8/ip_ex_gg_phi_WW_ATLAS8(m2);
6898  if(m3>= 300.0 && m3<1500.0) THoEX_gg_phi3_WW_ATLAS8=gg_phi3_WW_TH8/ip_ex_gg_phi_WW_ATLAS8(m3);
6899  if(m2>= 300.0 && m2<1500.0) THoEX_VV_phi2_WW_ATLAS8=VV_phi2_WW_TH8/ip_ex_VV_phi_WW_ATLAS8(m2);
6900  if(m3>= 300.0 && m3<1500.0) THoEX_VV_phi3_WW_ATLAS8=VV_phi3_WW_TH8/ip_ex_VV_phi_WW_ATLAS8(m3);
6901  if(m2>= 250.0 && m2<4000.0) THoEX_gg_phi2_WW_enumunu_ATLAS13=gg_phi2_WW_TH13/ip_ex_gg_phi_WW_enumunu_ATLAS13(m2);
6902  if(m3>= 250.0 && m3<4000.0) THoEX_gg_phi3_WW_enumunu_ATLAS13=gg_phi3_WW_TH13/ip_ex_gg_phi_WW_enumunu_ATLAS13(m3);
6903  if(m2>= 250.0 && m2<3000.0) THoEX_VV_phi2_WW_enumunu_ATLAS13=VV_phi2_WW_TH13/ip_ex_VV_phi_WW_enumunu_ATLAS13(m2);
6904  if(m3>= 250.0 && m3<3000.0) THoEX_VV_phi3_WW_enumunu_ATLAS13=VV_phi3_WW_TH13/ip_ex_VV_phi_WW_enumunu_ATLAS13(m3);
6905  if(m2>= 200.0 && m2<1000.0) THoEX_ggVV_phi2_WW_lnulnu_CMS13=ggVV_phi2_WW_lnulnu_TH13/ip_ex_ggVV_phi_WW_lnulnu_CMS13(m2);
6906  if(m3>= 200.0 && m3<1000.0) THoEX_ggVV_phi3_WW_lnulnu_CMS13=ggVV_phi3_WW_lnulnu_TH13/ip_ex_ggVV_phi_WW_lnulnu_CMS13(m3);
6907  if(m2>= 300.0 && m2<3000.0) THoEX_gg_phi2_WW_lnuqq_ATLAS13=gg_phi2_WW_TH13/ip_ex_gg_phi_WW_lnuqq_ATLAS13(m2);
6908  if(m3>= 300.0 && m3<3000.0) THoEX_gg_phi3_WW_lnuqq_ATLAS13=gg_phi3_WW_TH13/ip_ex_gg_phi_WW_lnuqq_ATLAS13(m3);
6909  if(m2>= 300.0 && m2<3000.0) THoEX_VV_phi2_WW_lnuqq_ATLAS13=VV_phi2_WW_TH13/ip_ex_VV_phi_WW_lnuqq_ATLAS13(m2);
6910  if(m3>= 300.0 && m3<3000.0) THoEX_VV_phi3_WW_lnuqq_ATLAS13=VV_phi3_WW_TH13/ip_ex_VV_phi_WW_lnuqq_ATLAS13(m3);
6911  if(m2>=1000.0 && m2<4400.0) THoEX_pp_phi2_WW_lnuqq_CMS13=pp_phi2_WW_TH13/ip_ex_pp_phi_WW_lnuqq_CMS13(m2);
6912  if(m3>=1000.0 && m3<4400.0) THoEX_pp_phi3_WW_lnuqq_CMS13=pp_phi3_WW_TH13/ip_ex_pp_phi_WW_lnuqq_CMS13(m3);
6913  if(m2>= 145.0 && m2<1000.0) THoEX_mu_pp_phi2_VV_CMS8=mu_pp_phi2_VV_TH8/ip_ex_mu_pp_phi_VV_CMS8(m2);
6914  if(m3>= 145.0 && m3<1000.0) THoEX_mu_pp_phi3_VV_CMS8=mu_pp_phi3_VV_TH8/ip_ex_mu_pp_phi_VV_CMS8(m3);
6915  if(m2>=1200.0 && m2<3000.0) THoEX_pp_phi2_VV_qqqq_ATLAS13=pp_phi2_VV_TH13/ip_ex_pp_phi_VV_qqqq_ATLAS13(m2);
6916  if(m3>=1200.0 && m3<3000.0) THoEX_pp_phi3_VV_qqqq_ATLAS13=pp_phi3_VV_TH13/ip_ex_pp_phi_VV_qqqq_ATLAS13(m3);
6917  if(m2>= 260.0 && m2<1000.0) THoEX_gg_phi2_phi1phi1_ATLAS8=gg_phi2_phi1phi1_TH8/ip_ex_gg_phi_phi1phi1_ATLAS8(m2);
6918  if(m3>= 260.0 && m3<1000.0) THoEX_gg_phi3_phi1phi1_ATLAS8=gg_phi3_phi1phi1_TH8/ip_ex_gg_phi_phi1phi1_ATLAS8(m3);
6919  if(m2>= 270.0 && m2<1100.0) THoEX_pp_phi2_phi1phi1_bbbb_CMS8=pp_phi2_phi1phi1_bbbb_TH8/ip_ex_pp_phi_phi1phi1_bbbb_CMS8(m2);
6920  if(m3>= 270.0 && m3<1100.0) THoEX_pp_phi3_phi1phi1_bbbb_CMS8=pp_phi3_phi1phi1_bbbb_TH8/ip_ex_pp_phi_phi1phi1_bbbb_CMS8(m3);
6921  if(m2>= 260.0 && m2<1100.0) THoEX_pp_phi2_phi1phi1_bbgaga_CMS8=pp_phi2_phi1phi1_bbgaga_TH8/ip_ex_pp_phi_phi1phi1_bbgaga_CMS8(m2);
6922  if(m3>= 260.0 && m3<1100.0) THoEX_pp_phi3_phi1phi1_bbgaga_CMS8=pp_phi3_phi1phi1_bbgaga_TH8/ip_ex_pp_phi_phi1phi1_bbgaga_CMS8(m3);
6923  if(m2>= 260.0 && m2< 350.0) THoEX_gg_phi2_phi1phi1_bbtautau_CMS8=gg_phi2_phi1phi1_bbtautau_TH8/ip_ex_gg_phi_phi1phi1_bbtautau_CMS8(m2);
6924  if(m3>= 260.0 && m3< 350.0) THoEX_gg_phi3_phi1phi1_bbtautau_CMS8=gg_phi3_phi1phi1_bbtautau_TH8/ip_ex_gg_phi_phi1phi1_bbtautau_CMS8(m3);
6925  if(m2>= 350.0 && m2<1000.0) THoEX_pp_phi2_phi1phi1_bbtautau_CMS8=pp_phi2_phi1phi1_TH8/ip_ex_pp_phi_phi1phi1_bbtautau_CMS8(m2);
6926  if(m3>= 350.0 && m3<1000.0) THoEX_pp_phi3_phi1phi1_bbtautau_CMS8=pp_phi3_phi1phi1_TH8/ip_ex_pp_phi_phi1phi1_bbtautau_CMS8(m3);
6927  if(m2>= 260.0 && m2<3000.0) THoEX_pp_phi2_phi1phi1_bbbb_ATLAS13=pp_phi2_phi1phi1_bbbb_TH13/ip_ex_pp_phi_phi1phi1_bbbb_ATLAS13(m2);
6928  if(m3>= 260.0 && m3<3000.0) THoEX_pp_phi3_phi1phi1_bbbb_ATLAS13=pp_phi3_phi1phi1_bbbb_TH13/ip_ex_pp_phi_phi1phi1_bbbb_ATLAS13(m3);
6929  if(m2>= 260.0 && m2<1200.0) THoEX_pp_phi2_phi1phi1_bbbb_1_CMS13=pp_phi2_phi1phi1_bbbb_TH13/ip_ex_pp_phi_phi1phi1_bbbb_1_CMS13(m2);
6930  if(m3>= 260.0 && m3<1200.0) THoEX_pp_phi3_phi1phi1_bbbb_1_CMS13=pp_phi3_phi1phi1_bbbb_TH13/ip_ex_pp_phi_phi1phi1_bbbb_1_CMS13(m3);
6931  if(m2>=1200.0 && m2<3000.0) THoEX_pp_phi2_phi1phi1_bbbb_2_CMS13=pp_phi2_phi1phi1_bbbb_TH13/ip_ex_pp_phi_phi1phi1_bbbb_2_CMS13(m2);
6932  if(m3>=1200.0 && m3<3000.0) THoEX_pp_phi3_phi1phi1_bbbb_2_CMS13=pp_phi3_phi1phi1_bbbb_TH13/ip_ex_pp_phi_phi1phi1_bbbb_2_CMS13(m3);
6933  if(m2>= 260.0 && m2<1000.0) THoEX_pp_phi2_phi1phi1_bbgaga_ATLAS13=pp_phi2_phi1phi1_TH13/ip_ex_pp_phi_phi1phi1_bbgaga_ATLAS13(m2);
6934  if(m3>= 260.0 && m3<1000.0) THoEX_pp_phi3_phi1phi1_bbgaga_ATLAS13=pp_phi3_phi1phi1_TH13/ip_ex_pp_phi_phi1phi1_bbgaga_ATLAS13(m3);
6935  if(m2>= 250.0 && m2< 900.0) THoEX_pp_phi2_phi1phi1_bbgaga_CMS13=pp_phi2_phi1phi1_bbgaga_TH13/ip_ex_pp_phi_phi1phi1_bbgaga_CMS13(m2);
6936  if(m3>= 250.0 && m3< 900.0) THoEX_pp_phi3_phi1phi1_bbgaga_CMS13=pp_phi3_phi1phi1_bbgaga_TH13/ip_ex_pp_phi_phi1phi1_bbgaga_CMS13(m3);
6937  if(m2>= 260.0 && m2<1000.0) THoEX_pp_phi2_phi1phi1_bbtautau_ATLAS13=pp_phi2_phi1phi1_bbtautau_TH13/ip_ex_pp_phi_phi1phi1_bbtautau_ATLAS13(m2);
6938  if(m3>= 260.0 && m3<1000.0) THoEX_pp_phi3_phi1phi1_bbtautau_ATLAS13=pp_phi3_phi1phi1_bbtautau_TH13/ip_ex_pp_phi_phi1phi1_bbtautau_ATLAS13(m3);
6939  if(m2>= 250.0 && m2< 900.0) THoEX_pp_phi2_phi1phi1_bbtautau_1_CMS13=pp_phi2_phi1phi1_bbtautau_TH13/ip_ex_pp_phi_phi1phi1_bbtautau_1_CMS13(m2);
6940  if(m3>= 250.0 && m3< 900.0) THoEX_pp_phi3_phi1phi1_bbtautau_1_CMS13=pp_phi3_phi1phi1_bbtautau_TH13/ip_ex_pp_phi_phi1phi1_bbtautau_1_CMS13(m3);
6941  if(m2>= 900.0 && m2<4000.0) THoEX_pp_phi2_phi1phi1_bbtautau_2_CMS13=pp_phi2_phi1phi1_TH13/ip_ex_pp_phi_phi1phi1_bbtautau_2_CMS13(m2);
6942  if(m3>= 900.0 && m3<4000.0) THoEX_pp_phi3_phi1phi1_bbtautau_2_CMS13=pp_phi3_phi1phi1_TH13/ip_ex_pp_phi_phi1phi1_bbtautau_2_CMS13(m3);
6943  if(m2>= 260.0 && m2< 900.0) THoEX_pp_phi2_phi1phi1_bbVV_CMS13=pp_phi2_phi1phi1_bbVV_TH13/ip_ex_pp_phi_phi1phi1_bbVV_CMS13(m2);
6944  if(m3>= 260.0 && m3< 900.0) THoEX_pp_phi3_phi1phi1_bbVV_CMS13=pp_phi3_phi1phi1_bbVV_TH13/ip_ex_pp_phi_phi1phi1_bbVV_CMS13(m3);
6945  if(m2>= 500.0 && m2< 3000.0) THoEX_pp_phi2_phi1phi1_bbWW_ATLAS13=pp_phi2_phi1phi1_bbWW_TH13/ip_ex_pp_phi_phi1phi1_bbWW_ATLAS13(m2);
6946  if(m3>= 500.0 && m3< 3000.0) THoEX_pp_phi3_phi1phi1_bbWW_ATLAS13=pp_phi3_phi1phi1_bbWW_TH13/ip_ex_pp_phi_phi1phi1_bbWW_ATLAS13(m3);
6947  if(m2>= 260.0 && m2< 500.0) THoEX_gg_phi2_phi1phi1_gagaWW_ATLAS13=gg_phi2_phi1phi1_gagaWW_TH13/ip_ex_gg_phi_phi1phi1_gagaWW_ATLAS13(m2);
6948  if(m3>= 260.0 && m3< 500.0) THoEX_gg_phi3_phi1phi1_gagaWW_ATLAS13=gg_phi3_phi1phi1_gagaWW_TH13/ip_ex_gg_phi_phi1phi1_gagaWW_ATLAS13(m3);
6949 
6950 
6951  if(m2>= 220.0 && m2<1000.0) THoEX_gg_phi2_phi1Z_bbZ_ATLAS8=gg_phi2_phi1Z_bbZ_TH8/ip_ex_gg_phi_phi1Z_bbZ_ATLAS8(m2);
6952  if(m3>= 220.0 && m3<1000.0) THoEX_gg_phi3_phi1Z_bbZ_ATLAS8=gg_phi3_phi1Z_bbZ_TH8/ip_ex_gg_phi_phi1Z_bbZ_ATLAS8(m3);
6953  if(m2>= 225.0 && m2< 600.0) THoEX_gg_phi2_phi1Z_bbll_CMS8=gg_phi2_phi1Z_bbll_TH8/ip_ex_gg_phi_phi1Z_bbll_CMS8(m2);
6954  if(m3>= 225.0 && m3< 600.0) THoEX_gg_phi3_phi1Z_bbll_CMS8=gg_phi3_phi1Z_bbll_TH8/ip_ex_gg_phi_phi1Z_bbll_CMS8(m3);
6955  if(m2>= 220.0 && m2<1000.0) THoEX_gg_phi2_phi1Z_tautauZ_ATLAS8=gg_phi2_phi1Z_tautauZ_TH8/ip_ex_gg_phi_phi1Z_tautauZ_ATLAS8(m2);
6956  if(m3>= 220.0 && m3<1000.0) THoEX_gg_phi3_phi1Z_tautauZ_ATLAS8=gg_phi3_phi1Z_tautauZ_TH8/ip_ex_gg_phi_phi1Z_tautauZ_ATLAS8(m3);
6957  if(m2>= 220.0 && m2< 350.0) THoEX_gg_phi2_phi1Z_tautaull_CMS8=gg_phi2_phi1Z_tautaull_TH8/ip_ex_gg_phi_phi1Z_tautaull_CMS8(m2);
6958  if(m3>= 220.0 && m3< 350.0) THoEX_gg_phi3_phi1Z_tautaull_CMS8=gg_phi3_phi1Z_tautaull_TH8/ip_ex_gg_phi_phi1Z_tautaull_CMS8(m3);
6959  if(m2>= 200.0 && m2<2000.0) THoEX_gg_phi2_phi1Z_bbZ_ATLAS13=gg_phi2_phi1Z_bbZ_TH13/ip_ex_gg_phi_phi1Z_bbZ_ATLAS13(m2);
6960  if(m3>= 200.0 && m3<2000.0) THoEX_gg_phi3_phi1Z_bbZ_ATLAS13=gg_phi3_phi1Z_bbZ_TH13/ip_ex_gg_phi_phi1Z_bbZ_ATLAS13(m3);
6961  if(m2>= 220.0 && m2< 800.0) THoEX_gg_phi2_phi1Z_bbZ_1_CMS13=gg_phi2_phi1Z_bbZ_TH13/ip_ex_gg_phi_phi1Z_bbZ_1_CMS13(m2);
6962  if(m3>= 220.0 && m3< 800.0) THoEX_gg_phi3_phi1Z_bbZ_1_CMS13=gg_phi3_phi1Z_bbZ_TH13/ip_ex_gg_phi_phi1Z_bbZ_1_CMS13(m3);
6963  if(m2>= 800.0 && m2<2000.0) THoEX_gg_phi2_phi1Z_bbZ_2_CMS13=gg_phi2_phi1Z_bbZ_TH13/ip_ex_gg_phi_phi1Z_bbZ_2_CMS13(m2);
6964  if(m3>= 800.0 && m3<2000.0) THoEX_gg_phi3_phi1Z_bbZ_2_CMS13=gg_phi3_phi1Z_bbZ_TH13/ip_ex_gg_phi_phi1Z_bbZ_2_CMS13(m3);
6965  if(m2>= 200.0 && m2<2000.0) THoEX_bb_phi2_phi1Z_bbZ_ATLAS13=bb_phi2_phi1Z_bbZ_TH13/ip_ex_bb_phi_phi1Z_bbZ_ATLAS13(m2);
6966  if(m3>= 200.0 && m3<2000.0) THoEX_bb_phi3_phi1Z_bbZ_ATLAS13=bb_phi3_phi1Z_bbZ_TH13/ip_ex_bb_phi_phi1Z_bbZ_ATLAS13(m3);
6967  if(m2>= 220.0 && m2< 800.0) THoEX_bb_phi2_phi1Z_bbZ_1_CMS13=bb_phi2_phi1Z_bbZ_TH13/ip_ex_bb_phi_phi1Z_bbZ_1_CMS13(m2);
6968  if(m3>= 220.0 && m3< 800.0) THoEX_bb_phi3_phi1Z_bbZ_1_CMS13=bb_phi3_phi1Z_bbZ_TH13/ip_ex_bb_phi_phi1Z_bbZ_1_CMS13(m3);
6969  if(m2>= 800.0 && m2<2000.0) THoEX_bb_phi2_phi1Z_bbZ_2_CMS13=bb_phi2_phi1Z_bbZ_TH13/ip_ex_bb_phi_phi1Z_bbZ_2_CMS13(m2);
6970  if(m3>= 800.0 && m3<2000.0) THoEX_bb_phi3_phi1Z_bbZ_2_CMS13=bb_phi3_phi1Z_bbZ_TH13/ip_ex_bb_phi_phi1Z_bbZ_2_CMS13(m3);
6971  if(m3>= 175.0 && m3<1000.0 && m2 >=50.0 && m2 <910.0) THoEX_pp_phi3_phi2Z_bbll_1_CMS8=pp_phi3_phi2Z_bbll_TH8/ip_ex_pp_phii_phijZ_bbll_1_CMS8(m3,m2); //mA=m3, mH=m2
6972  if(m2>= 175.0 && m2<1000.0 && m3 >=50.0 && m3 <910.0) THoEX_pp_phi2_phi3Z_bbll_1_CMS8=pp_phi2_phi3Z_bbll_TH8/ip_ex_pp_phii_phijZ_bbll_1_CMS8(m2,m3); //mA=m3, mH=m2
6973  if(m3>= 50.0 && m3<1000.0 && m2 >=50.0 && m2 <1000.0) THoEX_pp_phi3_phi2Z_tautaull_1_CMS8=pp_phi3_phi2Z_tautaull_TH8/ip_ex_pp_phii_phijZ_tautaull_1_CMS8(m3,m2); //mA=m3, mH=m2
6974  if(m2>= 50.0 && m2<1000.0 && m3 >=50.0 && m3 <1000.0) THoEX_pp_phi2_phi3Z_tautaull_1_CMS8=pp_phi2_phi3Z_tautaull_TH8/ip_ex_pp_phii_phijZ_tautaull_1_CMS8(m2,m3); //mA=m3, mH=m2
6975  if(m3>= 50.0 && m3<1000.0 && m2 >=50.0 && m2 <1000.0) THoEX_pp_phi3_phi2Z_tautaull_2_CMS8=pp_phi3_phi2Z_tautaull_TH8/ip_ex_pp_phii_phijZ_tautaull_2_CMS8(m2,m3); //mA=m2, mH=m3
6976  if(m2>= 50.0 && m2<1000.0 && m3 >=50.0 && m3 <1000.0) THoEX_pp_phi2_phi3Z_tautaull_2_CMS8=pp_phi2_phi3Z_tautaull_TH8/ip_ex_pp_phii_phijZ_tautaull_2_CMS8(m3,m2); //mA=m2, mH=m3
6977  if(m3 >= 230.0 && m3 <800.0 && m2>=130.0 && m2<700.0) THoEX_gg_phi3_phi2Z_bbZ_ATLAS13=gg_phi3_phi2Z_bbZ_TH13/ip_ex_gg_phii_phijZ_bbZ_ATLAS13(m3,m2);
6978  if(m2 >= 230.0 && m2 <800.0 && m3>=130.0 && m3<700.0) THoEX_gg_phi2_phi3Z_bbZ_ATLAS13=gg_phi2_phi3Z_bbZ_TH13/ip_ex_gg_phii_phijZ_bbZ_ATLAS13(m2,m3);
6979  if(m3 >= 230.0 && m3 <800.0 && m2>=130.0 && m2<700.0) THoEX_bb_phi3_phi2Z_bbZ_ATLAS13=bb_phi3_phi2Z_bbZ_TH13/ip_ex_bb_phii_phijZ_bbZ_ATLAS13(m3,m2);
6980  if(m2 >= 230.0 && m2 <800.0 && m3>=130.0 && m3<700.0) THoEX_bb_phi2_phi3Z_bbZ_ATLAS13=bb_phi2_phi3Z_bbZ_TH13/ip_ex_bb_phii_phijZ_bbZ_ATLAS13(m2,m3);
6981 
6982  if(mHp>= 180.0 && mHp<1000.0) THoEX_pp_Hpm_taunu_ATLAS8=pp_Hpm_taunu_TH8/ip_ex_pp_Hpm_taunu_ATLAS8(mHp);
6983  if(mHp>= 180.0 && mHp< 600.0) THoEX_pp_Hp_taunu_CMS8=pp_Hp_taunu_TH8/ip_ex_pp_Hp_taunu_CMS8(mHp);
6984  if(mHp>= 150.0 && mHp<2000.0) THoEX_pp_Hpm_taunu_ATLAS13=pp_Hpm_taunu_TH13/ip_ex_pp_Hpm_taunu_ATLAS13(mHp);
6985  if(mHp>= 180.0 && mHp<3000.0) THoEX_pp_Hpm_taunu_CMS13=pp_Hpm_taunu_TH13/ip_ex_pp_Hpm_taunu_CMS13(mHp);
6986  if(mHp>= 200.0 && mHp< 600.0) THoEX_pp_Hpm_tb_ATLAS8=pp_Hpm_tb_TH8/ip_ex_pp_Hpm_tb_ATLAS8(mHp);
6987  if(mHp>= 180.0 && mHp< 600.0) THoEX_pp_Hp_tb_CMS8=pp_Hp_tb_TH8/ip_ex_pp_Hp_tb_CMS8(mHp);
6988  if(mHp>= 200.0 && mHp<2000.0) THoEX_pp_Hpm_tb_ATLAS13=pp_Hpm_tb_TH13/ip_ex_pp_Hpm_tb_ATLAS13(mHp);
6989 
6990  return 0.;
6991 }
6992 
6993 void GeneralTHDMcache::runGeneralTHDMparameters()
6994 {
6995 
6996  std::string RGEorder=myGTHDM->getRGEorderflag();
6997  //flag will be used to transport information about model and RGEorder to the Runner:
6998  //flag=0 for LO (1 for approxNLO and 2 for NLO - not implemented yet)
6999  int flag;
7000  if( RGEorder == "LO" ) flag=0;
7001 // else if( RGEorder == "approxNLO" ) flag=1;
7002 // else if( RGEorder == "NLO" ) flag=2;
7003  else {
7004  throw std::runtime_error("RGEorder can be only \"LO\" at the moment");//any of \"LO\", \"approxNLO\" or \"NLO\"
7005  }
7006 
7007  if(myGTHDM->getATHDMflag() && myGTHDM->getCPconservationflag())
7008  {
7009  double g1_at_MZ=sqrt(4.0*M_PI*Ale/cW2);
7010  double g2_at_MZ=sqrt(4.0*M_PI*Ale/(1-cW2));
7011  double g3_at_MZ=sqrt(4.0*M_PI*Als);
7012  double v1_at_MZ=0.;
7013  double v2_at_MZ=0.;
7014  double etaU1_at_MZ=0.;
7015  double etaU2_at_MZ=0.;
7016  double etaD1_at_MZ=0.;
7017  double etaD2_at_MZ=0.;
7018  double etaL1_at_MZ=0.;
7019  double etaL2_at_MZ=0.;
7020  double m11sq_at_MZ=0.;
7021  double m12sq_at_MZ=0.;
7022  double m22sq_at_MZ=0.;
7023  double lambda1_at_MZ=lambda1;
7024  double lambda2_at_MZ=lambda2;
7025  double lambda3_at_MZ=lambda3;
7026  double lambda4_at_MZ=lambda4;
7027  double lambda5_at_MZ=Relambda5;
7028  double lambda6_at_MZ=Relambda6;
7029  double lambda7_at_MZ=Relambda7;
7030  double RpepsGTHDM=myGTHDM->getRpepsGTHDM();
7031  double NLOuniscale=myGTHDM->getNLOuniscaleGTHDM();
7032 
7033  if(fabs(Q_GTHDM-log10(MZ))<0.005) //at MZ scale
7034  {
7035  Q_cutoff=log10(MZ);
7036 
7037  g1_at_Q = g1_at_MZ;
7038  g2_at_Q = g2_at_MZ;
7039  g3_at_Q = g3_at_MZ;
7040  v1_at_Q = v1_at_MZ;
7041  v2_at_Q = v2_at_MZ;
7042  etaU1_at_Q = etaU1_at_MZ;
7043  etaU2_at_Q = etaU2_at_MZ;
7044  etaD1_at_Q = etaD1_at_MZ;
7045  etaD2_at_Q = etaD2_at_MZ;
7046  etaL1_at_Q = etaL1_at_MZ;
7047  etaL2_at_Q = etaL2_at_MZ;
7048  m11sq_at_Q = m11sq_at_MZ;
7049  m12sq_at_Q = m12sq_at_MZ;
7050  m22sq_at_Q = m22sq_at_MZ;
7051  lambda1_at_Q = lambda1_at_MZ;
7052  lambda2_at_Q = lambda2_at_MZ;
7053  lambda3_at_Q = lambda3_at_MZ;
7054  lambda4_at_Q = lambda4_at_MZ;
7055  Relambda5_at_Q = lambda5_at_MZ;
7056  Relambda6_at_Q = lambda6_at_MZ;
7057  Relambda7_at_Q = lambda7_at_MZ;
7058  }
7059  else //at some other scale
7060  {
7061  double InitVals[21];
7062  InitVals[0]=g1_at_MZ;
7063  InitVals[1]=g2_at_MZ;
7064  InitVals[2]=g3_at_MZ;
7065  InitVals[3]=v1_at_MZ;
7066  InitVals[4]=v2_at_MZ;
7067  InitVals[5]=etaU1_at_MZ;
7068  InitVals[6]=etaU2_at_MZ;
7069  InitVals[7]=etaD1_at_MZ;
7070  InitVals[8]=etaD2_at_MZ;
7071  InitVals[9]=etaL1_at_MZ;
7072  InitVals[10]=etaL2_at_MZ;
7073  InitVals[11]=m11sq_at_MZ;
7074  InitVals[12]=m12sq_at_MZ;
7075  InitVals[13]=m22sq_at_MZ;
7076  InitVals[14]=lambda1_at_MZ;
7077  InitVals[15]=lambda2_at_MZ;
7078  InitVals[16]=lambda3_at_MZ;
7079  InitVals[17]=lambda4_at_MZ;
7080  InitVals[18]=lambda5_at_MZ;
7081  InitVals[19]=lambda6_at_MZ;
7082  InitVals[20]=lambda7_at_MZ;
7083 
7084  Q_cutoff=myRunnerGTHDM->RGEGeneralTHDMRunner(InitVals, 21, log10(MZ), Q_GTHDM, flag, RpepsGTHDM, NLOuniscale); //Running up to Q_cutoff<=Q_GTHDM
7085 
7086  g1_at_Q = InitVals[0];
7087  g2_at_Q = InitVals[1];
7088  g3_at_Q = InitVals[2];
7089  v1_at_Q = InitVals[3];
7090  v2_at_Q = InitVals[4];
7091  etaU1_at_Q = InitVals[5];
7092  etaU2_at_Q = InitVals[6];
7093  etaD1_at_Q = InitVals[7];
7094  etaD2_at_Q = InitVals[8];
7095  etaL1_at_Q = InitVals[9];
7096  etaL2_at_Q = InitVals[10];
7097  m11sq_at_Q = InitVals[11];
7098  m12sq_at_Q = InitVals[12];
7099  m22sq_at_Q = InitVals[13];
7100  lambda1_at_Q = InitVals[14];
7101  lambda2_at_Q = InitVals[15];
7102  lambda3_at_Q = InitVals[16];
7103  lambda4_at_Q = InitVals[17];
7104  Relambda5_at_Q = InitVals[18];
7105  Relambda6_at_Q = InitVals[19];
7106  Relambda7_at_Q = InitVals[20];
7107  }
7108  }//End ATHDM case
7109  else {
7110  throw std::runtime_error("RGE are only defined for the CP conserving ATHDM at the moment");
7111  }
7112 }
7113 
7115 {
7116  mHl=myGTHDM->getMHl();
7117  mH1sq=mHl*mHl;
7118  mH2sq=myGTHDM->getmH2sq();
7119  mH3sq=myGTHDM->getmH3sq();
7120  mHp2=myGTHDM->getmHp2();
7121  vev=myGTHDM->v();
7122  tanb=myGTHDM->gettanb();
7123  cosb=myGTHDM->getcosb();
7124  sinb=myGTHDM->getsinb();
7125  cosa1=myGTHDM->getcosalpha1();
7126  sina1=myGTHDM->getsinalpha1();
7127  cosa2=myGTHDM->getcosalpha2();
7128  sina2=myGTHDM->getsinalpha2();
7129  cosa3=myGTHDM->getcosalpha3();
7130  sina3=myGTHDM->getsinalpha3();
7131  Relambda5=myGTHDM->getRelambda5();
7132  Imlambda5=myGTHDM->getImlambda5();
7133  Relambda6=myGTHDM->getRelambda6();
7134  Relambda7=myGTHDM->getRelambda7();
7135 
7136  R11_GTHDM = cosa1*cosa2;
7137  R12_GTHDM = sina1*cosa2;
7138  R13_GTHDM = -sina2;
7139  R21_GTHDM = cosa1*sina2*sina3 - sina1*cosa3;
7140  R22_GTHDM = sina1*sina2*sina3 + cosa1*cosa3;
7141  R23_GTHDM = cosa2*sina3;
7142  R31_GTHDM = cosa2*sina2*cosa3 + sina1*sina3;
7143  R32_GTHDM = sina1*sina2*cosa3 - cosa1*sina3;
7144  R33_GTHDM = cosa2*cosa3;
7145 
7146  R11 = cosa1*cosa2;
7147  R12 = sina1*cosa2;
7148  R13 = -sina2;
7149  R21 = cosa1*sina2*sina3 - sina1*cosa3;
7150  R22 = sina1*sina2*sina3 + cosa1*cosa3;
7151  R23 = cosa2*sina3;
7152  R31 = cosa2*sina2*cosa3 + sina1*sina3;
7153  R32 = sina1*sina2*cosa3 - cosa1*sina3;
7154  R33 = cosa2*cosa3;
7155 
7156  /*The Mij_2 are defined such that Msqdiag = -2*RT*M_2*R with the rotation Matrix R
7157  * and Msqdiag containing the physical mass squares on the diagonal. */
7158 
7159  M11_2 = -0.5*(mH1sq*cosa1*cosa1*cosa2*cosa2
7160  +mH2sq*sina1*sina1*cosa2*cosa2 + mH3sq*sina2*sina2);
7161  M12_2 = 0.5*cosa2*((mH1sq-mH2sq)*cosa1*cosa3*sina1
7162  +(-mH3sq+mH1sq*cosa1*cosa1+mH2sq*sina1*sina1)*sina2*sina3);
7163  M13_2 = 0.5*cosa2*(cosa3*(-mH3sq+mH1sq*cosa1*cosa1+mH2sq*sina1*sina1)*sina2
7164  +(mH2sq-mH1sq)*cosa1*sina1*sina3);
7165  M22_2 = -0.5*(mH3sq*cosa2*cosa2*sina3*sina3
7166  +mH1sq*(cosa3*sina1+cosa1*sina2*sina3)*(cosa3*sina1+cosa1*sina2*sina3)
7167  +mH2sq*(cosa1*cosa3-sina1*sina2*sina3)*(cosa1*cosa3-sina1*sina2*sina3));
7168  M23_2 = 0.5*((mH2sq-mH1sq)*cosa1*(cosa3*cosa3-sina3*sina3)*sina1*sina2
7169  +cosa1*cosa1*cosa3*(mH2sq-mH1sq*sina2*sina2)*sina3
7170  -cosa3*sina3*(mH3sq*cosa2*cosa2+sina1*sina1*(-mH1sq+mH2sq*sina2*sina2)));
7171  M33_2 = -0.5*(mH3sq*cosa2*cosa2*cosa3*cosa3
7172  +mH2sq*(cosa3*sina1*sina2+cosa1*sina3)*(cosa3*sina1*sina2+cosa1*sina3)
7173  +mH1sq*(cosa1*cosa3*sina2-sina1*sina3)*(cosa1*cosa3*sina2-sina1*sina3));
7174 
7175  //Remaining general potential parameters
7176  m11sq = M11_2 - M33_2 - M12_2*tanb + 0.5*Relambda5*vev*vev
7177  + (M33_2-0.5*Relambda5*vev*vev)*(cosb*cosb-sinb*sinb)
7178  + 0.5*vev*vev*((Relambda6-Relambda7)*sinb*cosb+Relambda7*tanb);
7179 
7180  m22sq = M11_2 - M33_2 + M12_2/tanb + 0.5*Relambda5*vev*vev
7181  - (M33_2-0.5*Relambda5*vev*vev)*(cosb*cosb-sinb*sinb)
7182  + 0.25*vev*vev*(Relambda6+Relambda7+(Relambda6-Relambda7)*(cosb*cosb-sinb*sinb))/tanb;
7183 
7184  Rem12sq = 0.25*vev*vev*(Relambda6+Relambda7+(Relambda6-Relambda7)*(cosb*cosb-sinb*sinb))
7185  - (2.0*M33_2-Relambda5*vev*vev)*sinb*cosb;
7186 
7187  Imm12sq = M13_2;
7188 
7189  lambda1 = (-2.0*(M11_2-M22_2+M33_2) + Relambda5*vev*vev
7190  - (2.0*M22_2-2.0*M33_2+Relambda5*vev*vev)/(cosb*cosb)
7191  + (4.0*M12_2-2.0*Relambda6*vev*vev)*tanb)/(vev*vev);
7192 
7193  lambda2 = (-2.0*(M11_2-M22_2+M33_2) + Relambda5*vev*vev
7194  - (2.0*M22_2-2.0*M33_2+Relambda5*vev*vev)/(sinb*sinb)
7195  - (4.0*M12_2+2.0*Relambda7*vev*vev)/tanb)/(vev*vev);
7196 
7197  lambda3 = -(2.0*(M11_2-M22_2-M33_2-mHp2) + Relambda5*vev*vev
7198  + (2.0*M12_2+Relambda6*vev*vev)/tanb
7199  - (2.0*M12_2-Relambda7*vev*vev)*tanb)/(vev*vev);
7200 
7201  lambda4 = Relambda5 - (2.0*mHp2+4.0*M33_2)/(vev*vev);
7202 
7203  Imlambda6 = (2.0*M13_2-(2.0*M23_2+0.5*Imlambda5*vev*vev)*tanb)/(vev*vev);
7204 
7205  Imlambda7 = 2.0*M13_2/(vev*vev) + (-0.5*Imlambda5+(2.0*M23_2)/(vev*vev))/tanb;
7206 
7207  //Higgs potential parameters
7208 
7209  m11sqH = M11_2;
7210  m22sqH = M11_2-2.0*M33_2+Relambda5*vev*vev
7211  +(M12_2+0.5*(Relambda6*vev*vev))/tanb
7212  -(M12_2-0.5*(Relambda7*vev*vev))*tanb;
7213  Rem12sqH = -M12_2;
7214  Imm12sqH = M13_2;
7215  lambda1H = -2.0*M11_2/(vev*vev);
7216  lambda2H = -2.0*((2.0*M12_2+Relambda7*vev*vev)/tanb
7217  +M11_2-4.0*M22_2+4.0*M33_2-2.0*Relambda5*vev*vev
7218  +(M22_2-M33_2+0.5*Relambda5*vev*vev)/(sinb*sinb*cosb*cosb)
7219  -2.0*M12_2*tanb+Relambda6*vev*vev*tanb)/(vev*vev);
7220  lambda3H = -((2.0*(M11_2-2.0*M33_2-mHp2+Relambda5*vev*vev)
7221  +(2.0*M12_2+Relambda6*vev*vev)/tanb
7222  -(2.0*M12_2-Relambda7*vev*vev)*tanb)/(vev*vev));
7223  lambda4H = -2.0*(M22_2+M33_2+mHp2)/(vev*vev);
7224  Relambda5H = -2.0*(M22_2-M33_2)/(vev*vev);
7225  Imlambda5H = 4.0*M23_2/(vev*vev);
7226  Relambda6H = -2.0*M12_2/(vev*vev);
7227  Imlambda6H = 2.0*M13_2/(vev*vev);
7228  Relambda7H = (-2.0*M12_2+(Relambda6-Relambda7)*vev*vev
7229  +(2.0*M22_2-2.0*M33_2+Relambda5*vev*vev)*(tanb-1.0/tanb))/(vev*vev);
7230  Imlambda7H = 2.0*(M13_2-M23_2*(tanb-1.0/tanb))/(vev*vev)-0.5*Imlambda5/(sinb*cosb);
7231 
7232 
7233  M2 = Rem12sq/(sinb*cosb);
7234 
7235 
7236 // R11_GTHDM = cosalpha1*cosalpha2;
7237 // R12_GTHDM = sinalpha1*cosalpha2;
7238 // R13_GTHDM = -sinalpha2;
7239 // R21_GTHDM = cosalpha1*sinalpha2*sinalpha3 - sinalpha1*cosalpha3;
7240 // R22_GTHDM = sinalpha1*sinalpha2*sinalpha3 + cosalpha1*cosalpha3;
7241 // R23_GTHDM = cosalpha2*sinalpha3;
7242 // R31_GTHDM = cosalpha1*sinalpha2*cosalpha3 + sinalpha1*sinalpha3;
7243 // R32_GTHDM = sinalpha1*sinalpha2*cosalpha3 - cosalpha1*sinalpha3;
7244 // R33_GTHDM = cosalpha2*cosalpha3;
7245 
7246 // M13_2 = -vev*vev*(sinb*cosb*Imlambda5 + cosb*cosb*Imlambda6 + sinb*sinb*Imlambda7);
7247 // M23_2 = -vev*vev*((cosb*cosb - sinb*sinb)*Imlambda5 + 2.*sinb*cosb*(Imlambda7 - Imlambda6))/2.;
7248 
7249 // std::cout<<"mH1sq before ordering = "<<mH1sq<<std::endl;
7250 // std::cout<<"mH2sq before ordering = "<<mH2sq<<std::endl;
7251 // std::cout<<"mH3sq before ordering = "<<mH3sq<<std::endl;
7252 
7253  if(mH1sq<mH3sq && mH3sq<mH2sq)
7254  {
7255  //1<3<2 swap 2 and 3
7256  mHlight_2 = mH1sq;
7257  mHmedium_2 = mH3sq;
7258  mHheavy_2 = mH2sq;
7259  }
7260  else if(mH3sq<mH2sq && mH2sq<mH1sq)
7261  {
7262  //3<2<1 swap 1 and 3
7263  mHlight_2 = mH3sq;
7264  mHmedium_2 = mH2sq;
7265  mHheavy_2 = mH1sq;
7266  }
7267  else if(mH2sq<mH1sq && mH1sq<mH3sq)
7268  {
7269  //2<1<3 swap 1 and 2
7270  mHlight_2 = mH2sq;
7271  mHmedium_2 = mH1sq;
7272  mHheavy_2 = mH3sq;
7273  }
7274  else if(mH2sq<mH3sq && mH3sq<mH1sq)
7275  {
7276  //2<3<1: 3->2, 1->3, 2->1
7277  mHlight_2 = mH2sq;
7278  mHmedium_2 = mH3sq;
7279  mHheavy_2 = mH1sq;
7280  }
7281  else if(mH3sq<mH1sq && mH1sq<mH2sq)
7282  {
7283  //3<1<2 3->1, 1->2, 2->3
7284  mHlight_2 = mH3sq;
7285  mHmedium_2 = mH1sq;
7286  mHheavy_2 = mH2sq;
7287  }
7288 
7289  else if(mH1sq<mH2sq && mH2sq<mH3sq)
7290  {
7291  //1<2<3 ok
7292  mHlight_2 = mH1sq;
7293  mHmedium_2 = mH2sq;
7294  mHheavy_2 = mH3sq;
7295  }
7296 
7297 // M11_2 = (mH1sq*cosalpha1*cosalpha1*cosalpha2*cosalpha2 + mH2sq*sinalpha1*sinalpha1*cosalpha2*cosalpha2 + mH3sq*sinalpha2*sinalpha2);
7298 //
7299 // M12_2 = (mH1sq*cosalpha1*cosalpha2*(cosalpha1*sinalpha2*sinalpha3 - cosalpha3*sinalpha1)
7300 // + mH2sq*cosalpha2*sinalpha1*(cosalpha1*cosalpha3 + sinalpha1*sinalpha2*sinalpha3)
7301 // - mH3sq*cosalpha2*sinalpha2*sinalpha3);
7302 //
7304 //
7305 // M22_2 = (mH1sq*(cosalpha1*sinalpha2*sinalpha3 - cosalpha3*sinalpha1)*(cosalpha1*sinalpha2*sinalpha3 - cosalpha3*sinalpha1)
7306 // + mH2sq*(cosalpha1*cosalpha3 + sinalpha1*sinalpha2*sinalpha3)*(cosalpha1*cosalpha3 + sinalpha1*sinalpha2*sinalpha3)
7307 // + mH3sq*cosalpha2*cosalpha2*sinalpha3*sinalpha3);
7308 //
7310 //
7311 // M33_2 = (mH1sq*(cosalpha1*cosalpha3*sinalpha2 + sinalpha1*sinalpha3)*(cosalpha1*cosalpha3*sinalpha2 + sinalpha1*sinalpha3)
7312 // + mH2sq*(cosalpha3*sinalpha1*sinalpha2 - cosalpha1*sinalpha3)*(cosalpha3*sinalpha1*sinalpha2 - cosalpha1*sinalpha3)
7313 // + mH3sq*cosalpha2*cosalpha2*cosalpha3*cosalpha3);
7314 //
7315 // m11_2_GTHDM = M2_GTHDM*(1. - cosb*cosb + 3.*sinb*sinb)/4. + (M12_2*tanb - M11_2)/2.;
7316 // m22_2_GTHDM = M2_GTHDM*(1. + 3.*cosb*cosb - sinb*sinb)/4. - (M12_2/tanb + M11_2)/2.;
7317 // Imm12_2_GTHDM = 0.5*(cosb*sinb*Imlambda5 + cosb*cosb*Imlambda6 + sinb*sinb*Imlambda7)*vev*vev;
7318 // lambda1_GTHDM = (M11_2 + tanb*tanb*(M22_2-M2_GTHDM) - 2.0*tanb*M12_2)/(vev*vev) + tanb*(tanb*tanb*Relambda7 - 3.0*Relambda6)/2.0;
7319 // lambda2_GTHDM = (M11_2 + (M22_2-M2_GTHDM)/(tanb*tanb) + 2.0*M12_2/tanb)/(vev*vev) + (0.5*Relambda6/(tanb*tanb) - 1.5*Relambda7)/tanb;
7320 // lambda3_GTHDM = (M11_2 - M22_2 - M2_GTHDM + (1.0/tanb - tanb)*M12_2 + 2.0*mHp2)/(vev*vev) - (Relambda6/tanb + tanb*Relambda7)/2.0;
7321 // lambda4_GTHDM = (M2_GTHDM + M33_2 - 2.0*mHp2)/(vev*vev) - 0.5*(Relambda6/tanb + tanb*Relambda7);
7322 // Relambda5_GTHDM = (M2_GTHDM - M33_2)/(vev*vev) - 0.5*(Relambda6/tanb + tanb*Relambda7);
7323 //
7324 
7325 
7326  Mu_GTHDM.assign(0,0, myGTHDM->getQuarks(QCD::UP).getMass());
7327  Mu_GTHDM.assign(1,1, myGTHDM->getQuarks(QCD::CHARM).getMass());
7328  Mu_GTHDM.assign(2,2, myGTHDM->getQuarks(QCD::TOP).getMass());
7329 
7330  Md_GTHDM.assign(0,0, myGTHDM->getQuarks(QCD::DOWN).getMass());
7331  Md_GTHDM.assign(1,1, myGTHDM->getQuarks(QCD::STRANGE).getMass());
7332  Md_GTHDM.assign(2,2, myGTHDM->getQuarks(QCD::BOTTOM).getMass());
7333 
7334  Ml_GTHDM.assign(0,0, myGTHDM->getLeptons(StandardModel::ELECTRON).getMass());
7335  Ml_GTHDM.assign(1,1, myGTHDM->getLeptons(StandardModel::MU).getMass());
7336  Ml_GTHDM.assign(2,2, myGTHDM->getLeptons(StandardModel::TAU).getMass());
7337 
7338  if(myGTHDM->getATHDMflag() == true)
7339  {
7340  sigmau_ATHDM = myGTHDM->getNu_11()/myGTHDM->getQuarks(StandardModel::TOP).getMass();
7341  sigmad_ATHDM = myGTHDM->getNd_11()/myGTHDM->getQuarks(StandardModel::DOWN).getMass();
7342  sigmal_ATHDM = myGTHDM->getNl_11()/myGTHDM->getLeptons(StandardModel::TAU).getMass();
7343 
7344  Nu_GTHDM.assign(0,0, sigmau_ATHDM*Mu_GTHDM(0,0));
7345  Nu_GTHDM.assign(1,1, sigmau_ATHDM*Mu_GTHDM(1,1));
7346  Nu_GTHDM.assign(2,2, sigmau_ATHDM*Mu_GTHDM(2,2));
7347 
7348  Nd_GTHDM.assign(0,0, sigmad_ATHDM*Mu_GTHDM(0,0));
7349  Nd_GTHDM.assign(1,1, sigmad_ATHDM*Md_GTHDM(1,1));
7350  Nd_GTHDM.assign(2,2, sigmad_ATHDM*Mu_GTHDM(2,2));
7351 
7352  Nl_GTHDM.assign(0,0, sigmal_ATHDM*Ml_GTHDM(0,0));
7353  Nl_GTHDM.assign(1,1, sigmal_ATHDM*Ml_GTHDM(1,1));
7354  Nl_GTHDM.assign(2,2, sigmal_ATHDM*Ml_GTHDM(2,2));
7355  }
7356  else
7357  {
7358  Nu_GTHDM.assign(0,0, myGTHDM->getNu_11());
7359  Nu_GTHDM.assign(0,1, myGTHDM->getNu_12());
7360  Nu_GTHDM.assign(0,2, myGTHDM->getNu_13());
7361  Nu_GTHDM.assign(1,0, myGTHDM->getNu_21());
7362  Nu_GTHDM.assign(1,1, myGTHDM->getNu_22());
7363  Nu_GTHDM.assign(1,2, myGTHDM->getNu_23());
7364  Nu_GTHDM.assign(2,0, myGTHDM->getNu_31());
7365  Nu_GTHDM.assign(2,1, myGTHDM->getNu_32());
7366  Nu_GTHDM.assign(2,2, myGTHDM->getNu_33());
7367 
7368  Nd_GTHDM.assign(0,0, myGTHDM->getNd_11());
7369  Nd_GTHDM.assign(0,1, myGTHDM->getNd_12());
7370  Nd_GTHDM.assign(0,2, myGTHDM->getNd_13());
7371  Nd_GTHDM.assign(1,0, myGTHDM->getNd_21());
7372  Nd_GTHDM.assign(1,1, myGTHDM->getNd_22());
7373  Nd_GTHDM.assign(1,2, myGTHDM->getNd_23());
7374  Nd_GTHDM.assign(2,0, myGTHDM->getNd_31());
7375  Nd_GTHDM.assign(2,1, myGTHDM->getNd_32());
7376  Nd_GTHDM.assign(2,2, myGTHDM->getNd_33());
7377 
7378  Nl_GTHDM.assign(0,0, myGTHDM->getNl_11());
7379  Nl_GTHDM.assign(0,1, myGTHDM->getNl_12());
7380  Nl_GTHDM.assign(0,2, myGTHDM->getNl_13());
7381  Nl_GTHDM.assign(1,0, myGTHDM->getNl_21());
7382  Nl_GTHDM.assign(1,1, myGTHDM->getNl_22());
7383  Nl_GTHDM.assign(1,2, myGTHDM->getNl_23());
7384  Nl_GTHDM.assign(2,0, myGTHDM->getNl_31());
7385  Nl_GTHDM.assign(2,1, myGTHDM->getNl_32());
7386  Nl_GTHDM.assign(2,2, myGTHDM->getNl_33());
7387  }
7388 
7389  //Definition of Yukawa matrices
7390  Yu1_GTHDM = (cosb*Mu_GTHDM - sinb*Nu_GTHDM)*sqrt(2.)/vev;
7391  Yu2_GTHDM = (cosb*Nu_GTHDM + sinb*Mu_GTHDM)*sqrt(2.)/vev;
7392  Yd1_GTHDM = (cosb*Md_GTHDM - sinb*Nd_GTHDM)*sqrt(2.)/vev;
7393  Yd2_GTHDM = (cosb*Nd_GTHDM + sinb*Md_GTHDM)*sqrt(2.)/vev;
7394  Yl1_GTHDM = (cosb*Ml_GTHDM - sinb*Nl_GTHDM)*sqrt(2.)/vev;
7395  Yl2_GTHDM = (cosb*Nl_GTHDM + sinb*Ml_GTHDM)*sqrt(2.)/vev;
7396 
7397  /*up, down and leptonic couplings */
7398  su = myGTHDM->getNu_11();
7399  sd = myGTHDM->getNd_11();
7400  sl = myGTHDM->getNl_11();
7401 
7402  /* std::cout << "su = " << su << std::endl;
7403  std::cout << "yu1R_GTHDM = " << myGTHDM->getyu1() << std::endl;
7404  std::cout << "cosa1 = " << cosa1 << std::endl;
7405  std::cout << "sina1 = " << sina1 << std::endl;*/
7406 
7407 
7408 
7409 
7410  //If to always set 1 as the SM Higgs and 3 as the heaviest
7411  /*This loop is different as the previous. Before it was ordered by mass. Now we
7412  want 1 as the SM Higgs and 3 as the heaviest*/
7413  /* if(mH1sq == mHl*mHl)
7414  {
7415  m1_2 = mH1sq;
7416 
7417  R11 = R11_GTHDM;
7418  R12 = R12_GTHDM;
7419  R13 = R13_GTHDM;
7420 
7421  if(mH2sq<mH3sq)
7422  {
7423  m2_2 = mH2sq;
7424  m3_2 = mH3sq;
7425  R21 = R21_GTHDM;
7426  R22 = R22_GTHDM;
7427  R23 = R23_GTHDM;
7428  R31 = R31_GTHDM;
7429  R32 = R32_GTHDM;
7430  R33 = R33_GTHDM;
7431  }
7432  else if(mH3sq<mH2sq)
7433  {
7434  m2_2 = mH3sq;
7435  m3_2 = mH2sq;
7436  R21 = R31_GTHDM;
7437  R22 = R32_GTHDM;
7438  R23 = R33_GTHDM;
7439  R31 = R21_GTHDM;
7440  R32 = R22_GTHDM;
7441  R33 = R23_GTHDM;
7442  }
7443  }
7444  else if(mH2sq == mHl*mHl )
7445  {
7446  m1_2 = mH2sq;
7447  R11 = R21_GTHDM;
7448  R12 = R22_GTHDM;
7449  R13 = R23_GTHDM;
7450 
7451  if(mH1sq<mH3sq)
7452  {
7453  m2_2 = mH1sq;
7454  m3_2 = mH3sq;
7455  R21 = R11_GTHDM;
7456  R22 = R12_GTHDM;
7457  R23 = R13_GTHDM;
7458  R31 = R31_GTHDM;
7459  R32 = R32_GTHDM;
7460  R33 = R33_GTHDM;
7461 
7462  }
7463  else if(mH3sq<mH1sq)
7464  {
7465  m2_2 = mH3sq;
7466  m3_2 = mH1sq;
7467  R21 = R31_GTHDM;
7468  R22 = R32_GTHDM;
7469  R23 = R33_GTHDM;
7470  R31 = R11_GTHDM;
7471  R32 = R12_GTHDM;
7472  R33 = R13_GTHDM;
7473  }
7474 
7475  }
7476  else if(mH3sq == mHl*mHl )
7477  {
7478  m1_2 = mH3sq;
7479 
7480  R11 = R31_GTHDM;
7481  R12 = R32_GTHDM;
7482  R13 = R33_GTHDM;
7483 
7484  if(mH1sq<mH2sq)
7485  {
7486  m2_2 = mH1sq;
7487  m3_2 = mH2sq;
7488  R21 = R11_GTHDM;
7489  R22 = R12_GTHDM;
7490  R23 = R13_GTHDM;
7491  R31 = R21_GTHDM;
7492  R32 = R22_GTHDM;
7493  R33 = R23_GTHDM;
7494 
7495  }
7496  else if(mH2sq<mH1sq)
7497  {
7498  m2_2 = mH2sq;
7499  m3_2 = mH1sq;
7500  R21 = R21_GTHDM;
7501  R22 = R22_GTHDM;
7502  R23 = R23_GTHDM;
7503  R31 = R11_GTHDM;
7504  R32 = R12_GTHDM;
7505  R33 = R13_GTHDM;
7506  }
7507 
7508  }
7509 
7510  if (m1_2 < 0 || m2_2 < 0 || m3_2 < 0)
7511  return std::numeric_limits<double>::quiet_NaN();
7512 
7513  */
7514 
7515 
7516 
7517  m1_2=mH1sq;
7518 
7519 
7520  R11 = R11_GTHDM;
7521  R12 = R12_GTHDM;
7522  R13 = R13_GTHDM;
7523 
7524  /* COMMENTED ON 08/01/2019- TEST
7525  * if(mH2sq<=mH3sq)
7526  {
7527 
7528  m2_2 = mH2sq;
7529  m3_2 = mH3sq;
7530  R21 = R21_GTHDM;
7531  R22 = R22_GTHDM;
7532  R23 = R23_GTHDM;
7533  R31 = R31_GTHDM;
7534  R32 = R32_GTHDM;
7535  R33 = R33_GTHDM;
7536  }
7537  else
7538  {
7539  m2_2 = mH3sq;
7540  m3_2 = mH2sq;
7541  R21 = R31_GTHDM;
7542  R22 = R32_GTHDM;
7543  R23 = R33_GTHDM;THoEX_gg_phi3_bb_CMS8
7544  R31 = R21_GTHDM;
7545  R32 = R22_GTHDM;
7546  R33 = R23_GTHDM;
7547  }
7548  */
7549  if (m1_2 < 0 || m2_2 < 0 || m3_2 < 0)
7550  return std::numeric_limits<double>::quiet_NaN();
7551 
7552 
7553 
7554  Q_GTHDM=myGTHDM->getQ_GTHDM();
7555  Ale=myGTHDM->getAle();
7556  Als=myGTHDM->getAlsMz();
7557 // Mt=myTHDM->getQuarks(QCD::TOP).getMass();
7558 // Mb=myTHDM->getQuarks(QCD::BOTTOM).getMass();
7559 // Mtau=myTHDM->getLeptons(StandardModel::TAU).getMass();
7560 // Mc=myTHDM->getQuarks(QCD::CHARM).getMass();
7561 // Ms=myTHDM->getQuarks(QCD::STRANGE).getMass();
7562 // Mmu=myTHDM->getLeptons(StandardModel::MU).getMass();
7563 // Mu=myTHDM->getQuarks(QCD::UP).getMass();
7564 // Md=myTHDM->getQuarks(QCD::DOWN).getMass();
7565 // Me=myTHDM->getLeptons(StandardModel::ELECTRON).getMass();
7566  MZ=myGTHDM->getMz();
7567 // modelflag=myTHDM->getModelTypeflag();
7568 // WFRflag=myTHDM->getWFRflag();
7569 
7570  runGeneralTHDMparameters();
7576 
7577  return mH1sq;
7578 }
QCD::TAU
Definition: QCD.h:316
GeneralTHDMcache::ATLAS13_bb_phi_tt
gslpp::matrix< double > ATLAS13_bb_phi_tt
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::A_h_U
gslpp::complex A_h_U(const double mHl2, const double cW2, const double Mu, const double Mc, const double Mt, const double MZ) const
Definition: GeneralTHDMcache.cpp:5461
GeneralTHDMcache::CMS8_gg_phi_tautau
gslpp::matrix< double > CMS8_gg_phi_tautau
Definition: GeneralTHDMcache.h:193
GeneralTHDMcache::ATLAS13_gg_phi_Zga_qqga
gslpp::matrix< double > ATLAS13_gg_phi_Zga_qqga
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::ATLAS8_gg_phi_phi1phi1
gslpp::matrix< double > ATLAS8_gg_phi_phi1phi1
Definition: GeneralTHDMcache.h:182
GeneralTHDMcache::ATLAS13_gg_phii_phijZ_bbZ
gslpp::matrix< double > ATLAS13_gg_phii_phijZ_bbZ
Definition: GeneralTHDMcache.h:208
GeneralTHDMcache::yu2R
double yu2R
Coupling of the SM-Higgs to leptons real part.
Definition: GeneralTHDMcache.h:800
GeneralTHDMcache::ATLAS8_gg_phi_gaga
gslpp::matrix< double > ATLAS8_gg_phi_gaga
Definition: GeneralTHDMcache.h:182
GeneralTHDMcache::B0_MZ2_mHh2_mHl2_mHl2
gslpp::complex B0_MZ2_mHh2_mHl2_mHl2(const double MZ2, const double mHh2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:558
GeneralTHDMcache::ip_ex_gg_phi_tautau_ATLAS8
double ip_ex_gg_phi_tautau_ATLAS8(double mass)
Definition: GeneralTHDMcache.cpp:2583
GeneralTHDMcache::ip_ex_pp_phi_Zga_llga_ATLAS8
double ip_ex_pp_phi_Zga_llga_ATLAS8(double mass)
Definition: GeneralTHDMcache.cpp:2737
GeneralTHDMcache::B00_MZ2_0_mHh2_mHp2
gslpp::complex B00_MZ2_0_mHh2_mHp2(const double MZ2, const double mHh2, const double mHp2) const
Definition: GeneralTHDMcache.cpp:1236
GeneralTHDMcache::ip_ex_bb_phi_bb_CMS8
double ip_ex_bb_phi_bb_CMS8(double mass)
Definition: GeneralTHDMcache.cpp:2527
GeneralTHDMcache::B0p_MZ2_mHh2_mA2_mA2
gslpp::complex B0p_MZ2_mHh2_mA2_mA2(const double MZ2, const double mHh2, const double mA2) const
Definition: GeneralTHDMcache.cpp:1052
R23_GTHDM
Element (2,3) of the ortogonal matrix determining the mass e/states.
Definition: GeneralTHDMquantities.h:1109
GeneralTHDMcache::CMS13_pp_phi_phi1phi1_bbtautau_1
gslpp::matrix< double > CMS13_pp_phi_phi1phi1_bbtautau_1
Definition: GeneralTHDMcache.h:213
GeneralTHDMcache::B00_MZ2_0_MZ2_mHl2
gslpp::complex B00_MZ2_0_MZ2_mHl2(const double MZ2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:1334
GeneralTHDMcache::lambdaijk
double lambdaijk(const double R1i, const double R2i, const double R3i, const double R1j, const double R2j, const double R3j, const double R1k, const double R2k, const double R3k, const double lambda1H, const double lambda3H, const double lambda4H, const double Relambda5H, const double Imlambda5H, const double Relambda6H, const double Imlambda6H, const double Relambda7H, const double Imlambda7H) const
lambdaijk function
Definition: GeneralTHDMcache.cpp:5738
GeneralTHDMcache::ip_cs_pptottA_13
double ip_cs_pptottA_13(double mass)
Interpolating function for the top associated A production cross section at 13 TeV.
Definition: GeneralTHDMcache.cpp:2278
GeneralTHDMcache::cW2GTHDM
double cW2GTHDM(const double c02) const
Definition: GeneralTHDMcache.cpp:5707
GeneralTHDMcache::CMS13_bb_phi_phi1Z_bbZ_1
gslpp::matrix< double > CMS13_bb_phi_phi1Z_bbZ_1
Definition: GeneralTHDMcache.h:213
GeneralTHDMcache::ip_ex_gg_phi_phi1Z_bbZ_ATLAS8
double ip_ex_gg_phi_phi1Z_bbZ_ATLAS8(double mass)
Definition: GeneralTHDMcache.cpp:3284
GeneralTHDMcache::CacheSize
static const int CacheSize
Cache size.
Definition: GeneralTHDMcache.h:43
GeneralTHDMcache::ip_cs_ggtoA_13
double ip_cs_ggtoA_13(double mass)
Interpolating function for the A production cross section via gluon-gluon fusion at 13 TeV.
Definition: GeneralTHDMcache.cpp:2240
GeneralTHDMcache::ip_cs_pptobbH_13
double ip_cs_pptobbH_13(double mass)
Interpolating function for the bottom associated H production cross section at 13 TeV.
Definition: GeneralTHDMcache.cpp:2202
QCD::BOTTOM
Definition: QCD.h:329
GeneralTHDMcache::ip_csr_ggH_t_8
double ip_csr_ggH_t_8(double mass)
Interpolating function for the gluon-gluon fusion H cross section ratio of the top-loop and the total...
Definition: GeneralTHDMcache.cpp:2373
GeneralTHDMcache::B0_MZ2_mA2_0_mHh2
gslpp::complex B0_MZ2_mA2_0_mHh2(const double MZ2, const double mA2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:698
GeneralTHDMcache::ip_ex_pp_phi_ZZ_qqnunu_CMS13
double ip_ex_pp_phi_ZZ_qqnunu_CMS13(double mass)
Definition: GeneralTHDMcache.cpp:2905
GeneralTHDMcache::log_cs_ggH_8
gslpp::matrix< double > log_cs_ggH_8
SM Higgs production cross section tables at 8 TeV from the LHC Higgs Cross Section Working Group,...
Definition: GeneralTHDMcache.h:122
GeneralTHDMcache::I_A_D
gslpp::complex I_A_D(const double mA2, const double Ms, const double Mb) const
Definition: GeneralTHDMcache.cpp:5363
GeneralTHDMcache::ip_ex_gg_phi_tautau_CMS8
double ip_ex_gg_phi_tautau_CMS8(double mass)
Definition: GeneralTHDMcache.cpp:2597
GeneralTHDMcache::ip_cs_pptottA_8
double ip_cs_pptottA_8(double mass)
Interpolating function for the top associated A production cross section at 8 TeV.
Definition: GeneralTHDMcache.cpp:2259
GeneralTHDMcache::B0p_MZ2_mA2_0_mHh2
gslpp::complex B0p_MZ2_mA2_0_mHh2(const double MZ2, const double mA2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:1150
GeneralTHDMcache::~GeneralTHDMcache
~GeneralTHDMcache()
GeneralTHDMcache destructor.
Definition: GeneralTHDMcache.cpp:146
GeneralTHDMcache::log_cs_ttA_13
gslpp::matrix< double > log_cs_ttA_13
Definition: GeneralTHDMcache.h:157
GeneralTHDMcache::A_HH_L
gslpp::complex A_HH_L(const double mHh2, const double cW2, const double Mmu, const double Mtau, const double MZ) const
Definition: GeneralTHDMcache.cpp:5607
gslpp::matrix< double >::assign
void assign(const size_t &i, const size_t &j, const double &a)
Definition: gslpp_matrix_double.cpp:108
GeneralTHDMcache::B00_MZ2_0_MW2_mHl2
gslpp::complex B00_MZ2_0_MW2_mHl2(const double MZ2, const double MW2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:1306
GeneralTHDMcache::log_cs_VBF_13
gslpp::matrix< double > log_cs_VBF_13
Definition: GeneralTHDMcache.h:127
GeneralTHDMcache::ip_ex_pp_phi_phi1phi1_bbWW_ATLAS13
double ip_ex_pp_phi_phi1phi1_bbWW_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:3256
GeneralTHDMcache::ATLAS8_gg_phi_phi1Z_tautauZ
gslpp::matrix< double > ATLAS8_gg_phi_phi1Z_tautauZ
Definition: GeneralTHDMcache.h:182
GeneralTHDMcache::B0p_MZ2_0_mA2_mHl2
gslpp::complex B0p_MZ2_0_mA2_mHl2(const double MZ2, const double mA2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:814
gslpp::matrix< double >
A class for constructing and defining operations on real matrices.
Definition: gslpp_matrix_double.h:48
GeneralTHDMcache::ip_ex_bb_phi_tautau_CMS8
double ip_ex_bb_phi_tautau_CMS8(double mass)
Definition: GeneralTHDMcache.cpp:2625
GeneralTHDMcache::ip_ex_pp_phi_phi1phi1_bbtautau_1_CMS13
double ip_ex_pp_phi_phi1phi1_bbtautau_1_CMS13(double mass)
Definition: GeneralTHDMcache.cpp:3213
GeneralTHDMcache::ATLAS13_gg_phi_tautau
gslpp::matrix< double > ATLAS13_gg_phi_tautau
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::MWGTHDM
double MWGTHDM(const double MW) const
Definition: GeneralTHDMcache.cpp:5713
GeneralTHDMcache::ip_GammaHPtotSM
double ip_GammaHPtotSM(double mass)
Interpolating function for the total SM Higgs decay width.
Definition: GeneralTHDMcache.cpp:1977
GeneralTHDMcache::I_H_Hp
gslpp::complex I_H_Hp(const double mHp2, const double mH) const
Definition: GeneralTHDMcache.cpp:5446
GeneralTHDMcache::B0_MZ2_mHl2_mHh2_mHh2
gslpp::complex B0_MZ2_mHl2_mHh2_mHh2(const double MZ2, const double mHl2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:474
GeneralTHDMcache::interpolate2D
double interpolate2D(gslpp::matrix< double > arrayTab, double x, double y)
Linearly interpolates a table with two parameter dimensions.
Definition: GeneralTHDMcache.cpp:1568
GeneralTHDMcache::CMS13_pp_phi_phi1phi1_bbbb_2
gslpp::matrix< double > CMS13_pp_phi_phi1phi1_bbbb_2
Definition: GeneralTHDMcache.h:213
GeneralTHDMcache::CMS8_pp_Hp_taunu
gslpp::matrix< double > CMS8_pp_Hp_taunu
CMS observed upper cross section limits at 8 TeV, depending on the charged Higgs mass.
Definition: GeneralTHDMcache.h:226
GeneralTHDMcache::ip_ex_gg_phi_ZZ_ATLAS8
double ip_ex_gg_phi_ZZ_ATLAS8(double mass)
Definition: GeneralTHDMcache.cpp:2807
GeneralTHDMcache::B0_MZ2_0_mA2_mHl2
gslpp::complex B0_MZ2_0_mA2_mHl2(const double MZ2, const double mA2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:376
GeneralTHDMcache::ip_ex_pp_phi_phi1phi1_bbbb_CMS8
double ip_ex_pp_phi_phi1phi1_bbbb_CMS8(double mass)
Definition: GeneralTHDMcache.cpp:3073
GeneralTHDMcache::ATLAS13_pp_phi_phi1phi1_bbWW
gslpp::matrix< double > ATLAS13_pp_phi_phi1phi1_bbWW
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::CMS8_pp_phi_phi1phi1_bbgaga
gslpp::matrix< double > CMS8_pp_phi_phi1phi1_bbgaga
Definition: GeneralTHDMcache.h:193
GeneralTHDMcache::ip_ex_VV_phi_ZZ_llllnunu_ATLAS13
double ip_ex_VV_phi_ZZ_llllnunu_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:2849
GeneralTHDMcache::B0p_MZ2_mHl2_0_0
gslpp::complex B0p_MZ2_mHl2_0_0(const double MZ2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:842
GeneralTHDMcache::B0_MZ2_mHp2_0_mHl2
gslpp::complex B0_MZ2_mHp2_0_mHl2(const double MZ2, const double mHp2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:628
GeneralTHDMcache::log_cs_ZH_8
gslpp::matrix< double > log_cs_ZH_8
Definition: GeneralTHDMcache.h:122
GeneralTHDMcache::ip_cs_WtoWH_8
double ip_cs_WtoWH_8(double mass)
Interpolating function for the W associated H production cross section at 8 TeV.
Definition: GeneralTHDMcache.cpp:2069
GeneralTHDMcache::B0p_MZ2_mHh2_mHh2_mHh2
gslpp::complex B0p_MZ2_mHh2_mHh2_mHh2(const double MZ2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:1024
GeneralTHDMcache::ip_ex_pp_Hpm_taunu_ATLAS8
double ip_ex_pp_Hpm_taunu_ATLAS8(double mass)
Interpolating function for the observed ATLAS upper limit on a singly charged scalar resonance decayi...
Definition: GeneralTHDMcache.cpp:5118
GeneralTHDMcache::B0_MZ2_mA2_mA2_mHl2
gslpp::complex B0_MZ2_mA2_mA2_mHl2(const double MZ2, const double mA2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:712
GeneralTHDMcache::log_cs_VBF_8
gslpp::matrix< double > log_cs_VBF_8
Definition: GeneralTHDMcache.h:122
GeneralTHDMcache::B0p_MZ2_0_0_mHl2
gslpp::complex B0p_MZ2_0_0_mHl2(const double MZ2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:744
GeneralTHDMcache::ip_ex_gg_phi_WW_lnuqq_ATLAS13
double ip_ex_gg_phi_WW_lnuqq_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:2989
GeneralTHDMcache::yd3R
double yd3R
Coupling of A to up quarks real part.
Definition: GeneralTHDMcache.h:825
GeneralTHDMcache::KaellenFunction
double KaellenFunction(const double a2, const double b2, const double c2) const
Kaellen function.
Definition: GeneralTHDMcache.cpp:5689
GeneralTHDMcache::CMS8_gg_phi_phi1Z_bbll
gslpp::matrix< double > CMS8_gg_phi_phi1Z_bbll
Definition: GeneralTHDMcache.h:193
GeneralTHDMcache::I_HH_U
gslpp::complex I_HH_U(const double mHh2, const double Mc, const double Mt) const
Definition: GeneralTHDMcache.cpp:5295
GeneralTHDMcache::ATLAS8_gg_phi_tautau
gslpp::matrix< double > ATLAS8_gg_phi_tautau
ATLAS observed upper cross section limits at 8 TeV, depending on the Higgs mass.
Definition: GeneralTHDMcache.h:182
GeneralTHDMcache::ATLAS13_gg_phi_WW_enumunu
gslpp::matrix< double > ATLAS13_gg_phi_WW_enumunu
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::log_cs_ggH_13
gslpp::matrix< double > log_cs_ggH_13
SM Higgs production cross section tables at 13 TeV from the LHC Higgs Cross Section Working Group,...
Definition: GeneralTHDMcache.h:127
GeneralTHDMcache::CMS8_gg_phi_bb
gslpp::matrix< double > CMS8_gg_phi_bb
Definition: GeneralTHDMcache.h:193
GeneralTHDMcache::computeSignalStrengths
void computeSignalStrengths()
Definition: GeneralTHDMcache.cpp:5751
GeneralTHDMcache::log_cs_ggA_8
gslpp::matrix< double > log_cs_ggA_8
CP-odd Higgs production cross section tables at 8 TeV obtained with HIGLU 4.34, depending on the Higg...
Definition: GeneralTHDMcache.h:152
GeneralTHDMcache::computeHpquantities
double computeHpquantities()
Definition: GeneralTHDMcache.cpp:6466
QCD::UP
Definition: QCD.h:324
GeneralTHDMcache::br_tautau
gslpp::matrix< double > br_tautau
Definition: GeneralTHDMcache.h:112
GeneralTHDMcache::B0_MZ2_mHl2_mHh2_mHl2
gslpp::complex B0_MZ2_mHl2_mHh2_mHl2(const double MZ2, const double mHl2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:460
GeneralTHDMcache::log_cs_WH_8
gslpp::matrix< double > log_cs_WH_8
Definition: GeneralTHDMcache.h:122
GeneralTHDMcache::A_h_D
gslpp::complex A_h_D(const double mHl2, const double cW2, const double Md, const double Ms, const double Mb, const double MZ) const
Definition: GeneralTHDMcache.cpp:5523
GeneralTHDMcache::ip_cs_pptobbA_8
double ip_cs_pptobbA_8(double mass)
Interpolating function for the bottom associated A production cross section at 8 TeV.
Definition: GeneralTHDMcache.cpp:2297
GeneralTHDMcache::ip_ex_gg_phi_phi1phi1_gagaWW_ATLAS13
double ip_ex_gg_phi_phi1phi1_gagaWW_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:3270
GeneralTHDMcache::CMS8_pp_phi_phi1phi1_bbtautau
gslpp::matrix< double > CMS8_pp_phi_phi1phi1_bbtautau
Definition: GeneralTHDMcache.h:193
GeneralTHDMcache::B0_MZ2_MZ2_MZ2_mHl2
gslpp::complex B0_MZ2_MZ2_MZ2_mHl2(const double MZ2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:306
GeneralTHDMcache::ip_ex_pp_phi_WW_lnuqq_CMS13
double ip_ex_pp_phi_WW_lnuqq_CMS13(double mass)
Definition: GeneralTHDMcache.cpp:3017
GeneralTHDMcache::CMS13_gg_phi_phi1Z_bbZ_2
gslpp::matrix< double > CMS13_gg_phi_phi1Z_bbZ_2
Definition: GeneralTHDMcache.h:213
GeneralTHDMcache::B0p_MZ2_mA2_0_mHl2
gslpp::complex B0p_MZ2_mA2_0_mHl2(const double MZ2, const double mA2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:1136
lambda3
An observable class for the quartic Higgs potential coupling .
Definition: THDMquantities.h:428
GeneralTHDMcache::ip_cs_ZtoZH_8
double ip_cs_ZtoZH_8(double mass)
Interpolating function for the Z associated H production cross section at 8 TeV.
Definition: GeneralTHDMcache.cpp:2107
GeneralTHDMcache::CMS13_bb_phi_bb
gslpp::matrix< double > CMS13_bb_phi_bb
Definition: GeneralTHDMcache.h:213
gslpp.h
GeneralTHDMcache::log_cs_ttH_13
gslpp::matrix< double > log_cs_ttH_13
SM Higgs production cross section table at 13 TeV obtained with MadGraph 5, depending on the Higgs ma...
Definition: GeneralTHDMcache.h:137
GeneralTHDMcache::ip_ex_bb_phi_phi1Z_bbZ_ATLAS13
double ip_ex_bb_phi_phi1Z_bbZ_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:3382
GeneralTHDMcache::ip_csr_ggA_b_8
double ip_csr_ggA_b_8(double mass)
Interpolating function for the gluon-gluon fusion A cross section ratio of the bottom-loop and the to...
Definition: GeneralTHDMcache.cpp:2469
GeneralTHDMcache::B00_MZ2_0_mHl2_mHp2
gslpp::complex B00_MZ2_0_mHl2_mHp2(const double MZ2, const double mHl2, const double mHp2) const
Definition: GeneralTHDMcache.cpp:1264
QCD::CHARM
Definition: QCD.h:326
GeneralTHDMcache::ATLAS13_gg_phi_WW_lnuqq
gslpp::matrix< double > ATLAS13_gg_phi_WW_lnuqq
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::ATLAS13_VV_phi_WW_enumunu
gslpp::matrix< double > ATLAS13_VV_phi_WW_enumunu
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::CMS8_pp_phii_phijZ_bbll_1
gslpp::matrix< double > CMS8_pp_phii_phijZ_bbll_1
Definition: GeneralTHDMcache.h:197
GeneralTHDMcache::ip_ex_pp_phi_phi1phi1_bbbb_ATLAS13
double ip_ex_pp_phi_phi1phi1_bbbb_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:3129
GeneralTHDMcache::CMS13_pp_phi_ZZ_qqnunu
gslpp::matrix< double > CMS13_pp_phi_ZZ_qqnunu
Definition: GeneralTHDMcache.h:213
GeneralTHDMcache::B0p_MZ2_mHl2_mHp2_mHp2
gslpp::complex B0p_MZ2_mHl2_mHp2_mHp2(const double MZ2, const double mHl2, const double mHp2) const
Definition: GeneralTHDMcache.cpp:926
GeneralTHDMcache::ip_ex_pp_phii_phijZ_bbll_1_CMS8
double ip_ex_pp_phii_phijZ_bbll_1_CMS8(double m2, double m3)
Definition: GeneralTHDMcache.cpp:3424
GeneralTHDMcache::ip_ex_gg_phi_bb_CMS8
double ip_ex_gg_phi_bb_CMS8(double mass)
Definition: GeneralTHDMcache.cpp:2541
gslpp::complex
A class for defining operations on and functions of complex numbers.
Definition: gslpp_complex.h:35
GeneralTHDMcache::ip_csr_ggH_b_8
double ip_csr_ggH_b_8(double mass)
Interpolating function for the gluon-gluon fusion H cross section ratio of the bottom-loop and the to...
Definition: GeneralTHDMcache.cpp:2405
GeneralTHDMcache::B0_MZ2_mHl2_0_mA2
gslpp::complex B0_MZ2_mHl2_0_mA2(const double MZ2, const double mHl2, const double mA2) const
Definition: GeneralTHDMcache.cpp:432
GeneralTHDMcache::ATLAS8_pp_phi_Zga_llga
gslpp::matrix< double > ATLAS8_pp_phi_Zga_llga
Definition: GeneralTHDMcache.h:182
gslpp::log
complex log(const complex &z)
Definition: gslpp_complex.cpp:342
GeneralTHDMcache::ip_cs_ggtoA_8
double ip_cs_ggtoA_8(double mass)
Interpolating function for the A production cross section via gluon-gluon fusion at 8 TeV.
Definition: GeneralTHDMcache.cpp:2221
GeneralTHDMcache::B0p_MZ2_mA2_0_mHp2
gslpp::complex B0p_MZ2_mA2_0_mHp2(const double MZ2, const double mA2, const double mHp2) const
Definition: GeneralTHDMcache.cpp:1164
GeneralTHDMcache::ip_ex_gg_phi_phi1Z_bbZ_1_CMS13
double ip_ex_gg_phi_phi1Z_bbZ_1_CMS13(double mass)
Definition: GeneralTHDMcache.cpp:3354
GeneralTHDMcache::CMS13_gg_phi_gaga
gslpp::matrix< double > CMS13_gg_phi_gaga
Definition: GeneralTHDMcache.h:213
GeneralTHDMcache::ip_ex_pp_Hpm_tb_ATLAS8
double ip_ex_pp_Hpm_tb_ATLAS8(double mass)
Interpolating function for the observed ATLAS upper limit on a singly charged scalar resonance decayi...
Definition: GeneralTHDMcache.cpp:5182
GeneralTHDMcache::ip_csr_ggH_b_13
double ip_csr_ggH_b_13(double mass)
Interpolating function for the gluon-gluon fusion H cross section ratio of the bottom-loop and the to...
Definition: GeneralTHDMcache.cpp:2421
GeneralTHDMcache::B0_MZ2_mHl2_mA2_mA2
gslpp::complex B0_MZ2_mHl2_mA2_mA2(const double MZ2, const double mHl2, const double mA2) const
Definition: GeneralTHDMcache.cpp:502
GTHDM_BR_h_bb
GTHDM branching ratio of .
Definition: GeneralTHDMLightHiggs.h:21
GeneralTHDMcache::ip_ex_pp_phi_gaga_ATLAS13
double ip_ex_pp_phi_gaga_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:2709
GeneralTHDMcache::ip_Br_HPtoZZ
double ip_Br_HPtoZZ(double mass)
Interpolating function for the SM branching ratio to two bosons.
Definition: GeneralTHDMcache.cpp:1945
QCD::ELECTRON
Definition: QCD.h:312
GeneralTHDMcache::CacheCheckReal
int CacheCheckReal(const double cache[][CacheSize], const int NumPar, const double params[]) const
Check whether for the latest set of parameters a value is in the cache.
Definition: GeneralTHDMcache.cpp:163
GeneralTHDMcache::B0_MZ2_mHl2_mHl2_mHl2
gslpp::complex B0_MZ2_mHl2_mHl2_mHl2(const double MZ2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:446
GeneralTHDMcache::ip_csr_ggH_t_13
double ip_csr_ggH_t_13(double mass)
Interpolating function for the gluon-gluon fusion H cross section ratio of the top-loop and the total...
Definition: GeneralTHDMcache.cpp:2389
GeneralTHDMcache::ip_Br_HPtobb
double ip_Br_HPtobb(double mass)
Interpolating function for the SM branching ratio to two bottom quarks.
Definition: GeneralTHDMcache.cpp:1881
gslpp::complex::abs2
double abs2() const
Definition: gslpp_complex.cpp:86
GeneralTHDMcache::log_cs_ttH_8
gslpp::matrix< double > log_cs_ttH_8
SM Higgs production cross section table at 8 TeV obtained with MadGraph 5, depending on the Higgs mas...
Definition: GeneralTHDMcache.h:132
StandardModel
A model class for the Standard Model.
Definition: StandardModel.h:474
GeneralTHDMcache::ip_ex_gg_phi_ZZ_qqllnunu_ATLAS13
double ip_ex_gg_phi_ZZ_qqllnunu_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:2863
GeneralTHDMcache::ip_cs_ggtoHp_13
double ip_cs_ggtoHp_13(double mHp, double logtb)
Interpolating function for the H+ production cross section from two gluons at 13 TeV.
Definition: GeneralTHDMcache.cpp:2354
GeneralTHDMcache::B00_MZ2_MZ2_MZ2_mHh2
gslpp::complex B00_MZ2_MZ2_MZ2_mHh2(const double MZ2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:1474
GeneralTHDMcache::br_ZZ
gslpp::matrix< double > br_ZZ
Definition: GeneralTHDMcache.h:112
GeneralTHDMcache::B00_MZ2_0_MW2_mHh2
gslpp::complex B00_MZ2_0_MW2_mHh2(const double MZ2, const double MW2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:1292
R21_GTHDM
Definition: GeneralTHDMquantities.h:1067
GeneralTHDMcache::ip_ex_pp_phi_phi1phi1_bbtautau_2_CMS13
double ip_ex_pp_phi_phi1phi1_bbtautau_2_CMS13(double mass)
Definition: GeneralTHDMcache.cpp:3227
GeneralTHDMcache::B00_MZ2_0_mA2_mHp2
gslpp::complex B00_MZ2_0_mA2_mHp2(const double MZ2, const double mA2, const double mHp2) const
Definition: GeneralTHDMcache.cpp:1208
GeneralTHDMcache::B00_MZ2_MW2_mHl2_mHp2
gslpp::complex B00_MZ2_MW2_mHl2_mHp2(const double MZ2, const double MW2, const double mHl2, const double mHp2) const
Definition: GeneralTHDMcache.cpp:1376
GeneralTHDMcache::log_cs_ZH_13
gslpp::matrix< double > log_cs_ZH_13
Definition: GeneralTHDMcache.h:127
GeneralTHDMcache::CMS13_pp_phi_phi1phi1_bbVV
gslpp::matrix< double > CMS13_pp_phi_phi1phi1_bbVV
Definition: GeneralTHDMcache.h:213
GeneralTHDMcache::I_HH_L
gslpp::complex I_HH_L(const double mHh2, const double Mmu, const double Mtau) const
Definition: GeneralTHDMcache.cpp:5398
GeneralTHDMcache::interpolate
double interpolate(gslpp::matrix< double > arrayTab, double x)
Linearly interpolates a table with one parameter dimension.
Definition: GeneralTHDMcache.cpp:1541
GeneralTHDMcache::ip_cs_pptottH_13
double ip_cs_pptottH_13(double mass)
Interpolating function for the top associated H production cross section at 13 TeV.
Definition: GeneralTHDMcache.cpp:2164
GeneralTHDMcache::ATLAS13_pp_Hpm_taunu
gslpp::matrix< double > ATLAS13_pp_Hpm_taunu
ATLAS observed upper cross section limits at 13 TeV, depending on the charged Higgs mass.
Definition: GeneralTHDMcache.h:231
GeneralTHDMcache::B0_MZ2_0_mHp2_mHl2
gslpp::complex B0_MZ2_0_mHp2_mHl2(const double MZ2, const double mHp2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:348
GeneralTHDMcache::ip_Br_HPtoWW
double ip_Br_HPtoWW(double mass)
Interpolating function for the SM branching ratio to two bosons.
Definition: GeneralTHDMcache.cpp:1961
GeneralTHDMcache::ip_ex_VV_phi_WW_lnuqq_ATLAS13
double ip_ex_VV_phi_WW_lnuqq_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:3003
GeneralTHDMcache::ip_ex_pp_Hp_taunu_CMS8
double ip_ex_pp_Hp_taunu_CMS8(double mass)
Interpolating function for the observed CMS upper limit on a singly charged scalar resonance decaying...
Definition: GeneralTHDMcache.cpp:5134
GeneralTHDMcache::ip_ex_gg_phi_phi1Z_tautauZ_ATLAS8
double ip_ex_gg_phi_phi1Z_tautauZ_ATLAS8(double mass)
Definition: GeneralTHDMcache.cpp:3312
GeneralTHDMcache::ip_ex_gg_phi_phi1phi1_ATLAS8
double ip_ex_gg_phi_phi1phi1_ATLAS8(double mass)
Definition: GeneralTHDMcache.cpp:3059
GeneralTHDMcache::ip_ex_pp_phii_phijZ_tautaull_1_CMS8
double ip_ex_pp_phii_phijZ_tautaull_1_CMS8(double m2, double m3)
Definition: GeneralTHDMcache.cpp:3455
GeneralTHDMcache::csrH_top_13
gslpp::matrix< double > csrH_top_13
Production cross section ratio tables at 13 TeV obtained with HIGLU 4.34, depending on the Higgs mass...
Definition: GeneralTHDMcache.h:177
GeneralTHDMcache::B0_MZ2_mHh2_mHh2_mHh2
gslpp::complex B0_MZ2_mHh2_mHh2_mHh2(const double MZ2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:586
GeneralTHDMcache::B0p_MZ2_mHp2_0_mHl2
gslpp::complex B0p_MZ2_mHp2_0_mHl2(const double MZ2, const double mHp2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:1066
GeneralTHDMcache::CMS13_pp_phi_phi1phi1_bbgaga
gslpp::matrix< double > CMS13_pp_phi_phi1phi1_bbgaga
Definition: GeneralTHDMcache.h:213
GeneralTHDMcache::ATLAS13_pp_Hpm_tb
gslpp::matrix< double > ATLAS13_pp_Hpm_tb
Definition: GeneralTHDMcache.h:231
GeneralTHDMcache::ATLAS13_bb_phi_phi1Z_bbZ
gslpp::matrix< double > ATLAS13_bb_phi_phi1Z_bbZ
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::ATLAS8_pp_Hpm_taunu
gslpp::matrix< double > ATLAS8_pp_Hpm_taunu
ATLAS observed upper cross section limits at 8 TeV, depending on the charged Higgs mass.
Definition: GeneralTHDMcache.h:221
lambda1
An observable class for the quartic Higgs potential coupling .
Definition: THDMquantities.h:382
GeneralTHDMcache::ip_ex_pp_Hpm_tb_ATLAS13
double ip_ex_pp_Hpm_tb_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:5212
GeneralTHDMcache::CMS13_pp_phi_ZZ_llqqnunull
gslpp::matrix< double > CMS13_pp_phi_ZZ_llqqnunull
Definition: GeneralTHDMcache.h:213
GeneralTHDMcache::ip_cs_ZtoZH_13
double ip_cs_ZtoZH_13(double mass)
Interpolating function for the Z associated H production cross section at 13 TeV.
Definition: GeneralTHDMcache.cpp:2126
GeneralTHDMcache::yl2R
double yl2R
Coupling of H to down quarks real part.
Definition: GeneralTHDMcache.h:812
GeneralTHDMcache::ATLAS13_VV_phi_WW_lnuqq
gslpp::matrix< double > ATLAS13_VV_phi_WW_lnuqq
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::CMS8_mu_pp_phi_VV
gslpp::matrix< double > CMS8_mu_pp_phi_VV
CMS observed upper signal strength limits at 8 TeV, depending on the Higgs mass.
Definition: GeneralTHDMcache.h:188
GeneralTHDMcache::read
void read()
Fills all required arrays with the values read from the tables.
Definition: GeneralTHDMcache.cpp:1600
GeneralTHDMcache::A_A_U
gslpp::complex A_A_U(const double mA2, const double cW2, const double Mc, const double Mt, const double MZ) const
Definition: GeneralTHDMcache.cpp:5504
GeneralTHDMcache::ip_ex_gg_phi_gaga_CMS13
double ip_ex_gg_phi_gaga_CMS13(double mass)
Definition: GeneralTHDMcache.cpp:2723
GeneralTHDMcache::ip_csr_ggA_t_13
double ip_csr_ggA_t_13(double mass)
Interpolating function for the gluon-gluon fusion A cross section ratio of the top-loop and the total...
Definition: GeneralTHDMcache.cpp:2453
GeneralTHDMcache::ComputeHeavyHiggs
double ComputeHeavyHiggs()
Definition: GeneralTHDMcache.cpp:6534
GeneralTHDMcache::ip_cs_pptobbA_13
double ip_cs_pptobbA_13(double mass)
Interpolating function for the bottom associated A production cross section at 13 TeV.
Definition: GeneralTHDMcache.cpp:2316
GeneralTHDMcache::ip_ex_gg_phi_WW_ATLAS8
double ip_ex_gg_phi_WW_ATLAS8(double mass)
Definition: GeneralTHDMcache.cpp:2919
GeneralTHDMcache::B0p_MZ2_0_mHp2_mA2
gslpp::complex B0p_MZ2_0_mHp2_mA2(const double MZ2, const double mHp2, const double mA2) const
Definition: GeneralTHDMcache.cpp:800
GeneralTHDMcache::ATLAS8_VV_phi_ZZ
gslpp::matrix< double > ATLAS8_VV_phi_ZZ
Definition: GeneralTHDMcache.h:182
GeneralTHDMcache::B0_MZ2_MZ2_MZ2_mHh2
gslpp::complex B0_MZ2_MZ2_MZ2_mHh2(const double MZ2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:292
GeneralTHDMcache::log_cs_ggHp_8
gslpp::matrix< double > log_cs_ggHp_8
Charged Higgs production cross section table at 8 TeV from LHCHXSWGMSSMCharged, depending on the char...
Definition: GeneralTHDMcache.h:162
gslpp::complex::imag
const double & imag() const
Definition: gslpp_complex.cpp:59
GeneralTHDMcache::ip_Br_HPtocc
double ip_Br_HPtocc(double mass)
Interpolating function for the SM branching ratio to two charm quarks.
Definition: GeneralTHDMcache.cpp:1913
GeneralTHDMcache::ip_ex_pp_phi_VV_qqqq_ATLAS13
double ip_ex_pp_phi_VV_qqqq_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:3045
GeneralTHDMcache::ATLAS8_VV_phi_WW
gslpp::matrix< double > ATLAS8_VV_phi_WW
Definition: GeneralTHDMcache.h:182
GeneralTHDMcache::CacheShiftReal
void CacheShiftReal(double cache[][CacheSize], const int NumPar, const double params[], const double newResult) const
Adds a new result and its parameters into the cache.
Definition: GeneralTHDMcache.cpp:190
GeneralTHDMcache::CMS8_bb_phi_bb
gslpp::matrix< double > CMS8_bb_phi_bb
CMS observed upper cross section limits at 8 TeV, depending on the Higgs mass.
Definition: GeneralTHDMcache.h:193
lambda4
An observable class for the quartic Higgs potential coupling .
Definition: THDMquantities.h:451
GeneralTHDMcache::B0p_MZ2_mHl2_mHh2_mHh2
gslpp::complex B0p_MZ2_mHl2_mHh2_mHh2(const double MZ2, const double mHl2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:912
GeneralTHDMcache::CMS13_gg_phi_Zga
gslpp::matrix< double > CMS13_gg_phi_Zga
Definition: GeneralTHDMcache.h:213
GeneralTHDMcache::readTable
gslpp::matrix< double > readTable(std::string filename, int rowN, int colN)
This function reads values from a table and returns them as an array.
Definition: GeneralTHDMcache.cpp:1505
gslpp::complex::conjugate
complex conjugate() const
Definition: gslpp_complex.cpp:288
GeneralTHDMcache::log_cs_bbA_8
gslpp::matrix< double > log_cs_bbA_8
Definition: GeneralTHDMcache.h:152
GeneralTHDMcache::ATLAS13_gg_phi_ZZ_llllnunu
gslpp::matrix< double > ATLAS13_gg_phi_ZZ_llllnunu
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::B00_MZ2_MZ2_mHp2_mHp2
gslpp::complex B00_MZ2_MZ2_mHp2_mHp2(const double MZ2, const double mHp2) const
Definition: GeneralTHDMcache.cpp:1460
GeneralTHDMcache::ATLAS13_VV_phi_ZZ_qqllnunu
gslpp::matrix< double > ATLAS13_VV_phi_ZZ_qqllnunu
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::GeneralTHDMcache
GeneralTHDMcache(const StandardModel &SM_i)
GeneralTHDMcache constructor.
Definition: GeneralTHDMcache.cpp:18
GeneralTHDMcache::ip_ex_bb_phi_tt_ATLAS13
double ip_ex_bb_phi_tt_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:2513
GeneralTHDMcache::CMS13_pp_phi_bb
gslpp::matrix< double > CMS13_pp_phi_bb
CMS observed upper cross section limits at 13 TeV, depending on the Higgs mass.
Definition: GeneralTHDMcache.h:213
GeneralTHDMcache::ip_Br_HPtott
double ip_Br_HPtott(double mass)
Interpolating function for the SM branching ratio to two top quarks.
Definition: GeneralTHDMcache.cpp:1865
GeneralTHDMcache::ATLAS13_pp_phi_phi1phi1_bbbb
gslpp::matrix< double > ATLAS13_pp_phi_phi1phi1_bbbb
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::CMS13_gg_phi_tautau
gslpp::matrix< double > CMS13_gg_phi_tautau
Definition: GeneralTHDMcache.h:213
GeneralTHDMcache::ATLAS8_bb_phi_tautau
gslpp::matrix< double > ATLAS8_bb_phi_tautau
Definition: GeneralTHDMcache.h:182
GeneralTHDMcache::B0p_MZ2_mA2_mA2_mHh2
gslpp::complex B0p_MZ2_mA2_mA2_mHh2(const double MZ2, const double mA2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:1192
GeneralTHDMcache::log_cs_bbA_13
gslpp::matrix< double > log_cs_bbA_13
Definition: GeneralTHDMcache.h:157
GeneralTHDMcache::ip_ex_pp_Hpm_taunu_ATLAS13
double ip_ex_pp_Hpm_taunu_ATLAS13(double mass)
Interpolating function for the observed ATLAS upper limit on a singly charged scalar resonance decayi...
Definition: GeneralTHDMcache.cpp:5150
GeneralTHDMcache::ip_ex_pp_phii_phijZ_bbll_2_CMS8
double ip_ex_pp_phii_phijZ_bbll_2_CMS8(double m2, double m3)
Definition: GeneralTHDMcache.cpp:3440
GeneralTHDMcache::ATLAS13_VV_phi_ZZ_llllnunu
gslpp::matrix< double > ATLAS13_VV_phi_ZZ_llllnunu
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::ip_ex_pp_phi_ZZ_llqqnunull_CMS13
double ip_ex_pp_phi_ZZ_llqqnunull_CMS13(double mass)
Definition: GeneralTHDMcache.cpp:2891
GeneralTHDMcache::CMS8_gg_phi_phi1Z_tautaull
gslpp::matrix< double > CMS8_gg_phi_phi1Z_tautaull
Definition: GeneralTHDMcache.h:193
GeneralTHDMcache::B00_MZ2_0_MZ2_mHh2
gslpp::complex B00_MZ2_0_MZ2_mHh2(const double MZ2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:1320
GeneralTHDMcache::B00_MZ2_MW2_MW2_mHh2
gslpp::complex B00_MZ2_MW2_MW2_mHh2(const double MZ2, const double MW2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:1404
QCD::TOP
Definition: QCD.h:328
GeneralTHDMcache::csrA_bottom_13
gslpp::matrix< double > csrA_bottom_13
Definition: GeneralTHDMcache.h:177
GeneralTHDMcache::ip_cs_pptottH_8
double ip_cs_pptottH_8(double mass)
Interpolating function for the top associated H production cross section at 8 TeV.
Definition: GeneralTHDMcache.cpp:2145
GeneralTHDMcache::A_H_W
gslpp::complex A_H_W(const double mH, const double cW2, const double MW, const double MZ) const
Definition: GeneralTHDMcache.cpp:5648
GeneralTHDMcache::B0p_MZ2_mHl2_0_mHp2
gslpp::complex B0p_MZ2_mHl2_0_mHp2(const double MZ2, const double mHl2, const double mHp2) const
Definition: GeneralTHDMcache.cpp:856
gslpp::pow
complex pow(const complex &z1, const complex &z2)
Definition: gslpp_complex.cpp:395
R22_GTHDM
Element (2,2) of the ortogonal matrix determining the mass e/states.
Definition: GeneralTHDMquantities.h:1088
GeneralTHDMcache::ip_ex_bb_phi_bb_CMS13
double ip_ex_bb_phi_bb_CMS13(double mass)
Definition: GeneralTHDMcache.cpp:2569
GeneralTHDMcache::B0_MZ2_mA2_mA2_mHh2
gslpp::complex B0_MZ2_mA2_mA2_mHh2(const double MZ2, const double mA2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:726
GeneralTHDMcache::computephi2quantities
double computephi2quantities()
Definition: GeneralTHDMcache.cpp:5978
GeneralTHDMcache::ATLAS8_pp_Hpm_tb
gslpp::matrix< double > ATLAS8_pp_Hpm_tb
Definition: GeneralTHDMcache.h:221
GeneralTHDMcache::ip_ex_tt_phi_tt_ATLAS13
double ip_ex_tt_phi_tt_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:2499
gslpp::sqrt
complex sqrt(const complex &z)
Definition: gslpp_complex.cpp:385
GeneralTHDMcache::CMS8_bb_phi_tautau
gslpp::matrix< double > CMS8_bb_phi_tautau
Definition: GeneralTHDMcache.h:193
GeneralTHDMcache::B0p_MZ2_mHh2_mHh2_mHl2
gslpp::complex B0p_MZ2_mHh2_mHh2_mHl2(const double MZ2, const double mHh2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:1010
GeneralTHDMcache::B00_MZ2_MZ2_mHl2_mA2
gslpp::complex B00_MZ2_MZ2_mHl2_mA2(const double MZ2, const double mHl2, const double mA2) const
Definition: GeneralTHDMcache.cpp:1446
GeneralTHDMcache::log_cs_WH_13
gslpp::matrix< double > log_cs_WH_13
Definition: GeneralTHDMcache.h:127
GeneralTHDMcache::br_cc
gslpp::matrix< double > br_cc
Definition: GeneralTHDMcache.h:112
GeneralTHDMcache::B0_MZ2_mHh2_0_0
gslpp::complex B0_MZ2_mHh2_0_0(const double MZ2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:516
GeneralTHDMcache::A_A_L
gslpp::complex A_A_L(const double mA2, const double cW2, const double Mmu, const double Mtau, const double MZ) const
Definition: GeneralTHDMcache.cpp:5629
GeneralTHDMcache::csrA_top_13
gslpp::matrix< double > csrA_top_13
Definition: GeneralTHDMcache.h:177
GeneralTHDMcache::I_HH_D
gslpp::complex I_HH_D(const double mHh2, const double Ms, const double Mb) const
Definition: GeneralTHDMcache.cpp:5346
gslpp::complex::i
static const complex & i()
Definition: gslpp_complex.cpp:154
GeneralTHDMcache::CMS13_bb_phi_phi1Z_bbZ_2
gslpp::matrix< double > CMS13_bb_phi_phi1Z_bbZ_2
Definition: GeneralTHDMcache.h:213
GeneralTHDMcache::ip_ex_gg_phi_Zga_qqga_ATLAS13
double ip_ex_gg_phi_Zga_qqga_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:2779
GeneralTHDMcache::BrSM_htogaga
double BrSM_htogaga
SM branching ratio of .
Definition: GeneralTHDMcache.h:769
GeneralTHDMcache::I_H_W
gslpp::complex I_H_W(const double mH, const double MW) const
Definition: GeneralTHDMcache.cpp:5431
GeneralTHDMcache::CMS13_pp_phi_WW_lnuqq
gslpp::matrix< double > CMS13_pp_phi_WW_lnuqq
Definition: GeneralTHDMcache.h:213
GeneralTHDMcache::CacheCheck
int CacheCheck(const gslpp::complex cache[][CacheSize], const int NumPar, const double params[]) const
Check whether for the latest set of parameters a value is in the cache.
Definition: GeneralTHDMcache.cpp:151
GeneralTHDMcache::B0_MZ2_0_0_mHl2
gslpp::complex B0_MZ2_0_0_mHl2(const double MZ2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:320
GeneralTHDMcache::B00_MZ2_0_mHh2_mA2
gslpp::complex B00_MZ2_0_mHh2_mA2(const double MZ2, const double mHh2, const double mA2) const
Definition: GeneralTHDMcache.cpp:1222
GeneralTHDMcache::arraybsgamma
gslpp::matrix< double > arraybsgamma
table, depending on logtb and the logarithm of the charged Higgs mass.
Definition: GeneralTHDMcache.h:241
GeneralTHDMcache::ip_ex_VV_phi_WW_enumunu_ATLAS13
double ip_ex_VV_phi_WW_enumunu_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:2961
GeneralTHDMcache::B0_MZ2_mA2_0_mHl2
gslpp::complex B0_MZ2_mA2_0_mHl2(const double MZ2, const double mA2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:684
GeneralTHDMcache::B0p_MZ2_mHh2_0_mA2
gslpp::complex B0p_MZ2_mHh2_0_mA2(const double MZ2, const double mHh2, const double mA2) const
Definition: GeneralTHDMcache.cpp:982
GeneralTHDMcache::computephi3quantities
double computephi3quantities()
Definition: GeneralTHDMcache.cpp:6227
GeneralTHDMcache::B0_MZ2_mHl2_mHp2_mHp2
gslpp::complex B0_MZ2_mHl2_mHp2_mHp2(const double MZ2, const double mHl2, const double mHp2) const
Definition: GeneralTHDMcache.cpp:488
GeneralTHDMcache::B0_MZ2_0_0_mHh2
gslpp::complex B0_MZ2_0_0_mHh2(const double MZ2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:334
R13_GTHDM
Element (1,3) of the ortogonal matrix determining the mass e/states.
Definition: GeneralTHDMquantities.h:1044
GeneralTHDMcache::ip_ex_pp_Hpm_taunu_CMS13
double ip_ex_pp_Hpm_taunu_CMS13(double mass)
Interpolating function for the observed CMS upper limit on a singly charged scalar resonance decaying...
Definition: GeneralTHDMcache.cpp:5166
GeneralTHDMcache::A_A_D
gslpp::complex A_A_D(const double mA2, const double cW2, const double Ms, const double Mb, const double MZ) const
Definition: GeneralTHDMcache.cpp:5565
GeneralTHDMcache::ip_ex_gg_phi_ZZ_llllnunu_ATLAS13
double ip_ex_gg_phi_ZZ_llllnunu_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:2835
GeneralTHDMcache::B0p_MZ2_mHp2_0_mHh2
gslpp::complex B0p_MZ2_mHp2_0_mHh2(const double MZ2, const double mHp2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:1080
GeneralTHDMcache::B0_MZ2_MW2_MW2_mHl2
gslpp::complex B0_MZ2_MW2_MW2_mHl2(const double MZ2, const double MW2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:278
lambda2
An observable class for the quartic Higgs potential coupling .
Definition: THDMquantities.h:405
GeneralTHDMcache::I_h_D
gslpp::complex I_h_D(const double mHl2, const double Md, const double Ms, const double Mb) const
Definition: GeneralTHDMcache.cpp:5328
GeneralTHDM
A class for general Two-Higgs-Doublet models.
Definition: GeneralTHDM.h:463
GeneralTHDMcache::ip_ex_VV_phi_ZZ_qqllnunu_ATLAS13
double ip_ex_VV_phi_ZZ_qqllnunu_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:2877
GeneralTHDMcache::I_A_L
gslpp::complex I_A_L(const double mA2, const double Mmu, const double Mtau) const
Definition: GeneralTHDMcache.cpp:5415
GeneralTHDMcache::CacheShift
void CacheShift(gslpp::complex cache[][CacheSize], const int NumPar, const double params[], const gslpp::complex newResult) const
Adds a new result and its parameters into the cache.
Definition: GeneralTHDMcache.cpp:176
GeneralTHDMcache::ip_ex_gg_phi_WW_enumunu_ATLAS13
double ip_ex_gg_phi_WW_enumunu_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:2947
gslpp::matrix< double >::size_i
size_t size_i() const
Definition: gslpp_matrix_double.cpp:132
GeneralTHDMcache::B0p_MZ2_mHh2_0_0
gslpp::complex B0p_MZ2_mHh2_0_0(const double MZ2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:954
GeneralTHDMcache::ip_ex_bb_phi_phi1Z_bbZ_1_CMS13
double ip_ex_bb_phi_phi1Z_bbZ_1_CMS13(double mass)
Definition: GeneralTHDMcache.cpp:3396
GeneralTHDMcache::B0_MZ2_mHh2_mHh2_mHl2
gslpp::complex B0_MZ2_mHh2_mHh2_mHl2(const double MZ2, const double mHh2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:572
GeneralTHDMcache::csrH_bottom_8
gslpp::matrix< double > csrH_bottom_8
Definition: GeneralTHDMcache.h:172
GeneralTHDMcache::ip_Br_HPtotautau
double ip_Br_HPtotautau(double mass)
Interpolating function for the SM branching ratio to two tau leptons.
Definition: GeneralTHDMcache.cpp:1897
GeneralTHDMcache::ip_ex_gg_phi_tautau_CMS13
double ip_ex_gg_phi_tautau_CMS13(double mass)
Definition: GeneralTHDMcache.cpp:2653
GeneralTHDMcache::B0p_MZ2_mHh2_0_mHp2
gslpp::complex B0p_MZ2_mHh2_0_mHp2(const double MZ2, const double mHh2, const double mHp2) const
Definition: GeneralTHDMcache.cpp:968
GeneralTHDMcache::ATLAS13_gg_phi_phi1phi1_gagaWW
gslpp::matrix< double > ATLAS13_gg_phi_phi1phi1_gagaWW
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::log_cs_ggHp_13
gslpp::matrix< double > log_cs_ggHp_13
Charged Higgs production cross section table at 13 TeV from LHCHXSWGMSSMCharged, depending on the cha...
Definition: GeneralTHDMcache.h:167
GeneralTHDMcache::ATLAS13_pp_phi_gaga
gslpp::matrix< double > ATLAS13_pp_phi_gaga
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::CMS8_pp_phii_phijZ_tautaull_2
gslpp::matrix< double > CMS8_pp_phii_phijZ_tautaull_2
Definition: GeneralTHDMcache.h:197
GeneralTHDMcache::GammaHtot_SM
gslpp::matrix< double > GammaHtot_SM
Total SM decay width (obtained with HDECAY 6.10), depending on the Higgs mass.
Definition: GeneralTHDMcache.h:117
GeneralTHDMcache::ip_ex_pp_phi_phi1phi1_bbgaga_ATLAS13
double ip_ex_pp_phi_phi1phi1_bbgaga_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:3171
GeneralTHDMcache::ip_ex_bb_phi_tautau_CMS13
double ip_ex_bb_phi_tautau_CMS13(double mass)
Definition: GeneralTHDMcache.cpp:2681
GeneralTHDMcache::CMS13_pp_phi_phi1phi1_bbbb_1
gslpp::matrix< double > CMS13_pp_phi_phi1phi1_bbbb_1
Definition: GeneralTHDMcache.h:213
GeneralTHDMcache::B0_MZ2_0_MZ2_mHh2
gslpp::complex B0_MZ2_0_MZ2_mHh2(const double MZ2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:236
GeneralTHDMcache::B0_MZ2_mHh2_mA2_mA2
gslpp::complex B0_MZ2_mHh2_mA2_mA2(const double MZ2, const double mHh2, const double mA2) const
Definition: GeneralTHDMcache.cpp:614
GeneralTHDMcache::B0p_MZ2_mHp2_mHp2_mHh2
gslpp::complex B0p_MZ2_mHp2_mHp2_mHh2(const double MZ2, const double mHp2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:1122
GeneralTHDMcache.h
GeneralTHDMcache::ATLAS8_gg_phi_ZZ
gslpp::matrix< double > ATLAS8_gg_phi_ZZ
Definition: GeneralTHDMcache.h:182
GeneralTHDMcache::CMS8_gg_phi_phi1phi1_bbtautau
gslpp::matrix< double > CMS8_gg_phi_phi1phi1_bbtautau
Definition: GeneralTHDMcache.h:193
GeneralTHDMcache::csrA_top_8
gslpp::matrix< double > csrA_top_8
Definition: GeneralTHDMcache.h:172
GeneralTHDMcache::beta_mt_sq
double beta_mt_sq(const double mt, const double m_2) const
beta_mt_sq function
Definition: GeneralTHDMcache.cpp:5725
GeneralTHDMcache::B0_MZ2_0_MZ2_mHl2
gslpp::complex B0_MZ2_0_MZ2_mHl2(const double MZ2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:250
GeneralTHDMcache::br_bb
gslpp::matrix< double > br_bb
Definition: GeneralTHDMcache.h:112
GeneralTHDMcache::ip_ex_pp_phi_phi1phi1_bbbb_2_CMS13
double ip_ex_pp_phi_phi1phi1_bbbb_2_CMS13(double mass)
Definition: GeneralTHDMcache.cpp:3157
GeneralTHDMcache::BrSM_htotautau
double BrSM_htotautau
SM branching ratio of .
Definition: GeneralTHDMcache.h:775
R33_GTHDM
Element (3,3) of the ortogonal matrix determining the mass e/states.
Definition: GeneralTHDMquantities.h:1172
GeneralTHDMcache::ip_ex_pp_Hp_tb_CMS8
double ip_ex_pp_Hp_tb_CMS8(double mass)
Interpolating function for the observed CMS upper limit on a singly charged scalar resonance decaying...
Definition: GeneralTHDMcache.cpp:5198
R12_GTHDM
Element (1,2) of the ortogonal matrix determining the mass e/states.
Definition: GeneralTHDMquantities.h:1023
GeneralTHDMcache::br_tt
gslpp::matrix< double > br_tt
SM Higgs branching ratio tables (obtained with HDECAY 6.10), depending on the Higgs mass.
Definition: GeneralTHDMcache.h:112
GeneralTHDMcache::ip_ex_bb_phii_phijZ_bbZ_ATLAS13
double ip_ex_bb_phii_phijZ_bbZ_ATLAS13(double m3, double m2)
Definition: GeneralTHDMcache.cpp:3502
GeneralTHDMcache::ATLAS13_gg_phi_phi1Z_bbZ
gslpp::matrix< double > ATLAS13_gg_phi_phi1Z_bbZ
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::ATLAS13_pp_phi_phi1phi1_bbtautau
gslpp::matrix< double > ATLAS13_pp_phi_phi1phi1_bbtautau
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::B0p_MZ2_mHp2_0_mA2
gslpp::complex B0p_MZ2_mHp2_0_mA2(const double MZ2, const double mHp2, const double mA2) const
Definition: GeneralTHDMcache.cpp:1094
GeneralTHDMcache::ip_ex_pp_phii_phijZ_tautaull_2_CMS8
double ip_ex_pp_phii_phijZ_tautaull_2_CMS8(double m2, double m3)
Definition: GeneralTHDMcache.cpp:3471
GeneralTHDMcache::B00_MZ2_MW2_MW2_mHl2
gslpp::complex B00_MZ2_MW2_MW2_mHl2(const double MZ2, const double MW2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:1418
GeneralTHDMcache::B0_MZ2_mHl2_0_mHp2
gslpp::complex B0_MZ2_mHl2_0_mHp2(const double MZ2, const double mHl2, const double mHp2) const
Definition: GeneralTHDMcache.cpp:418
GeneralTHDMcache::ip_cs_pptobbH_8
double ip_cs_pptobbH_8(double mass)
Interpolating function for the bottom associated H production cross section at 8 TeV.
Definition: GeneralTHDMcache.cpp:2183
GeneralTHDMcache::B0_MZ2_mHp2_mHp2_mHl2
gslpp::complex B0_MZ2_mHp2_mHp2_mHl2(const double MZ2, const double mHp2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:656
GTHDM_BR_h_tautau
GTHDM branching ratio of .
Definition: GeneralTHDMLightHiggs.h:63
GeneralTHDMcache::ip_cs_ggtoHp_8
double ip_cs_ggtoHp_8(double mHp, double logtb)
Interpolating function for the H+ production cross section from two gluons at 8 TeV.
Definition: GeneralTHDMcache.cpp:2335
GeneralTHDMcache::CMS13_pp_phi_phi1phi1_bbtautau_2
gslpp::matrix< double > CMS13_pp_phi_phi1phi1_bbtautau_2
Definition: GeneralTHDMcache.h:213
GeneralTHDMcache::beta
double beta(const double mf, const double m_2) const
beta function
Definition: GeneralTHDMcache.cpp:5719
GeneralTHDMcache::B0_MZ2_mHp2_0_mHh2
gslpp::complex B0_MZ2_mHp2_0_mHh2(const double MZ2, const double mHp2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:642
GeneralTHDMcache::ATLAS13_gg_phi_ZZ_qqllnunu
gslpp::matrix< double > ATLAS13_gg_phi_ZZ_qqllnunu
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::B0p_MZ2_mA2_mA2_mHl2
gslpp::complex B0p_MZ2_mA2_mA2_mHl2(const double MZ2, const double mA2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:1178
GeneralTHDMcache::CMS13_bb_phi_tautau
gslpp::matrix< double > CMS13_bb_phi_tautau
Definition: GeneralTHDMcache.h:213
GeneralTHDMcache::ip_ex_bsgamma
double ip_ex_bsgamma(double logtb, double logmHp)
Interpolating function for the NNLO value for the branching ratio of decays in the GTHDM.
Definition: GeneralTHDMcache.cpp:5226
GeneralTHDMcache::lambdaipm
double lambdaipm(const double R1i, const double R2i, const double R3i) const
Definition: GeneralTHDMcache.cpp:5746
GeneralTHDMcache::ip_ex_gg_phi_Zga_llga_ATLAS13
double ip_ex_gg_phi_Zga_llga_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:2765
GeneralTHDMcache::log_cs_ttA_8
gslpp::matrix< double > log_cs_ttA_8
Definition: GeneralTHDMcache.h:152
GeneralTHDMcache::B00_MZ2_0_mHl2_mA2
gslpp::complex B00_MZ2_0_mHl2_mA2(const double MZ2, const double mHl2, const double mA2) const
Definition: GeneralTHDMcache.cpp:1250
GeneralTHDMcache::ip_ex_pp_phi_phi1phi1_bbtautau_ATLAS13
double ip_ex_pp_phi_phi1phi1_bbtautau_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:3199
gslpp::log10
complex log10(const complex &z)
Definition: gslpp_complex.cpp:351
GeneralTHDMcache::B0p_MZ2_mHh2_mHl2_mHl2
gslpp::complex B0p_MZ2_mHh2_mHl2_mHl2(const double MZ2, const double mHh2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:996
GeneralTHDMcache::B00_MZ2_MZ2_MZ2_mHl2
gslpp::complex B00_MZ2_MZ2_MZ2_mHl2(const double MZ2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:1488
GeneralTHDMcache::B0_MZ2_mHh2_mHp2_mHp2
gslpp::complex B0_MZ2_mHh2_mHp2_mHp2(const double MZ2, const double mHh2, const double mHp2) const
Definition: GeneralTHDMcache.cpp:600
GeneralTHDMcache::ip_ex_bb_phi_tautau_ATLAS13
double ip_ex_bb_phi_tautau_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:2667
GeneralTHDMcache::B0_MZ2_MW2_MW2_mHh2
gslpp::complex B0_MZ2_MW2_MW2_mHh2(const double MZ2, const double MW2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:264
GeneralTHDMcache::B00_MZ2_MZ2_mHh2_mA2
gslpp::complex B00_MZ2_MZ2_mHh2_mA2(const double MZ2, const double mHh2, const double mA2) const
Definition: GeneralTHDMcache.cpp:1432
GeneralTHDMcache::ip_ex_VV_phi_ZZ_ATLAS8
double ip_ex_VV_phi_ZZ_ATLAS8(double mass)
Definition: GeneralTHDMcache.cpp:2821
GeneralTHDMcache::B0p_MZ2_mHl2_0_mA2
gslpp::complex B0p_MZ2_mHl2_0_mA2(const double MZ2, const double mHl2, const double mA2) const
Definition: GeneralTHDMcache.cpp:870
R32_GTHDM
Element (3,2) of the ortogonal matrix determining the mass e/states.
Definition: GeneralTHDMquantities.h:1151
GeneralTHDMcache::ATLAS8_gg_phi_WW
gslpp::matrix< double > ATLAS8_gg_phi_WW
Definition: GeneralTHDMcache.h:182
GeneralTHDMcache::ip_ex_pp_phi_phi1phi1_bbtautau_CMS8
double ip_ex_pp_phi_phi1phi1_bbtautau_CMS8(double mass)
Definition: GeneralTHDMcache.cpp:3115
GeneralTHDMcache::ip_ex_gg_phi_phi1Z_tautaull_CMS8
double ip_ex_gg_phi_phi1Z_tautaull_CMS8(double mass)
Definition: GeneralTHDMcache.cpp:3326
QCD::STRANGE
Definition: QCD.h:327
GeneralTHDMcache::B0_MZ2_0_MW2_mHl2
gslpp::complex B0_MZ2_0_MW2_mHl2(const double MZ2, const double MW2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:222
GeneralTHDMcache::ip_ex_gg_phi_tautau_ATLAS13
double ip_ex_gg_phi_tautau_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:2639
GeneralTHDMcache::B0p_MZ2_0_mA2_mHh2
gslpp::complex B0p_MZ2_0_mA2_mHh2(const double MZ2, const double mA2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:828
GeneralTHDMcache::ip_cs_VBFtoH_13
double ip_cs_VBFtoH_13(double mass)
Interpolating function for the H production cross section via vector boson fusion at 13 TeV.
Definition: GeneralTHDMcache.cpp:2050
GeneralTHDMcache::yd1R
double yd1R
Coupling of the SM-Higgs to up quarks real part.
Definition: GeneralTHDMcache.h:788
GeneralTHDMcache::ATLAS8_gg_phi_phi1Z_bbZ
gslpp::matrix< double > ATLAS8_gg_phi_phi1Z_bbZ
Definition: GeneralTHDMcache.h:182
GeneralTHDMcache::ip_ex_gg_phi_phi1Z_bbZ_ATLAS13
double ip_ex_gg_phi_phi1Z_bbZ_ATLAS13(double mass)
Definition: GeneralTHDMcache.cpp:3340
GeneralTHDMcache::B0_MZ2_mHh2_0_mA2
gslpp::complex B0_MZ2_mHh2_0_mA2(const double MZ2, const double mHh2, const double mA2) const
Definition: GeneralTHDMcache.cpp:544
GeneralTHDMcache::CMS8_pp_phi_phi1phi1_bbbb
gslpp::matrix< double > CMS8_pp_phi_phi1phi1_bbbb
Definition: GeneralTHDMcache.h:193
gslpp::complex::real
const double & real() const
Definition: gslpp_complex.cpp:53
GeneralTHDMcache::I_A_U
gslpp::complex I_A_U(const double mA2, const double Mc, const double Mt) const
Definition: GeneralTHDMcache.cpp:5312
GeneralTHDMcache::CMS13_gg_phi_phi1Z_bbZ_1
gslpp::matrix< double > CMS13_gg_phi_phi1Z_bbZ_1
Definition: GeneralTHDMcache.h:213
GeneralTHDMcache::ip_ex_VV_phi_WW_ATLAS8
double ip_ex_VV_phi_WW_ATLAS8(double mass)
Definition: GeneralTHDMcache.cpp:2933
GeneralTHDMcache::B0p_MZ2_mHl2_mHl2_mHl2
gslpp::complex B0p_MZ2_mHl2_mHl2_mHl2(const double MZ2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:884
GeneralTHDMcache::ATLAS13_pp_phi_VV_qqqq
gslpp::matrix< double > ATLAS13_pp_phi_VV_qqqq
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::log_cs_ggA_13
gslpp::matrix< double > log_cs_ggA_13
CP-odd Higgs production cross section tables at 13 TeV obtained with HIGLU 4.34, depending on the Hig...
Definition: GeneralTHDMcache.h:157
GeneralTHDMcache::ATLAS13_bb_phii_phijZ_bbZ
gslpp::matrix< double > ATLAS13_bb_phii_phijZ_bbZ
Definition: GeneralTHDMcache.h:208
GeneralTHDMcache::ATLAS13_gg_phi_Zga_llga
gslpp::matrix< double > ATLAS13_gg_phi_Zga_llga
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::ip_ex_pp_phi_phi1phi1_bbVV_CMS13
double ip_ex_pp_phi_phi1phi1_bbVV_CMS13(double mass)
Definition: GeneralTHDMcache.cpp:3241
GeneralTHDMcache::A_HH_U
gslpp::complex A_HH_U(const double mHh2, const double cW2, const double Mc, const double Mt, const double MZ) const
Definition: GeneralTHDMcache.cpp:5484
GeneralTHDMcache::B0p_MZ2_mHh2_mHp2_mHp2
gslpp::complex B0p_MZ2_mHh2_mHp2_mHp2(const double MZ2, const double mHh2, const double mHp2) const
Definition: GeneralTHDMcache.cpp:1038
GeneralTHDMcache::B0_MZ2_0_MW2_mHh2
gslpp::complex B0_MZ2_0_MW2_mHh2(const double MZ2, const double MW2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:208
GeneralTHDMcache::ip_ex_gg_phi_Zga_CMS13
double ip_ex_gg_phi_Zga_CMS13(double mass)
Definition: GeneralTHDMcache.cpp:2793
m2_2
Definition: GeneralTHDMquantities.h:1301
GeneralTHDMcache::ATLAS13_bb_phi_tautau
gslpp::matrix< double > ATLAS13_bb_phi_tautau
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::ip_ex_pp_phi_Zga_llga_CMS8
double ip_ex_pp_phi_Zga_llga_CMS8(double mass)
Definition: GeneralTHDMcache.cpp:2751
GeneralTHDMcache::BrSM_htobb
double BrSM_htobb
SM branching ratio of .
Definition: GeneralTHDMcache.h:763
GeneralTHDMcache::ATLAS13_pp_phi_phi1phi1_bbgaga
gslpp::matrix< double > ATLAS13_pp_phi_phi1phi1_bbgaga
Definition: GeneralTHDMcache.h:202
GeneralTHDMcache::B00_MZ2_MW2_mA2_mHp2
gslpp::complex B00_MZ2_MW2_mA2_mHp2(const double MZ2, const double MW2, const double mA2, const double mHp2) const
Definition: GeneralTHDMcache.cpp:1348
GeneralTHDMcache::ip_ex_pp_phi_phi1phi1_bbbb_1_CMS13
double ip_ex_pp_phi_phi1phi1_bbbb_1_CMS13(double mass)
Definition: GeneralTHDMcache.cpp:3143
GeneralTHDMcache::updateCache
double updateCache()
Definition: GeneralTHDMcache.cpp:7114
GeneralTHDMcache::ip_cs_VBFtoH_8
double ip_cs_VBFtoH_8(double mass)
Interpolating function for the H production cross section via vector boson fusion at 8 TeV.
Definition: GeneralTHDMcache.cpp:2031
GeneralTHDMcache::csrA_bottom_8
gslpp::matrix< double > csrA_bottom_8
Definition: GeneralTHDMcache.h:172
GeneralTHDMcache::log_cs_bbH_13
gslpp::matrix< double > log_cs_bbH_13
SM Higgs production cross section table at 13 TeV obtained with SusHi 1.5, depending on the Higgs mas...
Definition: GeneralTHDMcache.h:147
GeneralTHDMcache::CMS8_pp_phii_phijZ_tautaull_1
gslpp::matrix< double > CMS8_pp_phii_phijZ_tautaull_1
Definition: GeneralTHDMcache.h:197
GeneralTHDMcache::ip_cs_WtoWH_13
double ip_cs_WtoWH_13(double mass)
Interpolating function for the W associated H production cross section at 13 TeV.
Definition: GeneralTHDMcache.cpp:2088
GeneralTHDMcache::B0p_MZ2_mHl2_mA2_mA2
gslpp::complex B0p_MZ2_mHl2_mA2_mA2(const double MZ2, const double mHl2, const double mA2) const
Definition: GeneralTHDMcache.cpp:940
GeneralTHDMcache::ip_ex_gg_phi_phi1Z_bbZ_2_CMS13
double ip_ex_gg_phi_phi1Z_bbZ_2_CMS13(double mass)
Definition: GeneralTHDMcache.cpp:3368
GeneralTHDMcache::ip_ex_gg_phi_gaga_ATLAS8
double ip_ex_gg_phi_gaga_ATLAS8(double mass)
Definition: GeneralTHDMcache.cpp:2695
GeneralTHDMcache::ip_ex_pp_phi_phi1phi1_bbgaga_CMS8
double ip_ex_pp_phi_phi1phi1_bbgaga_CMS8(double mass)
Definition: GeneralTHDMcache.cpp:3087
GeneralTHDMcache::B0p_MZ2_mHp2_mHp2_mHl2
gslpp::complex B0p_MZ2_mHp2_mHp2_mHl2(const double MZ2, const double mHp2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:1108
GeneralTHDMcache::I_h_L
gslpp::complex I_h_L(const double mHl2, const double Me, const double Mmu, const double Mtau) const
Definition: GeneralTHDMcache.cpp:5379
R11_GTHDM
Element (1,1) of the ortogonal matrix determining the mass e/states.
Definition: GeneralTHDMquantities.h:1002
GeneralTHDMcache::csrH_bottom_13
gslpp::matrix< double > csrH_bottom_13
Definition: GeneralTHDMcache.h:177
GeneralTHDMcache::ip_ex_bb_phi_tautau_ATLAS8
double ip_ex_bb_phi_tautau_ATLAS8(double mass)
Definition: GeneralTHDMcache.cpp:2611
GeneralTHDMcache::CMS8_pp_phii_phijZ_bbll_2
gslpp::matrix< double > CMS8_pp_phii_phijZ_bbll_2
Definition: GeneralTHDMcache.h:197
GeneralTHDMcache::CMS13_pp_Hpm_taunu
gslpp::matrix< double > CMS13_pp_Hpm_taunu
CMS observed upper cross section limits at 13 TeV, depending on the charged Higgs mass.
Definition: GeneralTHDMcache.h:236
GeneralTHDMcache::A_H_Hp
gslpp::complex A_H_Hp(const double mHp2, const double mH, const double cW2, const double MZ) const
Definition: GeneralTHDMcache.cpp:5666
GeneralTHDMcache::B0_MZ2_0_mA2_mHh2
gslpp::complex B0_MZ2_0_mA2_mHh2(const double MZ2, const double mA2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:390
GeneralTHDMcache::log_cs_bbH_8
gslpp::matrix< double > log_cs_bbH_8
SM Higgs production cross section table at 8 TeV obtained with SusHi 1.5, depending on the Higgs mass...
Definition: GeneralTHDMcache.h:142
GeneralTHDMcache::B00_MZ2_MW2_mHp2_mHp2
gslpp::complex B00_MZ2_MW2_mHp2_mHp2(const double MZ2, const double MW2, const double mHp2) const
Definition: GeneralTHDMcache.cpp:1390
GeneralTHDMcache::ip_cs_ggtoH_13
double ip_cs_ggtoH_13(double mass)
Interpolating function for the H production cross section via gluon-gluon fusion at 13 TeV.
Definition: GeneralTHDMcache.cpp:2012
GeneralTHDMcache::ip_ex_bb_phi_phi1Z_bbZ_2_CMS13
double ip_ex_bb_phi_phi1Z_bbZ_2_CMS13(double mass)
Definition: GeneralTHDMcache.cpp:3410
m1_2
Definition: GeneralTHDMquantities.h:1279
GeneralTHDMcache::A_HH_D
gslpp::complex A_HH_D(const double mHh2, const double cW2, const double Ms, const double Mb, const double MZ) const
Definition: GeneralTHDMcache.cpp:5545
GeneralTHDMcache::br_WW
gslpp::matrix< double > br_WW
Definition: GeneralTHDMcache.h:112
GeneralTHDMcache::B0p_MZ2_0_0_mHh2
gslpp::complex B0p_MZ2_0_0_mHh2(const double MZ2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:758
GeneralTHDMcache::ip_ex_pp_phi_bb_CMS13
double ip_ex_pp_phi_bb_CMS13(double mass)
Definition: GeneralTHDMcache.cpp:2555
GeneralTHDMcache::B0p_MZ2_mHl2_mHh2_mHl2
gslpp::complex B0p_MZ2_mHl2_mHh2_mHl2(const double MZ2, const double mHl2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:898
GeneralTHDMcache::ip_ex_pp_phi_phi1phi1_bbgaga_CMS13
double ip_ex_pp_phi_phi1phi1_bbgaga_CMS13(double mass)
Definition: GeneralTHDMcache.cpp:3185
GeneralTHDMcache::ip_ex_mu_pp_phi_VV_CMS8
double ip_ex_mu_pp_phi_VV_CMS8(double mass)
Definition: GeneralTHDMcache.cpp:3031
GeneralTHDMcache::B00_MZ2_MW2_mHh2_mHp2
gslpp::complex B00_MZ2_MW2_mHh2_mHp2(const double MZ2, const double MW2, const double mHh2, const double mHp2) const
Definition: GeneralTHDMcache.cpp:1362
GeneralTHDMcache::CMS13_ggVV_phi_WW_lnulnu
gslpp::matrix< double > CMS13_ggVV_phi_WW_lnulnu
Definition: GeneralTHDMcache.h:213
GeneralTHDMcache::B0_MZ2_mHp2_mHp2_mHh2
gslpp::complex B0_MZ2_mHp2_mHp2_mHh2(const double MZ2, const double mHp2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:670
GeneralTHDMcache::ATLAS13_tt_phi_tt
gslpp::matrix< double > ATLAS13_tt_phi_tt
ATLAS observed upper cross section limits at 13 TeV, depending on the Higgs mass.
Definition: GeneralTHDMcache.h:202
QCD::DOWN
Definition: QCD.h:325
GeneralTHDMcache::I_h_U
gslpp::complex I_h_U(const double mHl2, const double Mu, const double Mc, const double Mt) const
Definition: GeneralTHDMcache.cpp:5277
GeneralTHDMcache::B0_MZ2_mHl2_0_0
gslpp::complex B0_MZ2_mHl2_0_0(const double MZ2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:404
GeneralTHDMcache::ip_cs_ggtoH_8
double ip_cs_ggtoH_8(double mass)
Interpolating function for the H production cross section via gluon-gluon fusion at 8 TeV.
Definition: GeneralTHDMcache.cpp:1993
GeneralTHDMcache::ip_ex_gg_phi_phi1Z_bbll_CMS8
double ip_ex_gg_phi_phi1Z_bbll_CMS8(double mass)
Definition: GeneralTHDMcache.cpp:3298
GeneralTHDMcache::A_h_L
gslpp::complex A_h_L(const double mHl2, const double cW2, const double Me, const double Mmu, const double Mtau, const double MZ) const
Definition: GeneralTHDMcache.cpp:5584
GeneralTHDMcache::B0p_MZ2_0_mHp2_mHh2
gslpp::complex B0p_MZ2_0_mHp2_mHh2(const double MZ2, const double mHp2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:786
GTHDM_BR_h_gaga
GTHDM branching ratio of .
Definition: GeneralTHDMLightHiggs.h:42
GeneralTHDMcache::ip_ex_ggVV_phi_WW_lnulnu_CMS13
double ip_ex_ggVV_phi_WW_lnulnu_CMS13(double mass)
Definition: GeneralTHDMcache.cpp:2975
m3_2
Definition: GeneralTHDMquantities.h:1323
GeneralTHDMcache::B0_MZ2_0_mHp2_mHh2
gslpp::complex B0_MZ2_0_mHp2_mHh2(const double MZ2, const double mHp2, const double mHh2) const
Definition: GeneralTHDMcache.cpp:362
GeneralTHDMcache::B0p_MZ2_0_mHp2_mHl2
gslpp::complex B0p_MZ2_0_mHp2_mHl2(const double MZ2, const double mHp2, const double mHl2) const
Definition: GeneralTHDMcache.cpp:772
GeneralTHDMcache::CMS8_pp_phi_Zga_llga
gslpp::matrix< double > CMS8_pp_phi_Zga_llga
Definition: GeneralTHDMcache.h:193
GeneralTHDMcache::ip_ex_gg_phi_phi1phi1_bbtautau_CMS8
double ip_ex_gg_phi_phi1phi1_bbtautau_CMS8(double mass)
Definition: GeneralTHDMcache.cpp:3101
R31_GTHDM
Element (3,1) of the ortogonal matrix determining the mass e/states.
Definition: GeneralTHDMquantities.h:1130
GeneralTHDMcache::CMS8_pp_Hp_tb
gslpp::matrix< double > CMS8_pp_Hp_tb
Definition: GeneralTHDMcache.h:226
GeneralTHDMcache::ip_csr_ggA_t_8
double ip_csr_ggA_t_8(double mass)
Interpolating function for the gluon-gluon fusion A cross section ratio of the top-loop and the total...
Definition: GeneralTHDMcache.cpp:2437
QCD::MU
Definition: QCD.h:314
GeneralTHDMcache::csrH_top_8
gslpp::matrix< double > csrH_top_8
Production cross section ratio tables at 8 TeV obtained with HIGLU 4.34, depending on the Higgs mass.
Definition: GeneralTHDMcache.h:172
GeneralTHDMcache::B00_MZ2_0_mHp2_mHp2
gslpp::complex B00_MZ2_0_mHp2_mHp2(const double MZ2, const double mHp2) const
Definition: GeneralTHDMcache.cpp:1278
GeneralTHDMcache::B0_MZ2_mHh2_0_mHp2
gslpp::complex B0_MZ2_mHh2_0_mHp2(const double MZ2, const double mHh2, const double mHp2) const
Definition: GeneralTHDMcache.cpp:530
GeneralTHDMcache::ip_csr_ggA_b_13
double ip_csr_ggA_b_13(double mass)
Interpolating function for the gluon-gluon fusion A cross section ratio of the bottom-loop and the to...
Definition: GeneralTHDMcache.cpp:2485
GeneralTHDMcache::ip_ex_gg_phii_phijZ_bbZ_ATLAS13
double ip_ex_gg_phii_phijZ_bbZ_ATLAS13(double m3, double m2)
Definition: GeneralTHDMcache.cpp:3487
GeneralTHDMcache::br_mumu
gslpp::matrix< double > br_mumu
Definition: GeneralTHDMcache.h:112
GeneralTHDMcache::ip_Br_HPtomumu
double ip_Br_HPtomumu(double mass)
Interpolating function for the SM branching ratio to two muons.
Definition: GeneralTHDMcache.cpp:1929