a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
EWSMApproximateFormulae.cpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2012 HEPfit Collaboration
3 *
4 *
5 * For the licensing terms see doc/COPYING.
6 */
7
9#include <stdexcept>
10#include <sstream>
11
12#define UpperBoundForApproximateFormulae 1000.0
13//#define UpperBoundForApproximateFormulae 1500.0 // for test
14
16: mycache(cache_i)
17{
18}
19
20
22
24{
25 // Parametrization from arXiv:hep-ph/0311148v2 (updates from the journal version)
26 double Mw0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11;
27 if (mycache.getSM().getMHl() >= 100.0 && mycache.getSM().getMHl() <= UpperBoundForApproximateFormulae) {
28 // applicable for 100 GeV <= mHl <= 1 TeV
29 Mw0 = 80.3779;
30 c1 = 0.05263;
31 c2 = 0.010239;
32 c3 = 0.000954;
33 c4 = -0.000054;
34 c5 = 1.077;
35 c6 = 0.5252;
36 c7 = 0.0700;
37 c8 = 0.004102;
38 c9 = 0.000111;
39 c10 = 0.0774;
40 c11 = 115.0;
41 } else if (mycache.getSM().getMHl() >= 10.0 && mycache.getSM().getMHl() <= 1000.0) {
42 // applicable for 10 GeV <= mHl <= 1 TeV
43 Mw0 = 80.3799;
44 c1 = 0.05427;
45 c2 = 0.008931;
46 c3 = 0.0000882;
47 c4 = 0.000161;
48 c5 = 1.070;
49 c6 = 0.5237;
50 c7 = 0.0679;
51 c8 = 0.00179;
52 c9 = 0.0000664;
53 c10 = 0.0795;
54 c11 = 114.9;
55 } else {
56 std::stringstream out;
57 out << mycache.getSM().getMHl();
58 throw std::runtime_error("ApproximateFormulae::Mw(): mh=" + out.str() + " is out of range");
59 }
60
61 double dH = log(mycache.getSM().getMHl() / 100.0);
62 double dh = pow((mycache.getSM().getMHl() / 100.0), 2.0);
63 double dt = pow((mycache.getSM().getMtpole() / 174.3), 2.0) - 1.0;
64 double dZ = mycache.getSM().getMz() / 91.1875 - 1.0;
65 double dalphae = mycache.getSM().DeltaAlphaL5q() / 0.05907 - 1.0;
66 double dalphas = mycache.getSM().getAlsMz() / 0.119 - 1.0;
67
68 return (Mw0 - c1 * dH - c2 * dH * dH + c3 * pow(dH, 4.0)
69 + c4 * (dh - 1.0) - c5 * dalphae + c6 * dt - c7 * dt * dt
70 - c8 * dH * dt + c9 * dh * dt - c10 * dalphas + c11 * dZ
71 + mycache.getSM().getDelMw());
72}
73
75{
76 // Use parametrization for W mass from arXiv:hep-ph/0311148v2 (updates from the journal version)
77 double Mw0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11;
78 if (mycache.getSM().getMHl() >= 100.0 && mycache.getSM().getMHl() <= UpperBoundForApproximateFormulae) {
79 // applicable for 100 GeV <= mHl <= 1 TeV
80 Mw0 = 80.3779;
81 c1 = 0.05263;
82 c2 = 0.010239;
83 c3 = 0.000954;
84 c4 = -0.000054;
85 c5 = 1.077;
86 c6 = 0.5252;
87 c7 = 0.0700;
88 c8 = 0.004102;
89 c9 = 0.000111;
90 c10 = 0.0774;
91 c11 = 115.0;
92 } else if (mycache.getSM().getMHl() >= 10.0 && mycache.getSM().getMHl() <= 1000.0) {
93 // applicable for 10 GeV <= mHl <= 1 TeV
94 Mw0 = 80.3799;
95 c1 = 0.05427;
96 c2 = 0.008931;
97 c3 = 0.0000882;
98 c4 = 0.000161;
99 c5 = 1.070;
100 c6 = 0.5237;
101 c7 = 0.0679;
102 c8 = 0.00179;
103 c9 = 0.0000664;
104 c10 = 0.0795;
105 c11 = 114.9;
106 } else {
107 std::stringstream out;
108 out << mycache.getSM().getMHl();
109 throw std::runtime_error("ApproximateFormulae::dAlpha5hMw(): mh=" + out.str() + " is out of range");
110 }
111
112 double dH = log(mycache.getSM().getMHl() / 100.0);
113 double dh = pow((mycache.getSM().getMHl() / 100.0), 2.0);
114 double dt = pow((mycache.getSM().getMtpole() / 174.3), 2.0) - 1.0;
115 double dZ = mycache.getSM().getMz() / 91.1875 - 1.0;
116 double dalphas = mycache.getSM().getAlsMz() / 0.119 - 1.0;
117
118 double MwInp = mycache.getSM().getMw();
119 double Mz2 = (mycache.getSM().getMz())*(mycache.getSM().getMz());
120 double dalphaeLept = mycache.getSM().DeltaAlphaLepton(Mz2);
121 double dalphae;
122
123 dalphae = ( (Mw0 - MwInp - c1 * dH - c2 * dH * dH + c3 * pow(dH, 4.0)
124 + c4 * (dh - 1.0) + c6 * dt - c7 * dt * dt
125 - c8 * dH * dt + c9 * dh * dt - c10 * dalphas + c11 * dZ
126 + mycache.getSM().getDelMw())/c5 );
127
128 return 0.05907 * (dalphae + 1.0) - dalphaeLept;
129}
130
131
133{
134 // applicable for 10 GeV <= mHl <= 1 TeV
135 if (mycache.getSM().getMHl() < 10.0 || mycache.getSM().getMHl() > UpperBoundForApproximateFormulae) {
136 std::stringstream out;
137 out << mycache.getSM().getMHl();
138 throw std::runtime_error("ApproximateFormulae::sin2thetaEff_l(): mh=" + out.str() + " is out of range");
139 }
140
141 double s0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10;
142 switch (l) {
146 s0 = 0.2308772;
147 d1 = 4.713 * 0.0001;
148 d2 = 2.05 * 0.00001;
149 d3 = 3.85 * 0.000001;
150 d4 = -1.85 * 0.000001;
151 d5 = 2.06 * 0.01;
152 d6 = -2.850 * 0.001;
153 d7 = 1.82 * 0.0001;
154 d8 = -9.71 * 0.000001;
155 d9 = 3.96 * 0.0001;
156 d10 = -6.54 * 0.1;
157 break;
161 s0 = 0.2312527;
162 d1 = 4.729 * 0.0001;
163 d2 = 2.07 * 0.00001;
164 d3 = 3.85 * 0.000001;
165 d4 = -1.85 * 0.000001;
166 d5 = 2.07 * 0.01;
167 d6 = -2.851 * 0.001;
168 d7 = 1.82 * 0.0001;
169 d8 = -9.74 * 0.000001;
170 d9 = 3.98 * 0.0001;
171 d10 = -6.55 * 0.1;
172 break;
173 default:
174 throw std::runtime_error("Error in ApproximateFormulae::sin2thetaEff_l()");
175 }
176
177 double L_H = log(mycache.getSM().getMHl() / 100.0);
178 double Delta_H = mycache.getSM().getMHl() / 100.0;
179 double Delta_ale = mycache.getSM().DeltaAlphaL5q() / 0.05907 - 1.0;
180 double Delta_t = pow((mycache.getSM().getMtpole() / 178.0), 2.0) - 1.0;
181 double Delta_alphas = mycache.getSM().getAlsMz() / 0.117 - 1.0;
182 double Delta_Z = mycache.getSM().getMz() / 91.1876 - 1.0;
183
184 return (s0 + d1 * L_H + d2 * L_H * L_H + d3 * pow(L_H, 4.0)
185 + d4 * (Delta_H * Delta_H - 1.0) + d5 * Delta_ale + d6 * Delta_t
186 + d7 * Delta_t * Delta_t + d8 * Delta_t * (Delta_H - 1.0)
187 + d9 * Delta_alphas + d10 * Delta_Z
189}
190
192{
193 // applicable for 10 GeV <= mHl <= 1 TeV
194 if (mycache.getSM().getMHl() < 10.0 || mycache.getSM().getMHl() > UpperBoundForApproximateFormulae) {
195 std::stringstream out;
196 out << mycache.getSM().getMHl();
197 throw std::runtime_error("ApproximateFormulae::sin2thetaEff_q(): mh=" + out.str() + " is out of range");
198 }
199
200 double s0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10;
201 double ThError = 0.0; // Theoretical uncertainty
202
203 switch (q) {
204 case QCD::UP:
205 case QCD::CHARM:
206 s0 = 0.2311395;
207 d1 = 4.726 * 0.0001;
208 d2 = 2.07 * 0.00001;
209 d3 = 3.85 * 0.000001;
210 d4 = -1.85 * 0.000001;
211 d5 = 2.07 * 0.01;
212 d6 = -2.853 * 0.001;
213 d7 = 1.83 * 0.0001;
214 d8 = -9.73 * 0.000001;
215 d9 = 3.98 * 0.0001;
216 d10 = -6.55 * 0.1;
217 ThError = mycache.getSM().getDelSin2th_q();
218 break;
219 case QCD::DOWN:
220 case QCD::STRANGE:
221 s0 = 0.2310286;
222 d1 = 4.720 * 0.0001;
223 d2 = 2.06 * 0.00001;
224 d3 = 3.85 * 0.000001;
225 d4 = -1.85 * 0.000001;
226 d5 = 2.07 * 0.01;
227 d6 = -2.848 * 0.001;
228 d7 = 1.81 * 0.0001;
229 d8 = -9.73 * 0.000001;
230 d9 = 3.97 * 0.0001;
231 d10 = -6.55 * 0.1;
232 ThError = mycache.getSM().getDelSin2th_q();
233 break;
234 case QCD::BOTTOM:
235
236 if (mycache.getSM().getMHl() < 120.1 || mycache.getSM().getMHl() > 130.1) {
237 s0 = 0.2327580;
238 d1 = 4.749 * 0.0001;
239 d2 = 2.03 * 0.00001;
240 d3 = 3.94 * 0.000001;
241 d4 = -1.84 * 0.000001;
242 d5 = 2.08 * 0.01;
243 d6 = -0.993 * 0.001;
244 d7 = 0.708 * 0.0001;
245 d8 = -7.61 * 0.000001;
246 d9 = 4.03 * 0.0001;
247 d10 = 6.61 * 0.1;
248 ThError = mycache.getSM().getDelSin2th_b();
249 break;
250
251 } else {
252 return sin2thetaEff_b();
253 }
254 case QCD::TOP:
255 return 0.0;
256 default:
257 throw std::runtime_error("Error in ApproximateFormulae::sin2thetaEff_q()");
258 }
259
260 double L_H = log(mycache.getSM().getMHl() / 100.0);
261 double Delta_H = mycache.getSM().getMHl() / 100.0;
262 double Delta_ale = mycache.getSM().DeltaAlphaL5q() / 0.05907 - 1.0;
263 double Delta_t = pow((mycache.getSM().getMtpole() / 178.0), 2.0) - 1.0;
264 double Delta_alphas = mycache.getSM().getAlsMz() / 0.117 - 1.0;
265 double Delta_Z = mycache.getSM().getMz() / 91.1876 - 1.0;
266
267 return (s0 + d1 * L_H + d2 * L_H * L_H + d3 * pow(L_H, 4.0)
268 + d4 * (Delta_H * Delta_H - 1.0) + d5 * Delta_ale + d6 * Delta_t
269 + d7 * Delta_t * Delta_t + d8 * Delta_t * (Delta_H - 1.0)
270 + d9 * Delta_alphas + d10 * Delta_Z
271 + ThError);
272}
273
275{
276 // applicable for 120.1 GeV <= mHl <= 130.1 GeV
277 if (mycache.getSM().getMHl() < 120.1 || mycache.getSM().getMHl() > 130.1) {
278 std::stringstream out;
279 out << mycache.getSM().getMHl();
280 throw std::runtime_error("ApproximateFormulae::sin2thetaEff_b(): mh=" + out.str() + " is out of range");
281 }
282
283 double s0, d1, d2, d3, d4, d5, d6, d7, d8, d9;
284
285 s0 = 0.232704;
286 d1 = 4.723 * 0.0001;
287 d2 = 1.97 * 0.0001;
288 d3 = 2.07 * 0.01;
289 d4 = -9.733 * 0.0001;
290 d5 = 3.93 * 0.0001;
291 d6 = -1.38 * 0.0001;
292 d7 = 2.42 * 0.0001;
293 d8 = -8.10 * 0.0001;
294 d9 = -0.664;
295
296 double L_H = log(mycache.getSM().getMHl() / 125.7);
297 double Delta_ale = mycache.getSM().DeltaAlphaL5q() / 0.059 - 1.0;
298 double Delta_t = pow((mycache.getSM().getMtpole() / 173.2), 2.0) - 1.0;
299 double Delta_alphas = mycache.getSM().getAlsMz() / 0.1184 - 1.0;
300 double Delta_Z = mycache.getSM().getMz() / 91.1876 - 1.0;
301
302 return (s0 + d1 * L_H + d2 * L_H * L_H
303 + d3 * Delta_ale
304 + d4 * Delta_t + d5 * Delta_t * Delta_t + d6 * Delta_t * L_H
305 + d7 * Delta_alphas + d8 * Delta_t * Delta_alphas
306 + d9 * Delta_Z
308}
309
311{
312 // applicable for 10 GeV <= mHl <= 1 TeV
313 if (mycache.getSM().getMHl() < 10.0 || mycache.getSM().getMHl() > UpperBoundForApproximateFormulae) {
314 std::stringstream out;
315 out << mycache.getSM().getMHl();
316 throw std::runtime_error("ApproximateFormulae::DeltaR_TwoLoopEW_rem(): mh=" + out.str() + " is out of range");
317 }
318
319 double r0 = 0.003354;
320 double r1 = -0.000209;
321 double r2 = 0.0000254;
322 double r3 = -0.00000785;
323 double r4 = -0.00000233;
324 double r5 = 0.00783;
325 double r6 = 0.00338;
326 double r7 = -0.00000989;
327 double r8 = 0.0939;
328 double r9 = 0.204;
329 double r10 = -0.103;
330
331 //double Mw = Mw(DeltaAlphaL5q_i); /* for test */
332 double Mw = Mw_i;
333
334 double L_H = log(mycache.getSM().getMHl() / 100.0);
335 double Delta_H = mycache.getSM().getMHl() / 100.0;
336 double Delta_t = pow((mycache.getSM().getMtpole() / 178.0), 2.0) - 1.0;
337 double Delta_Z = mycache.getSM().getMz() / 91.1876 - 1.0;
338 double Delta_W = Mw / 80.404 - 1.0;
339
340 return ( r0 + r1 * L_H + r2 * L_H * L_H + r3 * pow(L_H, 4.0)
341 + r4 * (Delta_H * Delta_H - 1.0) + r5 * Delta_t
342 + r6 * Delta_t * Delta_t + r7 * Delta_t * L_H + r8 * Delta_W
343 + r9 * Delta_W * Delta_t + r10 * Delta_Z);
344}
345
347{
348 // applicable for 10 GeV <= mHl <= 1 TeV
349 if (mycache.getSM().getMHl() < 10.0 || mycache.getSM().getMHl() > UpperBoundForApproximateFormulae) {
350 std::stringstream out;
351 out << mycache.getSM().getMHl();
352 throw std::runtime_error("ApproximateFormulae::DeltaKappa_l_TwoLoopEW_rem(): mh=" + out.str() + " is out of range");
353 }
354
355 double k0 = -0.002711;
356 double k1 = -0.0000312;
357 double k2 = -0.0000412;
358 double k3 = 0.00000528;
359 double k4 = 0.00000375;
360 double k5 = -0.00516;
361 double k6 = -0.00206;
362 double k7 = -0.000232;
363 double k8 = -0.0647;
364 double k9 = -0.129;
365 double k10 = 0.0712;
366
367 double L_H = log(mycache.getSM().getMHl() / 100.0);
368 double Delta_H = mycache.getSM().getMHl() / 100.0;
369 double Delta_t = pow((mycache.getSM().getMtpole() / 178.0), 2.0) - 1.0;
370 double Delta_Z = mycache.getSM().getMz() / 91.1876 - 1.0;
371 double Delta_W = Mw_i / 80.404 - 1.0;
372
373 return ( k0 + k1 * L_H + k2 * L_H * L_H + k3 * pow(L_H, 4.0)
374 + k4 * (Delta_H * Delta_H - 1.0) + k5 * Delta_t
375 + k6 * Delta_t * Delta_t + k7 * Delta_t * L_H
376 + k8 * Delta_W + k9 * Delta_W * Delta_t + k10 * Delta_Z);
377}
378
380{
381 // applicable for 10 GeV <= mHl <= 1 TeV
382 if (mycache.getSM().getMHl() < 10.0 || mycache.getSM().getMHl() > UpperBoundForApproximateFormulae) {
383 std::stringstream out;
384 out << mycache.getSM().getMHl();
385 throw std::runtime_error("ApproximateFormulae::DeltaKappa_b_TwoLoopEW_rem(): mh=" + out.str() + " is out of range");
386 }
387
388 double k0 = -0.002666;
389 double k1 = -0.0000592;
390 double k2 = -0.00000329;
391 double k3 = 0.00000349;
392 double k4 = 0.00000283;
393 double k5 = -0.00534;
394 double k6 = -0.00210;
395 double k7 = -0.000219;
396 double k8 = -0.0631;
397 double k9 = -0.126;
398 double k10 = 0.0647;
399
400 double L_H = log(mycache.getSM().getMHl() / 100.0);
401 double Delta_H = mycache.getSM().getMHl() / 100.0;
402 double Delta_t = pow((mycache.getSM().getMtpole() / 178.0), 2.0) - 1.0;
403 double Delta_Z = mycache.getSM().getMz() / 91.1876 - 1.0;
404 double Delta_W = Mw_i / 80.404 - 1.0;
405
406 return ( k0 + k1 * L_H + k2 * L_H * L_H + k3 * pow(L_H, 4.0)
407 + k4 * (Delta_H * Delta_H - 1.0) + k5 * Delta_t
408 + k6 * Delta_t * Delta_t + k7 * Delta_t * L_H
409 + k8 * Delta_W + k9 * Delta_W * Delta_t + k10 * Delta_Z);
410}
411
413{
414 // applicable for 10 GeV <= mHl <= 1 TeV
415 if (mycache.getSM().getMHl() < 10.0 || mycache.getSM().getMHl() > UpperBoundForApproximateFormulae) {
416 std::stringstream out;
417 out << mycache.getSM().getMHl();
418 throw std::runtime_error("ApproximateFormulae::R0_bottom(): mh=" + out.str() + " is out of range");
419 }
420
421 /*-----------------------------------------------*/
422 /* arXiv:1205.0299v1 by Freitas and Huang */
423 /*
424 double Rb00 = 0.2147464;
425 double c1 = 0.0000221;
426 double c2 = 0.0000026;
427 double c3 = -0.00000067;
428 double c4 = 0.0000000911;
429 double c5 = 0.000647;
430 double c6 = -0.003239;
431 double c7 = 0.0000673;
432 double c8 = -0.000324;
433 double c9 = 0.0610;
434
435 double L_H = log(mycache.getSM().getMHl()/100.0);
436 double Delta_H = mycache.getSM().getMHl()/100.0;
437 double Delta_ale = mycache.getSM().mycache.getSM().DeltaAlphaL5q()/0.05900 - 1.0;
438 double Delta_t = pow((mycache.getSM().getMtpole()/173.2), 2.0) - 1.0;
439 double Delta_alphas = mycache.getSM().getAlsMz()/0.1184 - 1.0;
440 double Delta_Z = mycache.getSM().getMz()/91.1876 - 1.0;
441
442 return (Rb00 + c1*L_H + c2*L_H*L_H + c3*pow(L_H, 4.0)
443 + c4*(Delta_H*Delta_H - 1.0) + c5*Delta_ale + c6*Delta_t
444 + c7*Delta_t*L_H + c8*Delta_alphas + c9*Delta_Z );
445 */
446
447 /*-----------------------------------------------*/
448 /* arXiv:1205.0299v2 by Freitas and Huang */
449 /*
450 double Rb00 = 0.2149246;
451 double c1 = 2.23 * pow(10.0, -5.);
452 double c2 = 2.6 * pow(10.0, -6.);
453 double c3 = -6.8 * pow(10.0, -7.);
454 double c4 = 9.19 *pow(10.0, -8.);
455 double c5 = 6.58 * pow(10.0, -4.);
456 double c6 = -3.363 * pow(10.0, -3.);
457 double c7 = 6.74 * pow(10.0, -5.);
458 double c8 = -1.688 * pow(10.0, -3.);
459 double c9 = -9.26 * pow(10.0, -4.);
460 double c10 = 5.93 * pow(10.0, -2.);
461
462 double L_H = log(mycache.getSM().getMHl()/100.0);
463 double Delta_H = mycache.getSM().getMHl()/100.0;
464 double Delta_ale = mycache.getSM().mycache.getSM().DeltaAlphaL5q()/0.05900 - 1.0;
465 double Delta_t = pow((mycache.getSM().getMtpole()/173.2), 2.0) - 1.0;
466 double Delta_alphas = mycache.getSM().getAlsMz()/0.1184 - 1.0;
467 double Delta_Z = mycache.getSM().getMz()/91.1876 - 1.0;
468
469 return (Rb00 + c1*L_H + c2*L_H*L_H + c3*pow(L_H, 4.0)
470 + c4*(Delta_H*Delta_H - 1.0) + c5*Delta_ale + c6*Delta_t
471 + c7*Delta_t*L_H + c8*Delta_alphas + c9*Delta_alphas*Delta_alphas
472 + c10*Delta_Z );
473 */
474
475 /*-----------------------------------------------*/
476 /* arXiv:1205.0299v3 by Freitas and Huang */
477
478 double Rb00 = 0.2154940;
479 double c1 = 1.88 * pow(10.0, -5.);
480 double c2 = 2.0 * pow(10.0, -6.);
481 double c3 = -6.0 * pow(10.0, -7.);
482 double c4 = 8.53 * pow(10.0, -8.);
483 double c5 = 7.05 * pow(10.0, -4.);
484 double c6 = -3.159 * pow(10.0, -3.);
485 double c7 = 6.65 * pow(10.0, -5.);
486 double c8 = -1.704 * pow(10.0, -3.);
487 double c9 = -9.30 * pow(10.0, -4.);
488 double c10 = 6.26 * pow(10.0, -2.);
489
490 double L_H = log(mycache.getSM().getMHl() / 100.0);
491 double Delta_H = mycache.getSM().getMHl() / 100.0;
492 double Delta_ale = mycache.getSM().DeltaAlphaL5q() / 0.05900 - 1.0;
493 double Delta_t = pow((mycache.getSM().getMtpole() / 173.2), 2.0) - 1.0;
494 double Delta_alphas = mycache.getSM().getAlsMz() / 0.1184 - 1.0;
495 double Delta_Z = mycache.getSM().getMz() / 91.1876 - 1.0;
496
497 /* Debug (parameters in arXiv:1205.0299v3) */
498 //double mHpaper = 100.0;
499 //double mHpaper = 200.0;
500 //double mHpaper = 400.0;
501 //double mHpaper = 600.0;
502 //double mHpaper = 1000.0;
503 //L_H = log(mHpaper/100.0);
504 //Delta_H = mHpaper/100.0;
505 //Delta_ale = 0.0;//0.05900/0.05900 - 1.0;
506 //Delta_t = 0.0;//pow((173.2/173.2), 2.0) - 1.0;
507 //Delta_alphas = 0.0;//0.1184/0.1184 - 1.0;
508 //Delta_Z = 0.0;//91.1876/91.1876 - 1.0;
509
510 return (Rb00 + c1 * L_H + c2 * L_H * L_H + c3 * pow(L_H, 4.0)
511 + c4 * (Delta_H * Delta_H - 1.0) + c5 * Delta_ale + c6 * Delta_t
512 + c7 * Delta_t * L_H + c8 * Delta_alphas + c9 * Delta_alphas * Delta_alphas
513 + c10 * Delta_Z);
514
515}
516
518{
519 // applicable for 10 GeV <= mHl <= 1 TeV
520 if (mycache.getSM().getMHl() < 10.0 || mycache.getSM().getMHl() > UpperBoundForApproximateFormulae) {
521 std::stringstream out;
522 out << mycache.getSM().getMHl();
523 throw std::runtime_error("ApproximateFormulae::Gu_over_Gb(): mh=" + out.str() + " is out of range");
524 }
525
526 // obtained from Freitas on Apr. 23, 2013
527 /*
528 double R = 0.8024769;
529 double c1 = -1.9007e-4;
530 double c2 = -2.112e-5;
531 double c3 = 6.63e-6;
532 double c4 = -1.0284e-6;
533 double c5 = -8.081e-3;
534 double c6 = 1.830e-4;
535 double c7 = 1.7522e-2;
536 double c8 = 4.440e-3;
537 double c9 = -3.245e-4;
538 double c10 = 1.8079e-2;
539 double c11 = 1.0720e-2;
540 double c12 = -0.129;
541 */
542
543 // obtained from Freitas on Sep. 21, 2013
544 double R = 0.7997930;
545 double c1 = -1.7991e-4;
546 double c2 = -1.980e-5;
547 double c3 = 6.24e-6;
548 double c4 = -0.9829e-6;
549 double c5 = -8.200e-3;
550 double c6 = 1.657e-4;
551 double c7 = 1.6476e-2;
552 double c8 = 4.463e-3;
553 double c9 = -3.187e-4;
554 double c10 = 1.8113e-2;
555 double c11 = 1.0720e-2;
556 double c12 = -0.144;
557
558 double LH = log(mycache.getSM().getMHl() / 100.0);
559 double DH = pow((mycache.getSM().getMHl() / 100.0), 2.0) - 1.0;
560 double Dal = mycache.getSM().DeltaAlphaL5q() / 0.059 - 1.0;
561 double Dt = pow((mycache.getSM().getMtpole() / 173.2), 2.0) - 1.0;
562 double Das = mycache.getSM().getAlsMz() / 0.1184 - 1.0;
563 double Dmz = mycache.getSM().getMz() / 91.1876 - 1.0;
564
565 return ( R + c1 * LH + c2 * LH * LH + c3 * pow(LH, 4.0) + c4 * DH + c5 * Dal + c6 * LH * Dal
566 + c7 * Dt + c8 * Dt * Dt + c9 * LH * Dt + c10 * Das + c11 * Das * Das + c12 * Dmz);
567}
568
570{
571 // applicable for 10 GeV <= mHl <= 1 TeV
572 if (mycache.getSM().getMHl() < 10.0 || mycache.getSM().getMHl() > UpperBoundForApproximateFormulae) {
573 std::stringstream out;
574 out << mycache.getSM().getMHl();
575 throw std::runtime_error("ApproximateFormulae::Gd_over_Gb(): mh=" + out.str() + " is out of range");
576 }
577
578 // obtained from Freitas on Apr. 23, 2013
579 /*
580 double R = 1.0239191;
581 double c1 = -5.093e-5;
582 double c2 = -7.08e-6;
583 double c3 = 7.4e-7;
584 double c4 = 3.27e-8;
585 double c5 = 8.68e-4;
586 double c6 = 1.064e-4;
587 double c7 = 1.8875e-2;
588 double c8 = 7.093e-3;
589 double c9 = -4.128e-4;
590 double c10 = 1.898e-4;
591 double c11 = -8.0e-6;
592 double c12 = -0.513;
593 */
594
595 // obtained from Freitas on Sep. 21, 2013
596 double R = 1.0204024;
597 double c1 = -2.242e-5;
598 double c2 = -1.70e-6;
599 double c3 = 2.1e-7;
600 double c4 = 6.38e-8;
601 double c5 = 5.28e-4;
602 double c6 = 0.999e-4;
603 double c7 = 1.7539e-2;
604 double c8 = 7.138e-3;
605 double c9 = -4.041e-4;
606 double c10 = 2.290e-4;
607 double c11 = -8.0e-6;
608 double c12 = -0.530;
609
610 double LH = log(mycache.getSM().getMHl() / 100.0);
611 double DH = pow((mycache.getSM().getMHl() / 100.0), 2.0) - 1.0;
612 double Dal = mycache.getSM().DeltaAlphaL5q() / 0.059 - 1.0;
613 double Dt = pow((mycache.getSM().getMtpole() / 173.2), 2.0) - 1.0;
614 double Das = mycache.getSM().getAlsMz() / 0.1184 - 1.0;
615 double Dmz = mycache.getSM().getMz() / 91.1876 - 1.0;
616
617 return ( R + c1 * LH + c2 * LH * LH + c3 * pow(LH, 4.0) + c4 * DH + c5 * Dal + c6 * LH * Dal
618 + c7 * Dt + c8 * Dt * Dt + c9 * LH * Dt + c10 * Das + c11 * Das * Das + c12 * Dmz);
619}
620
621double EWSMApproximateFormulae::X(const std::string observable) const
622{
623 double LH = log(mycache.getSM().getMHl() / 125.7);
624 double Dt = pow(mycache.getSM().getMtpole() / 173.2, 2.0) - 1.0;
625 double Das = mycache.getSM().getAlsMz() / 0.1184 - 1.0;
626 double Dal = mycache.getSM().DeltaAlphaL5q() / 0.059 - 1.0;
627 double DZ = mycache.getSM().getMz() / 91.1876 - 1.0;
628
629 double X0, c1, c2, c3, c4, c5, c6, c7;
630 if (observable.compare("Gamma_nu") == 0) {
631 X0 = 167.157;
632 c1 = -0.055;
633 c2 = 1.26;
634 c3 = -0.19;
635 c4 = -0.02;
636 c5 = 0.36;
637 c6 = -0.1;
638 c7 = 503.0;
639 } else if (observable.compare("Gamma_e_mu") == 0) {
640 X0 = 83.966;
641 c1 = -0.047;
642 c2 = 0.807;
643 c3 = -0.095;
644 c4 = -0.01;
645 c5 = 0.25;
646 c6 = -1.1;
647 c7 = 285.0;
648 } else if (observable.compare("Gamma_tau") == 0) {
649 X0 = 83.776;
650 c1 = -0.047;
651 c2 = 0.806;
652 c3 = -0.095;
653 c4 = -0.01;
654 c5 = 0.25;
655 c6 = -1.1;
656 c7 = 285.0;
657 } else if (observable.compare("Gamma_u") == 0) {
658 X0 = 299.936;
659 c1 = -0.34;
660 c2 = 4.07;
661 c3 = 14.27;
662 c4 = 1.6;
663 c5 = 1.8;
664 c6 = -11.1;
665 c7 = 1253.0;
666 } else if (observable.compare("Gamma_c") == 0) {
667 X0 = 299.860;
668 c1 = -0.34;
669 c2 = 4.07;
670 c3 = 14.27;
671 c4 = 1.6;
672 c5 = 1.8;
673 c6 = -11.1;
674 c7 = 1253.0;
675 } else if (observable.compare("Gamma_d_s") == 0) {
676 X0 = 382.770;
677 c1 = -0.34;
678 c2 = 3.83;
679 c3 = 10.20;
680 c4 = -2.4;
681 c5 = 0.67;
682 c6 = -10.1;
683 c7 = 1469.0;
684 } else if (observable.compare("Gamma_b") == 0) {
685 X0 = 375.724;
686 c1 = -0.30;
687 c2 = -2.28;
688 c3 = 10.53;
689 c4 = -2.4;
690 c5 = 1.2;
691 c6 = -10.0;
692 c7 = 1458.0;
693 } else if (observable.compare("GammaZ") == 0) {
694 X0 = 2494.24;
695 c1 = -2.0;
696 c2 = 19.7;
697 c3 = 58.60;
698 c4 = -4.0;
699 c5 = 8.0;
700 c6 = -55.9;
701 c7 = 9267.0;
702 } else if (observable.compare("sigmaHadron") == 0) {
703 X0 = 41488.4;
704 c1 = 3.0;
705 c2 = 60.9;
706 c3 = -579.4;
707 c4 = 38.0;
708 c5 = 7.3;
709 c6 = 85.0;
710 c7 = -86027.0;
711 } else if (observable.compare("R0_lepton") == 0) {
712 X0 = 20750.9;
713 c1 = -8.1;
714 c2 = -39.0;
715 c3 = 732.1;
716 c4 = -44.0;
717 c5 = 5.5;
718 c6 = -358.0;
719 c7 = 11702.0;
720 } else if (observable.compare("R0_charm") == 0) {
721 X0 = 172.23;
722 c1 = -0.029;
723 c2 = 1.0;
724 c3 = 2.3;
725 c4 = 1.3;
726 c5 = 0.38;
727 c6 = -1.2;
728 c7 = 37.0;
729 } else if (observable.compare("R0_bottom") == 0) {
730 X0 = 215.80;
731 c1 = 0.031;
732 c2 = -2.98;
733 c3 = -1.32;
734 c4 = -0.84;
735 c5 = 0.035;
736 c6 = 0.73;
737 c7 = -18.0;
738 } else
739 throw std::runtime_error("ApproximateFormulae::X(): " + observable + " is not defined");
740
741 return ( 0.001
742 * (X0 + c1 * LH + c2 * Dt + c3 * Das + c4 * Das * Das + c5 * Das * Dt + c6 * Dal + c7 * DZ));
743}
744
745double EWSMApproximateFormulae::X_extended(const std::string observable) const
746{
747 double LH = log(mycache.getSM().getMHl() / 125.7);
748 double DH = mycache.getSM().getMHl() / 125.7 - 1.0;
749 double Dt = pow(mycache.getSM().getMtpole() / 173.2, 2.0) - 1.0;
750 double Das = mycache.getSM().getAlsMz() / 0.1184 - 1.0;
751 double Dal = mycache.getSM().DeltaAlphaL5q() / 0.059 - 1.0;
752 double DZ = mycache.getSM().getMz() / 91.1876 - 1.0;
753
754 double X0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15;
755 double ThError = 0.0; // Theoretical uncertainty
756 if (observable.compare("Gamma_nu") == 0) {
757 X0 = 167.157;
758 a1 = -0.1567;
759 a2 = -0.1194;
760 a3 = 0.1031;
761 a4 = -0.00269;
762 a5 = 1.258;
763 a6 = -0.13;
764 a7 = -0.020;
765 a8 = 0.0133;
766 a9 = -0.19;
767 a10 = -0.018;
768 a11 = -0.021;
769 a12 = 0.34;
770 a13 = -0.084;
771 a14 = 0.064;
772 a15 = 503.0;
773 } else if (observable.compare("Gamma_e_mu") == 0) {
774 X0 = 83.966;
775 a1 = -0.1017;
776 a2 = -0.06352;
777 a3 = 0.05500;
778 a4 = -0.00145;
779 a5 = 0.8051;
780 a6 = -0.027;
781 a7 = -0.017;
782 a8 = 0.0066;
783 a9 = -0.095;
784 a10 = -0.010;
785 a11 = -0.015;
786 a12 = 0.23;
787 a13 = -1.1;
788 a14 = 0.064;
789 a15 = 285.0;
790 } else if (observable.compare("Gamma_tau") == 0) {
791 X0 = 83.776;
792 a1 = -0.1016;
793 a2 = -0.06339;
794 a3 = 0.05488;
795 a4 = -0.00145;
796 a5 = 0.8036;
797 a6 = -0.026;
798 a7 = -0.017;
799 a8 = 0.0066;
800 a9 = -0.095;
801 a10 = -0.010;
802 a11 = -0.015;
803 a12 = 0.23;
804 a13 = -1.1;
805 a14 = 0.064;
806 a15 = 285.0;
807 } else if (observable.compare("Gamma_u") == 0) {
808 X0 = 299.936;
809 a1 = -0.5681;
810 a2 = -0.2636;
811 a3 = 0.2334;
812 a4 = -0.00592;
813 a5 = 4.057;
814 a6 = -0.50;
815 a7 = -0.058;
816 a8 = 0.0352;
817 a9 = 14.26;
818 a10 = 1.6;
819 a11 = -0.081;
820 a12 = 1.7;
821 a13 = -11.1;
822 a14 = 0.19;
823 a15 = 1251.0;
824 } else if (observable.compare("Gamma_c") == 0) {
825 X0 = 299.859;
826 a1 = -0.5680;
827 a2 = -0.2635;
828 a3 = 0.2334;
829 a4 = -0.00592;
830 a5 = 4.056;
831 a6 = -0.50;
832 a7 = -0.058;
833 a8 = 0.0352;
834 a9 = 14.26;
835 a10 = 1.6;
836 a11 = -0.081;
837 a12 = 1.7;
838 a13 = -11.1;
839 a14 = 0.19;
840 a15 = 1251.0;
841 } else if (observable.compare("Gamma_d_s") == 0) {
842 X0 = 382.770;
843 a1 = -0.6199;
844 a2 = -0.3182;
845 a3 = 0.2800;
846 a4 = -0.00711;
847 a5 = 3.810;
848 a6 = -0.25;
849 a7 = -0.060;
850 a8 = 0.0420;
851 a9 = 10.20;
852 a10 = -2.4;
853 a11 = -0.083;
854 a12 = 0.65;
855 a13 = -10.1;
856 a14 = 0.19;
857 a15 = 1468.0;
858 } else if (observable.compare("Gamma_b") == 0) {
859 X0 = 375.723;
860 a1 = -0.5744;
861 a2 = -0.3074;
862 a3 = 0.2725;
863 a4 = -0.00703;
864 a5 = -2.292;
865 a6 = -0.027;
866 a7 = -0.013;
867 a8 = 0.0428;
868 a9 = 10.53;
869 a10 = -2.4;
870 a11 = -0.088;
871 a12 = 1.2;
872 a13 = -10.1;
873 a14 = 0.19;
874 a15 = 1456.0;
875 } else if (observable.compare("Gamma_had") == 0) {
876// Removing leptonic contributions from GammaZ
877// X0 = 1741.06;
878// a1 = -2.9501;
879// a2 = -1.47064;
880// a3 = 1.29906;
881// a4 = -0.033105;
882// a5 = 13.4416;
883// a6 = -1.5285;
884// a7 = -0.249;
885// a8 = 0.19725;
886// a9 = 59.4525;
887// a10 = -4.008;
888// a11 = -0.419;
889// a12 = 5.895;
890// a13 = -52.474;
891// a14 = 0.933;
892// a15 = 6893.;
893
894// Summing all hadronic contributions
895 X0 = 1741.058;
896 a1 = -2.9503;
897 a2 = -1.4708999;
898 a3 = 1.2993;
899 a4 = -0.03308999;
900 a5 = 13.440999;
901 a6 = -1.527;
902 a7 = -0.249;
903 a8 = 0.1972;
904 a9 = 59.44999;
905 a10 = -3.9999;
906 a11 = -0.416;
907 a12 = 5.9;
908 a13 = -52.5;
909 a14 = 0.95;
910 a15 = 6894.;
911
912 } else if (observable.compare("GammaZ") == 0) {
913 X0 = 2494.24;
914 a1 = -3.725;
915 a2 = -2.019;
916 a3 = 1.773;
917 a4 = -0.04554;
918 a5 = 19.63;
919 a6 = -2.0;
920 a7 = -0.36;
921 a8 = 0.257;
922 a9 = 58.60;
923 a10 = -4.1;
924 a11 = -0.53;
925 a12 = 7.6;
926 a13 = -56.0;
927 a14 = 1.3;
928 a15 = 9256.0;
929 ThError = mycache.getSM().getDelGammaZ();
930 } else if (observable.compare("sigmaHadron") == 0) {
931 X0 = 41488.4;
932 a1 = 3.88;
933 a2 = 0.829;
934 a3 = -0.911;
935 a4 = 0.0076;
936 a5 = 61.10;
937 a6 = 16.0;
938 a7 = -2.0;
939 a8 = -0.59;
940 a9 = -579.4;
941 a10 = 38.0;
942 a11 = -0.26;
943 a12 = 6.5;
944 a13 = 84.0;
945 a14 = 9.5;
946 a15 = -86152.0;
947 ThError = mycache.getSM().getDelSigma0H();
948 } else if (observable.compare("R0_lepton") == 0) {
949 X0 = 20750.9;
950 a1 = -10.00;
951 a2 = -1.83;
952 a3 = 1.878;
953 a4 = -0.0343;
954 a5 = -38.8;
955 a6 = -11.0;
956 a7 = 1.2;
957 a8 = 0.72;
958 a9 = 732.1;
959 a10 = -44.0;
960 a11 = -0.64;
961 a12 = 5.6;
962 a13 = -357.0;
963 a14 = -4.7;
964 a15 = 11771.0;
965 ThError = mycache.getSM().getDelR0l();
966 } else if (observable.compare("R0_electron") == 0) {
967 ThError = mycache.getSM().getDelR0l();
968 return X_extended("Gamma_had")/X_extended("Gamma_e_mu") + ThError;
969
970 } else if (observable.compare("R0_muon") == 0) {
971 ThError = mycache.getSM().getDelR0l();
972 return X_extended("Gamma_had")/X_extended("Gamma_e_mu") + ThError;
973
974 } else if (observable.compare("R0_tau") == 0) {
975 ThError = mycache.getSM().getDelR0l();
976 return X_extended("Gamma_had")/X_extended("Gamma_tau") + ThError;
977
978 } else if (observable.compare("R0_neutrino") == 0) {
979 ThError = 0.0;
980 return X_extended("Gamma_nu")/X_extended("Gamma_had") + ThError;
981
982 } else if (observable.compare("R0_up") == 0) {
983 ThError = 0.0; // Set to zero for the moment
984 return X_extended("Gamma_u")/X_extended("Gamma_had") + ThError;
985
986 } else if (observable.compare("R0_strange") == 0) {
987 ThError = 0.0; // Set to zero for the moment
988 return X_extended("Gamma_d_s")/X_extended("Gamma_had") + ThError;
989
990 } else if (observable.compare("R0_charm") == 0) {
991 X0 = 172.23;
992 a1 = -0.034;
993 a2 = -0.0058;
994 a3 = 0.0054;
995 a4 = -0.00012;
996 a5 = 1.00;
997 a6 = -0.15;
998 a7 = -0.0074;
999 a8 = 0.00091;
1000 a9 = 2.3;
1001 a10 = 1.3;
1002 a11 = -0.0013;
1003 a12 = 0.35;
1004 a13 = -1.2;
1005 a14 = 0.014;
1006 a15 = 37.0;
1007 ThError = mycache.getSM().getDelR0c();
1008 } else if (observable.compare("R0_bottom") == 0) {
1009 X0 = 215.80;
1010 a1 = 0.036;
1011 a2 = 0.0057;
1012 a3 = -0.0044;
1013 a4 = 0.000062;
1014 a5 = -2.98;
1015 a6 = 0.20;
1016 a7 = 0.020;
1017 a8 = -0.00036;
1018 a9 = -1.3;
1019 a10 = -0.84;
1020 a11 = -0.0019;
1021 a12 = 0.054;
1022 a13 = 0.73;
1023 a14 = -0.011;
1024 a15 = -18.0;
1025 ThError = mycache.getSM().getDelR0b();
1026 } else
1027 throw std::runtime_error("ApproximateFormulae::X_extended(): " + observable + " is not defined");
1028
1029 return ( 0.001
1030 * (X0 + a1 * LH + a2 * LH * LH + a3 * DH + a4 * DH * DH + a5 * Dt + a6 * Dt * Dt
1031 + a7 * Dt * LH + a8 * Dt * LH * LH + a9 * Das + a10 * Das * Das + a11 * Das * LH
1032 + a12 * Das * Dt + a13 * Dal + a14 * Dal * LH + a15 * DZ) + ThError);
1033}
1034
1035
1036double EWSMApproximateFormulae::X_full_2_loop(const std::string observable) const
1037{
1038
1039// For MH not in [85,165] GeV there are significant differences with some predicions
1040// of X_extended, which go well beyond the expected size of the bosonic corrections (>~2x).
1041// Use EWSMApproximateFormulae::X_extended in that case
1042 if (mycache.getSM().getMHl() < 85.0 || mycache.getSM().getMHl() > 165.0) {
1043 return X_extended(observable);
1044 }
1045
1046// Otherwise proceed with the full 2-loop code
1047 double LH = log(mycache.getSM().getMHl() / 125.7);
1048 double Dt = pow(mycache.getSM().getMtpole() / 173.2, 2.0) - 1.0;
1049 double Das = mycache.getSM().getAlsMz() / 0.1184 - 1.0;
1050 double Dal = mycache.getSM().DeltaAlphaL5q() / 0.059 - 1.0;
1051 double DZ = mycache.getSM().getMz() / 91.1876 - 1.0;
1052
1053 double X0, c1, c2, c3, c4, c5, c6, c7;
1054 double ThError = 0.0; // Theoretical uncertainty
1055 if (observable.compare("Gamma_nu") == 0) {
1056 X0 = 167.176;
1057 c1 = -0.071;
1058 c2 = 1.26;
1059 c3 = -0.19;
1060 c4 = -0.02;
1061 c5 = 0.36;
1062 c6 = -0.1;
1063 c7 = 504.0;
1064
1065 } else if (observable.compare("Gamma_e_mu") == 0) {
1066 X0 = 83.983;
1067 c1 = -0.061;
1068 c2 = 0.810;
1069 c3 = -0.096;
1070 c4 = -0.01;
1071 c5 = 0.25;
1072 c6 = -1.1;
1073 c7 = 286.0;
1074
1075 } else if (observable.compare("Gamma_tau") == 0) {
1076 X0 = 83.793;
1077 c1 = -0.060;
1078 c2 = 0.810;
1079 c3 = -0.095;
1080 c4 = -0.01;
1081 c5 = 0.25;
1082 c6 = -1.1;
1083 c7 = 285.0;
1084
1085 } else if (observable.compare("Gamma_u") == 0) {
1086 X0 = 299.993;
1087 c1 = -0.38;
1088 c2 = 4.08;
1089 c3 = 14.27;
1090 c4 = 1.6;
1091 c5 = 1.8;
1092 c6 = -11.1;
1093 c7 = 1253.0;
1094
1095 } else if (observable.compare("Gamma_c") == 0) {
1096 X0 = 299.916;
1097 c1 = -0.38;
1098 c2 = 4.08;
1099 c3 = 14.27;
1100 c4 = 1.6;
1101 c5 = 1.8;
1102 c6 = -11.1;
1103 c7 = 1253.0;
1104
1105 } else if (observable.compare("Gamma_d_s") == 0) {
1106 X0 = 382.828;
1107 c1 = -0.39;
1108 c2 = 3.83;
1109 c3 = 10.20;
1110 c4 = -2.4;
1111 c5 = 0.67;
1112 c6 = -10.1;
1113 c7 = 1470.0;
1114
1115 } else if (observable.compare("Gamma_b") == 0) {
1116 X0 = 375.889;
1117 c1 = -0.36;
1118 c2 = -2.14;
1119 c3 = 10.53;
1120 c4 = -2.4;
1121 c5 = 1.2;
1122 c6 = -10.1;
1123 c7 = 1459.0;
1124
1125 } else if (observable.compare("Gamma_had") == 0) {
1126
1127// Summing all hadronic contributions
1128 X0 = 1741.454;
1129 c1 = -1.9;
1130 c2 = 13.68;
1131 c3 = 59.47;
1132 c4 = -4.0;
1133 c5 = 6.14;
1134 c6 = -52.5;
1135 c7 = 6905.0;
1136
1137 } else if (observable.compare("GammaZ") == 0) {
1138 X0 = 2494.74;
1139 c1 = -2.3;
1140 c2 = 19.9;
1141 c3 = 58.61;
1142 c4 = -4.0;
1143 c5 = 8.0;
1144 c6 = -56.0;
1145 c7 = 9273.0;
1146
1147 ThError = mycache.getSM().getDelGammaZ();
1148 } else if (observable.compare("sigmaHadron") == 0) {
1149 X0 = 41489.6;
1150 c1 = 1.6;
1151 c2 = 60.0;
1152 c3 = -579.6;
1153 c4 = 38.0;
1154 c5 = 7.3;
1155 c6 = 85.0;
1156 c7 = -86011.0;
1157
1158 ThError = mycache.getSM().getDelSigma0H();
1159 } else if (observable.compare("R0_lepton") == 0) {
1160 X0 = 20751.6;
1161 c1 = -7.8;
1162 c2 = -37.0;
1163 c3 = 732.3;
1164 c4 = -44.0;
1165 c5 = 5.5;
1166 c6 = -358.0;
1167 c7 = 11696.0;
1168
1169 ThError = mycache.getSM().getDelR0l();
1170 } else if (observable.compare("R0_electron") == 0) {
1171 ThError = mycache.getSM().getDelR0l();
1172 return X_full_2_loop("Gamma_had")/X_full_2_loop("Gamma_e_mu") + ThError;
1173
1174 } else if (observable.compare("R0_muon") == 0) {
1175 ThError = mycache.getSM().getDelR0l();
1176 return X_full_2_loop("Gamma_had")/X_full_2_loop("Gamma_e_mu") + ThError;
1177
1178 } else if (observable.compare("R0_tau") == 0) {
1179 ThError = mycache.getSM().getDelR0l();
1180 return X_full_2_loop("Gamma_had")/X_full_2_loop("Gamma_tau") + ThError;
1181
1182 } else if (observable.compare("R0_neutrino") == 0) {
1183 ThError = 0.0;
1184 return X_full_2_loop("Gamma_nu")/X_full_2_loop("Gamma_had") + ThError;
1185
1186 } else if (observable.compare("R0_up") == 0) {
1187 ThError = 0.0; // Set to zero for the moment
1188 return X_full_2_loop("Gamma_u")/X_full_2_loop("Gamma_had") + ThError;
1189
1190 } else if (observable.compare("R0_strange") == 0) {
1191 ThError = 0.0; // Set to zero for the moment
1192 return X_full_2_loop("Gamma_d_s")/X_full_2_loop("Gamma_had") + ThError;
1193
1194 } else if (observable.compare("R0_charm") == 0) {
1195 X0 = 172.22;
1196 c1 = -0.031;
1197 c2 = 1.0;
1198 c3 = 2.3;
1199 c4 = 1.3;
1200 c5 = 0.38;
1201 c6 = -1.2;
1202 c7 = 37.0;
1203
1204 ThError = mycache.getSM().getDelR0c();
1205 } else if (observable.compare("R0_bottom") == 0) {
1206 X0 = 215.85;
1207 c1 = 0.029;
1208 c2 = -2.92;
1209 c3 = -1.32;
1210 c4 = -0.84;
1211 c5 = 0.032;
1212 c6 = 0.72;
1213 c7 = -18.0;
1214
1215 ThError = mycache.getSM().getDelR0b();
1216 } else
1217 throw std::runtime_error("ApproximateFormulae::X_full_2_loop(): " + observable + " is not defined");
1218
1219 return ( 0.001
1220 * (X0 + c1 * LH + c2 * Dt
1221 + c3 * Das + c4 * Das * Das
1222 + c5 * Das * Dt + c6 * Dal + c7 * DZ) + ThError);
1223}
1224
1225
1226
1227double EWSMApproximateFormulae::X_full(const std::string observable) const
1228{
1229
1230// Full 2-loop implementation
1231
1232 double LH = log(mycache.getSM().getMHl() / 125.7);
1233 double LH2 = LH * LH;
1234
1235 // Corrected in v2 of https://arxiv.org/abs/1906.08815
1236 double DH = mycache.getSM().getMHl() / 125.7 - 1.0;
1237
1238 double Dt = pow(mycache.getSM().getMtpole() / 173.2, 2.0) - 1.0;
1239
1240 double Das = mycache.getSM().getAlsMz() / 0.1184 - 1.0;
1241
1242 double Dal = mycache.getSM().DeltaAlphaL5q() / 0.059 - 1.0;
1243
1244 double DZ = mycache.getSM().getMz() / 91.1876 - 1.0;
1245
1246 double X0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16;
1247
1248 double ThError = 0.0; // Theoretical uncertainty
1249
1250 if (observable.compare("Gamma_e_mu") == 0) {
1251 X0 = 83.983;
1252 a1 = -0.1202;
1253 a2 = -0.06919;
1254 a3 = 0.00383;
1255 a4 = 0.0597;
1256 a5 = 0.8037;
1257 a6 = -0.015;
1258 a7 = -0.0195;
1259 a8 = 0.0032;
1260 a9 = -0.0956;
1261 a10 = -0.0078;
1262 a11 = -0.0095;
1263 a12 = 0.25;
1264 a13 = -1.08;
1265 a14 = 0.056;
1266 a15 = -0.37;
1267 a16 = 286.0;
1268
1269 } else if (observable.compare("Gamma_tau") == 0) {
1270 X0 = 83.793;
1271 a1 = -0.1200;
1272 a2 = -0.06905;
1273 a3 = 0.00382;
1274 a4 = 0.0596;
1275 a5 = 0.8023;
1276 a6 = -0.015;
1277 a7 = -0.0195;
1278 a8 = 0.0032;
1279 a9 = -0.0954;
1280 a10 = -0.0078;
1281 a11 = -0.0094;
1282 a12 = 0.25;
1283 a13 = -1.08;
1284 a14 = 0.056;
1285 a15 = -0.37;
1286 a16 = 285.0;
1287
1288 } else if (observable.compare("Gamma_nu") == 0) {
1289 X0 = 167.176;
1290 a1 = -0.1752;
1291 a2 = -0.1249;
1292 a3 = 0.00595;
1293 a4 = 0.1046;
1294 a5 = 1.253;
1295 a6 = -0.110;
1296 a7 = -0.0232;
1297 a8 = 0.0064;
1298 a9 = -0.187;
1299 a10 = -0.014;
1300 a11 = -0.014;
1301 a12 = 0.37;
1302 a13 = -0.085;
1303 a14 = 0.054;
1304 a15 = -0.30;
1305 a16 = 503.0;
1306
1307 } else if (observable.compare("Gamma_u") == 0) {
1308 X0 = 299.994;
1309 a1 = -0.6152;
1310 a2 = -0.2771;
1311 a3 = 0.0174;
1312 a4 = 0.2341;
1313 a5 = 4.051;
1314 a6 = -0.467;
1315 a7 = -0.0676;
1316 a8 = 0.017;
1317 a9 = 14.26;
1318 a10 = 1.6;
1319 a11 = -0.046;
1320 a12 = 1.82;
1321 a13 = -11.1;
1322 a14 = 0.16;
1323 a15 = -1.0;
1324 a16 = 1253.0;
1325
1326 } else if (observable.compare("Gamma_c") == 0) {
1327 X0 = 299.918;
1328 a1 = -0.6152;
1329 a2 = -0.2771;
1330 a3 = 0.0174;
1331 a4 = 0.2340;
1332 a5 = 4.051;
1333 a6 = -0.467;
1334 a7 = -0.0676;
1335 a8 = 0.017;
1336 a9 = 14.26;
1337 a10 = 1.6;
1338 a11 = -0.046;
1339 a12 = 1.82;
1340 a13 = -11.1;
1341 a14 = 0.16;
1342 a15 = -1.0;
1343 a16 = 1252.0;
1344
1345 } else if (observable.compare("Gamma_d_s") == 0) {
1346 X0 = 382.829;
1347 a1 = -0.6685;
1348 a2 = -0.3322;
1349 a3 = 0.0193;
1350 a4 = 0.2792;
1351 a5 = 3.792;
1352 a6 = -0.18;
1353 a7 = -0.0706;
1354 a8 = 0.020;
1355 a9 = 10.20;
1356 a10 = -2.4;
1357 a11 = -0.052;
1358 a12 = 0.71;
1359 a13 = -10.1;
1360 a14 = 0.16;
1361 a15 = -0.92;
1362 a16 = 1469.0;
1363
1364 } else if (observable.compare("Gamma_b") == 0) {
1365 X0 = 375.890;
1366 a1 = -0.6017;
1367 a2 = -0.3158;
1368 a3 = 0.0190;
1369 a4 = 0.227;
1370 a5 = -2.174;
1371 a6 = 0.042;
1372 a7 = -0.027;
1373 a8 = 0.021;
1374 a9 = 10.53;
1375 a10 = -2.4;
1376 a11 = -0.056;
1377 a12 = 1.2;
1378 a13 = -10.1;
1379 a14 = 0.15;
1380 a15 = -0.95;
1381 a16 = 1458.0;
1382
1383 } else if (observable.compare("Gamma_had") == 0) {
1384
1385// Removing leptonic contributions from the total Z witdh
1386 X0 = 1741.46;
1387 a1 = -3.169;
1388 a2 = -1.53487;
1389 a3 = 0.09267;
1390 a4 = 1.2532;
1391 a5 = 13.5113;
1392 a6 = -1.255;
1393 a7 = -0.3039;
1394 a8 = 0.0912;
1395 a9 = 59.4576;
1396 a10 = -3.9346;
1397 a11 = -0.2496;
1398 a12 = 6.24;
1399 a13 = -52.605;
1400 a14 = 0.77;
1401 a15 = -4.79;
1402 a16 = 6901.0;
1403
1404 } else if (observable.compare("GammaZ") == 0) {
1405 X0 = 2494.75;
1406 a1 = -4.055;
1407 a2 = -2.117;
1408 a3 = 0.122;
1409 a4 = 1.746;
1410 a5 = 19.68;
1411 a6 = -1.63;
1412 a7 = -0.432;
1413 a8 = 0.12;
1414 a9 = 58.61;
1415 a10 = -4.0;
1416 a11 = -0.32;
1417 a12 = 8.1;
1418 a13 = -56.1;
1419 a14 = 1.1;
1420 a15 = -6.8;
1421 a16 = 9267.0;
1422
1423 ThError = mycache.getSM().getDelGammaZ();
1424 } else if (observable.compare("sigmaHadron") == 0) {
1425 X0 = 41489.6;
1426 a1 = 0.408;
1427 a2 = -0.320;
1428 a3 = 0.0424;
1429 a4 = 1.32;
1430 a5 = 60.17;
1431 a6 = 16.3;
1432 a7 = -2.31;
1433 a8 = -0.19;
1434 a9 = -579.58;
1435 a10 = 38.0;
1436 a11 = 0.010;
1437 a12 = 7.5;
1438 a13 = 85.2;
1439 a14 = 9.1;
1440 a15 = -68.0;
1441 a16 = -85957.0;
1442
1443 ThError = mycache.getSM().getDelSigma0H();
1444 } else if (observable.compare("R0_lepton") == 0) {
1445 X0 = 20751.6;
1446 a1 = -8.112;
1447 a2 = -1.174;
1448 a3 = 0.155;
1449 a4 = 0.16;
1450 a5 = -37.59;
1451 a6 = -10.9;
1452 a7 = 1.27;
1453 a8 = 0.29;
1454 a9 = 732.30;
1455 a10 = -44.0;
1456 a11 = -0.61;
1457 a12 = 5.7;
1458 a13 = -358.0;
1459 a14 = -4.7;
1460 a15 = 37;
1461 a16 = 11649.0;
1462
1463 ThError = mycache.getSM().getDelR0l();
1464 } else if (observable.compare("R0_electron") == 0) {
1465 ThError = mycache.getSM().getDelR0l();
1466 return X_full("Gamma_had")/X_full("Gamma_e_mu") + ThError;
1467
1468 } else if (observable.compare("R0_muon") == 0) {
1469 ThError = mycache.getSM().getDelR0l();
1470 return X_full("Gamma_had")/X_full("Gamma_e_mu") + ThError;
1471
1472 } else if (observable.compare("R0_tau") == 0) {
1473 ThError = mycache.getSM().getDelR0l();
1474 return X_full("Gamma_had")/X_full("Gamma_tau") + ThError;
1475
1476 } else if (observable.compare("R0_neutrino") == 0) {
1477 ThError = 0.0;
1478 return X_full("Gamma_nu")/X_full("Gamma_had") + ThError;
1479
1480 } else if (observable.compare("R0_up") == 0) {
1481 ThError = 0.0; // Set to zero for the moment
1482 return X_full("Gamma_u")/X_full("Gamma_had") + ThError;
1483
1484 } else if (observable.compare("R0_strange") == 0) {
1485 ThError = 0.0; // Set to zero for the moment
1486 return X_full("Gamma_d_s")/X_full("Gamma_had") + ThError;
1487
1488 } else if (observable.compare("R0_charm") == 0) {
1489 X0 = 172.222;
1490 a1 = -0.04049;
1491 a2 = -0.00749;
1492 a3 = 0.000832;
1493 a4 = 0.0108;
1494 a5 = 0.98956;
1495 a6 = -0.151;
1496 a7 = -0.00761;
1497 a8 = 0.00080;
1498 a9 = 2.309;
1499 a10 = 1.25;
1500 a11 = 0.00045;
1501 a12 = 0.369;
1502 a13 = -1.20;
1503 a14 = 0.012;
1504 a15 = -0.062;
1505 a16 = 36.67;
1506
1507 ThError = mycache.getSM().getDelR0c();
1508 } else if (observable.compare("R0_bottom") == 0) {
1509 X0 = 215.850;
1510 a1 = 0.04904;
1511 a2 = 0.009149;
1512 a3 = -0.000535;
1513 a4 = -0.02676;
1514 a5 = -2.9221;
1515 a6 = 0.200;
1516 a7 = 0.0197;
1517 a8 = -0.0011;
1518 a9 = -1.319;
1519 a10 = -0.84;
1520 a11 = -0.0027;
1521 a12 = 0.044;
1522 a13 = 0.719;
1523 a14 = -0.0077;
1524 a15 = -0.044;
1525 a16 = -17.90;
1526
1527 ThError = mycache.getSM().getDelR0b();
1528 } else
1529 throw std::runtime_error("ApproximateFormulae::X_full(): " + observable + " is not defined");
1530
1531 return ( 0.001
1532 * ( X0 + a1 * LH + a2 * LH2 + a3 * LH2 * LH2 + a4 *DH
1533 + a5 * Dt + a6 * Dt*Dt + a7 * Dt*LH + a8 * Dt * LH2
1534 + a9 * Das + a10 * Das * Das + a11 * Das*DH + a12*Das*Dt
1535 + a13 * Dal + a14 * Dal * DH + a15 * Dal * Dt
1536 + a16 * DZ ) + ThError);
1537}
1538
1539
1541{
1542 // applicable for 25 GeV <= mHl <= 225 GeV. Remove boundaries for the moment
1543 //if (mycache.getSM().getMHl() < 25.0 || mycache.getSM().getMHl() > 225.0) {
1544 // std::stringstream out;
1545 // out << mycache.getSM().getMHl();
1546 // throw std::runtime_error("ApproximateFormulae::sin2thetaEff_b_full(): mh=" + out.str() + " is out of range");
1547 //}
1548
1549// Full 2-loop implementation
1550
1551 double LH = log(mycache.getSM().getMHl() / 125.7);
1552
1553 double LH2 = LH * LH;
1554
1555 double Dt = pow(mycache.getSM().getMtpole() / 173.2, 2.0) - 1.0;
1556
1557 double Das = mycache.getSM().getAlsMz() / 0.1184 - 1.0;
1558
1559 double Dal = mycache.getSM().DeltaAlphaL5q() / 0.059 - 1.0;
1560
1561 double DZ = mycache.getSM().getMz() / 91.1876 - 1.0;
1562
1563 double X0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10;
1564
1565 double ThError = 0.0; // Theoretical uncertainty
1566
1567 X0 = 2327.04;
1568 d1 = 4.638;
1569 d2 = 0.558;
1570 d3 = -0.0700;
1571 d4 = 207.0;
1572 d5 = -9.554;
1573 d6 = 3.83;
1574 d7 = 0.179;
1575 d8 = 2.41;
1576 d9 = -8.24;
1577 d10 = -6630.0;
1578
1579 ThError = mycache.getSM().getDelSin2th_b();
1580
1581 return ( 0.0001*( X0 + d1 * LH + d2 * LH2 + d3 * LH2 * LH2
1582 + d4 * Dal
1583 + d5 * Dt + d6 * Dt * Dt
1584 + d7 * Dt * LH
1585 + d8 * Das + d9 * Das * Dt
1586 + d10 * DZ ) + ThError);
1587}
1588
1589
1591{
1592 // applicable for 25 GeV <= mHl <= 225 GeV. Remove boundaries for the moment
1593 //if (mycache.getSM().getMHl() < 25.0 || mycache.getSM().getMHl() > 225.0) {
1594 // std::stringstream out;
1595 // out << mycache.getSM().getMHl();
1596 // throw std::runtime_error("ApproximateFormulae::sin2thetaEff_l_full(): mh=" + out.str() + " is out of range");
1597 //}
1598
1599// Full 2-loop implementation
1600
1601 double LH = log(mycache.getSM().getMHl() / 125.7);
1602
1603 double LH2 = LH * LH;
1604
1605 double Dt = pow(mycache.getSM().getMtpole() / 173.2, 2.0) - 1.0;
1606
1607 double Das = mycache.getSM().getAlsMz() / 0.1184 - 1.0;
1608
1609 double Dal = mycache.getSM().DeltaAlphaL5q() / 0.059 - 1.0;
1610
1611 double DZ = mycache.getSM().getMz() / 91.1876 - 1.0;
1612
1613 double X0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10;
1614
1615 double ThError = 0.0; // Theoretical uncertainty
1616
1617 X0 = 2314.64;
1618 d1 = 4.616;
1619 d2 = 0.539;
1620 d3 = -0.0737;
1621 d4 = 206.0;
1622 d5 = -25.71;
1623 d6 = 4.00;
1624 d7 = 0.288;
1625 d8 = 3.88;
1626 d9 = -6.49;
1627 d10 = -6560.0;
1628
1629 ThError = mycache.getSM().getDelSin2th_l();
1630
1631 return ( 0.0001*( X0 + d1 * LH + d2 * LH2 + d3 * LH2 * LH2
1632 + d4 * Dal
1633 + d5 * Dt + d6 * Dt * Dt
1634 + d7 * Dt * LH
1635 + d8 * Das + d9 * Das * Dt
1636 + d10 * DZ ) + ThError);
1637}
1638
1639
1640
1641//LEP2 Observables
1642
1644{
1645 double LH = log(mycache.getSM().getMHl() / 125.21);
1646 double Dt = pow(mycache.getSM().getMtpole() / 172.33, 2.0) - 1.0;
1647 double Das = mycache.getSM().getAlsMz() / 0.11802 - 1.0;
1648 double Da5h = mycache.getSM().Dalpha5hMz() / 0.027660 - 1.0;
1649 double DZ = mycache.getSM().getMz() / 91.1875 - 1.0;
1650
1651 double X0, cMH, cmt, caS, caS2, caSmt, cda5h, cMZ;
1652 double RelThError = 0.0; // (Relative) Theoretical uncertainty
1653
1654 if (s==130.2*130.2) {
1655 X0 = 8.46687;
1656 cMH = -0.00584;
1657 cmt = 0.07033;
1658 caS = -0.00927;
1659 caS2 = -0.00304;
1660 caSmt = -0.00728;
1661 cda5h = 0.24694;
1662 cMZ = 29.5535;
1663
1664 RelThError=0.;
1665 } else if (s==136.2*136.2) {
1666 X0 = 7.31107;
1667 cMH = -0.00447;
1668 cmt = 0.05547;
1669 caS = -0.00715;
1670 caS2 = -0.0033;
1671 caSmt = -0.00566;
1672 cda5h = 0.2341;
1673 cMZ = 21.2072;
1674
1675 RelThError=0.;
1676 } else if (s==161.3*161.3) {
1677 X0 = 4.68874;
1678 cMH = -0.00198;
1679 cmt = 0.02969;
1680 caS = -0.00363;
1681 caS2 = -0.01;
1682 caSmt = -0.00233;
1683 cda5h = 0.17756;
1684 cMZ = 8.79695;
1685
1686 RelThError=0.;
1687 } else if (s==172.1*172.1) {
1688 X0 = 4.00451;
1689 cMH = -0.00153;
1690 cmt = 0.0258;
1691 caS = -0.00311;
1692 caS2 = 0.00217;
1693 caSmt = -0.00233;
1694 cda5h = 0.15653;
1695 cMZ = 7.09793;
1696
1697 RelThError=0.;
1698 } else if (s==182.7*182.7) {
1699 X0 = 3.47914;
1700 cMH = -0.00088;
1701 cmt = 0.02118;
1702 caS = -0.00247;
1703 caS2 = -0.00777;
1704 caSmt = -0.00171;
1705 cda5h = 0.14091;
1706 cMZ = 5.55998;
1707
1708 RelThError=0.;
1709 } else if (s==188.6*188.6) {
1710 X0 = 3.23234;
1711 cMH = -0.00052;
1712 cmt = 0.0191;
1713 caS = -0.00218;
1714 caS2 = -0.00834;
1715 caSmt = -0.00154;
1716 cda5h = 0.13321;
1717 cMZ = 4.91462;
1718
1719 RelThError=0.;
1720 } else if (s==191.6*191.6) {
1721 X0 = 3.11733;
1722 cMH = -0.00032;
1723 cmt = 0.01813;
1724 caS = -0.00205;
1725 caS2 = -0.00921;
1726 caSmt = -0.00146;
1727 cda5h = 0.12955;
1728 cMZ = 4.62536;
1729
1730 RelThError=0.;
1731 } else if (s==195.5*195.5) {
1732 X0 = 2.97753;
1733 cMH = -0.00002;
1734 cmt = 0.01695;
1735 caS = -0.00189;
1736 caS2 = -0.01044;
1737 caSmt = -0.00136;
1738 cda5h = 0.12504;
1739 cMZ = 4.25918;
1740
1741 RelThError=0.;
1742 } else if (s==199.5*199.5) {
1743 X0 = 2.84444;
1744 cMH = 0.00037;
1745 cmt = 0.01588;
1746 caS = -0.00174;
1747 caS2 = -0.01254;
1748 caSmt = -0.00128;
1749 cda5h = 0.12062;
1750 cMZ = 3.93087;
1751
1752 RelThError=0.;
1753 } else if (s==201.6*201.6) {
1754 X0 = 2.77838;
1755 cMH = 0.00069;
1756 cmt = 0.01536;
1757 caS = -0.00167;
1758 caS2 = -0.01512;
1759 caSmt = -0.00129;
1760 cda5h = 0.11837;
1761 cMZ = 3.77165;
1762
1763 RelThError=0.;
1764 } else if (s==204.9*204.9) {
1765 X0 = 2.67945;
1766 cMH = 0.00125;
1767 cmt = 0.01462;
1768 caS = -0.00157;
1769 caS2 = -0.01972;
1770 caSmt = -0.00112;
1771 cda5h = 0.11497;
1772 cMZ = 3.54289;
1773
1774 RelThError=0.;
1775 } else if (s==206.7*206.7) {
1776 X0 = 2.62786;
1777 cMH = 0.0015;
1778 cmt = 0.01425;
1779 caS = -0.00151;
1780 caS2 = -0.02055;
1781 caSmt = -0.00102;
1782 cda5h = 0.11317;
1783 cMZ = 3.42495;
1784
1785 RelThError=0.;
1786 } else if ( s > 210.*210. ) {
1787 X0 = 0.;
1788 cMH = 0.;
1789 cmt = 0.;
1790 caS = 0.;
1791 caS2 = 0.;
1792 caSmt = 0.;
1793 cda5h = 0.;
1794 cMZ = 0.;
1795
1796 RelThError=0.;
1797 } else
1798 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2sigmaMuApprox()");
1799
1800 return ((X0 + cMH * LH + cmt * Dt
1801 + caS * Das + caS2 * Das * Das
1802 + caSmt * Das * Dt + cda5h * Da5h + cMZ * DZ)*(1. + RelThError));
1803}
1804
1805
1807{
1808 double LH = log(mycache.getSM().getMHl() / 125.21);
1809 double Dt = pow(mycache.getSM().getMtpole() / 172.33, 2.0) - 1.0;
1810 double Das = mycache.getSM().getAlsMz() / 0.11802 - 1.0;
1811 double Da5h = mycache.getSM().Dalpha5hMz() / 0.027660 - 1.0;
1812 double DZ = mycache.getSM().getMz() / 91.1875 - 1.0;
1813
1814 double X0, cMH, cmt, caS, caS2, caSmt, cda5h, cMZ;
1815 double RelThError = 0.0; // (Relative) Theoretical uncertainty
1816
1817 if (s==130.2*130.2) {
1818 X0 = 0.70591;
1819 cMH = -0.00003;
1820 cmt = 0.0015;
1821 caS = -0.00023;
1822 caS2 = -0.0002;
1823 caSmt = -0.00018;
1824 cda5h = -0.00582;
1825 cMZ = 0.82841;
1826
1827 RelThError=0.;
1828 } else if (s==136.2*136.2) {
1829 X0 = 0.68554;
1830 cMH = -0.00003;
1831 cmt = 0.00183;
1832 caS = -0.00026;
1833 caS2 = -0.00046;
1834 caSmt = -0.00022;
1835 cda5h = -0.00712;
1836 cMZ = 0.93179;
1837
1838 RelThError=0.;
1839 } else if (s==161.3*161.3) {
1840 X0 = 0.6183;
1841 cMH = 0.00003;
1842 cmt = 0.00251;
1843 caS = -0.00031;
1844 caS2 = -0.00047;
1845 caSmt = -0.00029;
1846 cda5h = -0.00953;
1847 cMZ = 0.98102;
1848
1849 RelThError=0.;
1850 } else if (s==172.1*172.1) {
1851 X0 = 0.59756;
1852 cMH = 0.00009;
1853 cmt = 0.00262;
1854 caS = -0.00032;
1855 caS2 = -0.00255;
1856 caSmt = -0.00029;
1857 cda5h = -0.00999;
1858 cMZ = 0.97326;
1859
1860 RelThError=0.;
1861 } else if (s==182.7*182.7) {
1862 X0 = 0.58117;
1863 cMH = 0.00019;
1864 cmt = 0.00267;
1865 caS = -0.00032;
1866 caS2 = -0.00097;
1867 caSmt = -0.00031;
1868 cda5h = -0.01024;
1869 cMZ = 0.95077;
1870
1871 RelThError=0.;
1872 } else if (s==188.6*188.6) {
1873 X0 = 0.573;
1874 cMH = 0.00028;
1875 cmt = 0.00267;
1876 caS = -0.00031;
1877 caS2 = -0.00128;
1878 caSmt = -0.00031;
1879 cda5h = -0.01033;
1880 cMZ = 0.94318;
1881
1882 RelThError=0.;
1883 } else if (s==191.6*191.6) {
1884 X0 = 0.5691;
1885 cMH = 0.00033;
1886 cmt = 0.00267;
1887 caS = -0.00031;
1888 caS2 = -0.00155;
1889 caSmt = -0.00032;
1890 cda5h = -0.01036;
1891 cMZ = 0.94071;
1892
1893 RelThError=0.;
1894 } else if (s==195.5*195.5) {
1895 X0 = 0.56433;
1896 cMH = 0.00043;
1897 cmt = 0.00266;
1898 caS = -0.00031;
1899 caS2 = -0.00216;
1900 caSmt = -0.00032;
1901 cda5h = -0.0104;
1902 cMZ = 0.93368;
1903
1904 RelThError=0.;
1905 } else if (s==199.5*199.5) {
1906 X0 = 0.55974;
1907 cMH = 0.00058;
1908 cmt = 0.00265;
1909 caS = -0.0003;
1910 caS2 = -0.00291;
1911 caSmt = -0.00033;
1912 cda5h = -0.01044;
1913 cMZ = 0.92332;
1914
1915 RelThError=0.;
1916 } else if (s==201.6*201.6) {
1917 X0 = 0.55744;
1918 cMH = 0.00072;
1919 cmt = 0.00264;
1920 caS = -0.0003;
1921 caS2 = -0.00415;
1922 caSmt = -0.00035;
1923 cda5h = -0.01045;
1924 cMZ = 0.91927;
1925
1926 RelThError=0.;
1927 } else if (s==204.9*204.9) {
1928 X0 = 0.554;
1929 cMH = 0.00099;
1930 cmt = 0.00263;
1931 caS = -0.0003;
1932 caS2 = -0.0064;
1933 caSmt = -0.00031;
1934 cda5h = -0.01047;
1935 cMZ = 0.91178;
1936
1937 RelThError=0.;
1938 } else if (s==206.7*206.7) {
1939 X0 = 0.55219;
1940 cMH = 0.00112;
1941 cmt = 0.00262;
1942 caS = -0.0003;
1943 caS2 = -0.00692;
1944 caSmt = -0.00028;
1945 cda5h = -0.01048;
1946 cMZ = 0.90624;
1947
1948 RelThError=0.;
1949 } else if ( s > 210.*210. ) {
1950 X0 = 0.;
1951 cMH = 0.;
1952 cmt = 0.;
1953 caS = 0.;
1954 caS2 = 0.;
1955 caSmt = 0.;
1956 cda5h = 0.;
1957 cMZ = 0.;
1958
1959 RelThError=0.;
1960 } else
1961 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2AFBmuApprox()");
1962
1963 return ((X0 + cMH * LH + cmt * Dt
1964 + caS * Das + caS2 * Das * Das
1965 + caSmt * Das * Dt + cda5h * Da5h + cMZ * DZ)*(1. + RelThError));
1966}
1967
1968
1970{
1971 double LH = log(mycache.getSM().getMHl() / 125.21);
1972 double Dt = pow(mycache.getSM().getMtpole() / 172.33, 2.0) - 1.0;
1973 double Das = mycache.getSM().getAlsMz() / 0.11802 - 1.0;
1974 double Da5h = mycache.getSM().Dalpha5hMz() / 0.027660 - 1.0;
1975 double DZ = mycache.getSM().getMz() / 91.1875 - 1.0;
1976
1977 double X0, cMH, cmt, caS, caS2, caSmt, cda5h, cMZ;
1978 double RelThError = 0.0; // (Relative) Theoretical uncertainty
1979
1980 if (s==130.2*130.2) {
1981 X0 = 8.46349;
1982 cMH = -0.00584;
1983 cmt = 0.07027;
1984 caS = -0.00926;
1985 caS2 = -0.00309;
1986 caSmt = -0.00727;
1987 cda5h = 0.24696;
1988 cMZ = 29.5239;
1989
1990 RelThError=0.;
1991 } else if (s==136.2*136.2) {
1992 X0 = 7.3087;
1993 cMH = -0.00447;
1994 cmt = 0.05543;
1995 caS = -0.00715;
1996 caS2 = -0.00341;
1997 caSmt= -0.00566;
1998 cda5h = 0.23411;
1999 cMZ = 21.1884;
2000
2001 RelThError=0.;
2002 } else if (s==161.3*161.3) {
2003 X0 = 4.68796;
2004 cMH = -0.00198;
2005 cmt = 0.02968;
2006 caS = -0.00363;
2007 caS2 = -0.00999;
2008 caSmt= -0.00233;
2009 cda5h = 0.17757;
2010 cMZ = 8.79193;
2011
2012 RelThError=0.;
2013 } else if (s==172.1*172.1) {
2014 X0 = 4.00398;
2015 cMH = -0.00153;
2016 cmt = 0.02579;
2017 caS = -0.0031;
2018 caS2 = 0.00223;
2019 caSmt= -0.00233;
2020 cda5h = 0.15654;
2021 cMZ = 7.09461;
2022
2023 RelThError=0.;
2024 } else if (s==182.7*182.7) {
2025 X0 = 3.47876;
2026 cMH = -0.00088;
2027 cmt = 0.02118;
2028 caS = -0.00247;
2029 caS2 = -0.00758;
2030 caSmt= -0.00171;
2031 cda5h = 0.14091;
2032 cMZ = 5.55773;
2033
2034 RelThError=0.;
2035 } else if (s==188.6*188.6) {
2036 X0 = 3.23202;
2037 cMH = -0.00052;
2038 cmt = 0.01909;
2039 caS = -0.00218;
2040 caS2 = -0.00851;
2041 caSmt= -0.00154;
2042 cda5h = 0.13321;
2043 cMZ = 4.91269;
2044
2045 RelThError=0.;
2046 } else if (s==191.6*191.6) {
2047 X0 = 3.11704;
2048 cMH = -0.00032;
2049 cmt = 0.01813;
2050 caS = -0.00205;
2051 caS2 = -0.00936;
2052 caSmt= -0.00146;
2053 cda5h = 0.12955;
2054 cMZ = 4.62364;
2055
2056 RelThError=0.;
2057 } else if (s==195.5*195.5) {
2058 X0 = 2.97726;
2059 cMH = -0.00002;
2060 cmt = 0.01695;
2061 caS = -0.00189;
2062 caS2 = -0.01035;
2063 caSmt= -0.00136;
2064 cda5h = 0.12504;
2065 cMZ = 4.25766;
2066
2067 RelThError=0.;
2068 } else if (s==199.5*199.5) {
2069 X0 = 2.8442;
2070 cMH = 0.00037;
2071 cmt = 0.01587;
2072 caS = -0.00174;
2073 caS2 = -0.01253;
2074 caSmt= -0.00128;
2075 cda5h = 0.12062;
2076 cMZ = 3.92951;
2077
2078 RelThError=0.;
2079 } else if (s==201.6*201.6) {
2080 X0 = 2.77816;
2081 cMH = 0.00069;
2082 cmt = 0.01536;
2083 caS = -0.00167;
2084 caS2 = -0.01522;
2085 caSmt= -0.00129;
2086 cda5h = 0.11837;
2087 cMZ = 3.7704;
2088
2089 RelThError=0.;
2090 } else if (s==204.9*204.9) {
2091 X0 = 2.67925;
2092 cMH = 0.00125;
2093 cmt = 0.01462;
2094 caS = -0.00157;
2095 caS2 = -0.0198;
2096 caSmt= -0.00112;
2097 cda5h = 0.11497;
2098 cMZ = 3.54175;
2099
2100 RelThError=0.;
2101 } else if (s==206.7*206.7) {
2102 X0 = 2.62766;
2103 cMH = 0.0015;
2104 cmt = 0.01424;
2105 caS = -0.00151;
2106 caS2 = -0.02061;
2107 caSmt= -0.00102;
2108 cda5h = 0.11317;
2109 cMZ = 3.42386;
2110
2111 RelThError=0.;
2112 } else if ( s > 210.*210. ) {
2113 X0 = 0.;
2114 cMH = 0.;
2115 cmt = 0.;
2116 caS = 0.;
2117 caS2 = 0.;
2118 caSmt = 0.;
2119 cda5h = 0.;
2120 cMZ = 0.;
2121
2122 RelThError=0.;
2123 } else
2124 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2sigmaTauApprox()");
2125
2126 return ((X0 + cMH * LH + cmt * Dt
2127 + caS * Das + caS2 * Das * Das
2128 + caSmt * Das * Dt + cda5h * Da5h + cMZ * DZ)*(1. + RelThError));
2129}
2130
2131
2133{
2134 double LH = log(mycache.getSM().getMHl() / 125.21);
2135 double Dt = pow(mycache.getSM().getMtpole() / 172.33, 2.0) - 1.0;
2136 double Das = mycache.getSM().getAlsMz() / 0.11802 - 1.0;
2137 double Da5h = mycache.getSM().Dalpha5hMz() / 0.027660 - 1.0;
2138 double DZ = mycache.getSM().getMz() / 91.1875 - 1.0;
2139
2140 double X0, cMH, cmt, caS, caS2, caSmt, cda5h, cMZ;
2141 double RelThError = 0.0; // (Relative) Theoretical uncertainty
2142
2143 if (s==130.2*130.2) {
2144 X0 = 0.70565;
2145 cMH = -0.00003;
2146 cmt = 0.0015;
2147 caS = -0.00023;
2148 caS2 = -0.00025;
2149 caSmt = -0.00018;
2150 cda5h = -0.00583;
2151 cMZ = 0.82957;
2152
2153 RelThError=0.;
2154 } else if (s==136.2*136.2) {
2155 X0 = 0.68528;
2156 cMH = -0.00003;
2157 cmt = 0.00184;
2158 caS = -0.00026;
2159 caS2 = -0.00038;
2160 caSmt = -0.00022;
2161 cda5h = -0.00712;
2162 cMZ = 0.93255;
2163
2164 RelThError=0.;
2165 } else if (s==161.3*161.3) {
2166 X0 = 0.6181;
2167 cMH = 0.00003;
2168 cmt = 0.00251;
2169 caS = -0.00031;
2170 caS2 = -0.00064;
2171 caSmt = -0.00029;
2172 cda5h = -0.00954;
2173 cMZ = 0.9811;
2174
2175 RelThError=0.;
2176 } else if (s==172.1*172.1) {
2177 X0 = 0.59737;
2178 cMH = 0.00009;
2179 cmt = 0.00262;
2180 caS = -0.00032;
2181 caS2 = -0.00258;
2182 caSmt = -0.00029;
2183 cda5h = -0.01;
2184 cMZ = 0.9733;
2185
2186 RelThError=0.;
2187 } else if (s==182.7*182.7) {
2188 X0 = 0.58101;
2189 cMH = 0.00019;
2190 cmt = 0.00267;
2191 caS = -0.00032;
2192 caS2 = -0.00116;
2193 caSmt = -0.00031;
2194 cda5h = -0.01024;
2195 cMZ = 0.95072;
2196
2197 RelThError=0.;
2198 } else if (s==188.6*188.6) {
2199 X0 = 0.57284;
2200 cMH = 0.00028;
2201 cmt = 0.00267;
2202 caS = -0.00031;
2203 caS2 = -0.00119;
2204 caSmt = -0.00031;
2205 cda5h = -0.01033;
2206 cMZ = 0.94322;
2207
2208 RelThError=0.;
2209 } else if (s==191.6*191.6) {
2210 X0 = 0.56895;
2211 cMH = 0.00033;
2212 cmt = 0.00267;
2213 caS = -0.00031;
2214 caS2 = -0.0015;
2215 caSmt = -0.00032;
2216 cda5h = -0.01036;
2217 cMZ = 0.9407;
2218
2219 RelThError=0.;
2220 } else if (s==195.5*195.5) {
2221 X0 = 0.56418;
2222 cMH = 0.00043;
2223 cmt = 0.00266;
2224 caS = -0.00031;
2225 caS2 = -0.00211;
2226 caSmt = -0.00032;
2227 cda5h = -0.0104;
2228 cMZ = 0.93372;
2229
2230 RelThError=0.;
2231 } else if (s==199.5*199.5) {
2232 X0 = 0.5596;
2233 cMH = 0.00058;
2234 cmt = 0.00265;
2235 caS = -0.0003;
2236 caS2 = -0.0029;
2237 caSmt = -0.00033;
2238 cda5h = -0.01044;
2239 cMZ = 0.92329;
2240
2241 RelThError=0.;
2242 } else if (s==201.6*201.6) {
2243 X0 = 0.55731;
2244 cMH = 0.00072;
2245 cmt = 0.00264;
2246 caS = -0.0003;
2247 caS2 = -0.00417;
2248 caSmt = -0.00035;
2249 cda5h = -0.01045;
2250 cMZ = 0.91922;
2251
2252 RelThError=0.;
2253 } else if (s==204.9*204.9) {
2254 X0 = 0.55387;
2255 cMH = 0.00099;
2256 cmt = 0.00263;
2257 caS = -0.0003;
2258 caS2 = -0.00632;
2259 caSmt = -0.00031;
2260 cda5h = -0.01047;
2261 cMZ = 0.91174;
2262
2263 RelThError=0.;
2264 } else if (s==206.7*206.7) {
2265 X0 = 0.55206;
2266 cMH = 0.00112;
2267 cmt = 0.00262;
2268 caS = -0.0003;
2269 caS2 = -0.007;
2270 caSmt = -0.00028;
2271 cda5h = -0.01048;
2272 cMZ = 0.90619;
2273
2274 RelThError=0.;
2275 } else if ( s > 210.*210. ) {
2276 X0 = 0.;
2277 cMH = 0.;
2278 cmt = 0.;
2279 caS = 0.;
2280 caS2 = 0.;
2281 caSmt = 0.;
2282 cda5h = 0.;
2283 cMZ = 0.;
2284
2285 RelThError=0.;
2286 } else
2287 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2AFBtauApprox()");
2288
2289 return ((X0 + cMH * LH + cmt * Dt
2290 + caS * Das + caS2 * Das * Das
2291 + caSmt * Das * Dt + cda5h * Da5h + cMZ * DZ)*(1. + RelThError));
2292}
2293
2294
2296{
2297 double LH = log(mycache.getSM().getMHl() / 125.21);
2298 double Dt = pow(mycache.getSM().getMtpole() / 172.33, 2.0) - 1.0;
2299 double Das = mycache.getSM().getAlsMz() / 0.11802 - 1.0;
2300 double Da5h = mycache.getSM().Dalpha5hMz() / 0.027660 - 1.0;
2301 double DZ = mycache.getSM().getMz() / 91.1875 - 1.0;
2302
2303 double X0, cMH, cmt, caS, caS2, caSmt, cda5h, cMZ;
2304 double RelThError = 0.0; // (Relative) Theoretical uncertainty
2305
2306 if (s==130.2*130.2) {
2307 X0 = 82.8892;
2308 cMH = -0.15474;
2309 cmt = 1.40573;
2310 caS = 2.62479;
2311 caS2 = -0.36848;
2312 caSmt = -0.07418;
2313 cda5h = -1.10373;
2314 cMZ = 668.098;
2315
2316 RelThError=0.;
2317 } else if (s==136.2*136.2) {
2318 X0 = 66.678;
2319 cMH = -0.11894;
2320 cmt = 1.10611;
2321 caS = 2.08786;
2322 caS2 = -0.31851;
2323 caSmt = -0.05714;
2324 cda5h = -0.7474;
2325 cMZ = 483.206;
2326
2327 RelThError=0.;
2328 } else if (s==161.3*161.3) {
2329 X0 = 35.3327;
2330 cMH = -0.04814;
2331 cmt = 0.67248;
2332 caS = 1.04946;
2333 caS2 = -2.91626;
2334 caSmt = 0.14485;
2335 cda5h = -0.16031;
2336 cMZ = 194.287;
2337
2338 RelThError=0.;
2339 } else if (s==172.1*172.1) {
2340 X0 = 28.9533;
2341 cMH = -0.0217;
2342 cmt = 0.84287;
2343 caS = 0.82342;
2344 caS2 = -10.3622;
2345 caSmt = 0.34553;
2346 cda5h = -0.08566;
2347 cMZ = 143.973;
2348
2349 RelThError=0.;
2350 } else if (s==182.7*182.7) {
2351 X0 = 24.3396;
2352 cMH = -0.02135;
2353 cmt = 0.55825;
2354 caS = 0.65303;
2355 caS2 = 2.27278;
2356 caSmt = 0.15497;
2357 cda5h = -0.02621;
2358 cMZ = 117.679;
2359
2360 RelThError=0.;
2361 } else if (s==188.6*188.6) {
2362 X0 = 22.2913;
2363 cMH = -0.01369;
2364 cmt = 0.38248;
2365 caS = 0.58642;
2366 caS2 = 0.07636;
2367 caSmt = 0.03366;
2368 cda5h = -0.00452;
2369 cMZ = 105.239;
2370
2371 RelThError=0.;
2372 } else if (s==191.6*191.6) {
2373 X0 = 21.3559;
2374 cMH = -0.00962;
2375 cmt = 0.35565;
2376 caS = 0.55869;
2377 caS2 = -0.03217;
2378 caSmt = 0.02119;
2379 cda5h = 0.00413;
2380 cMZ = 99.4257;
2381
2382 RelThError=0.;
2383 } else if (s==195.5*195.5) {
2384 X0 = 20.233;
2385 cMH = -0.00369;
2386 cmt = 0.32882;
2387 caS = 0.52602;
2388 caS2 = -0.07412;
2389 caSmt = 0.01125;
2390 cda5h = 0.01378;
2391 cMZ = 92.7475;
2392
2393 RelThError=0.;
2394 } else if (s==199.5*199.5) {
2395 X0 = 19.1785;
2396 cMH = 0.00421;
2397 cmt = 0.30557;
2398 caS = 0.49572;
2399 caS2 = -0.08902;
2400 caSmt = 0.00367;
2401 cda5h = 0.02208;
2402 cMZ = 86.5648;
2403
2404 RelThError=0.;
2405 } else if (s==201.6*201.6) {
2406 X0 = 18.6603;
2407 cMH = 0.01064;
2408 cmt = 0.29435;
2409 caS = 0.48093;
2410 caS2 = -0.11273;
2411 caSmt = -0.00029;
2412 cda5h = 0.02582;
2413 cMZ = 83.6171;
2414
2415 RelThError=0.;
2416 } else if (s==204.9*204.9) {
2417 X0 = 17.8912;
2418 cMH = 0.02277;
2419 cmt = 0.2783;
2420 caS = 0.4593;
2421 caS2 = -0.26373;
2422 caSmt = -0.00193;
2423 cda5h = 0.03143;
2424 cMZ = 79.1842;
2425
2426 RelThError=0.;
2427 } else if (s==206.7*206.7) {
2428 X0 = 17.4932;
2429 cMH = 0.02808;
2430 cmt = 0.27049;
2431 caS = 0.44822;
2432 caS2 = -0.32919;
2433 caSmt = -0.0022;
2434 cda5h = 0.03404;
2435 cMZ = 76.9357;
2436
2437 RelThError=0.;
2438 } else if ( s > 210.*210. ) {
2439 X0 = 0.;
2440 cMH = 0.;
2441 cmt = 0.;
2442 caS = 0.;
2443 caS2 = 0.;
2444 caSmt = 0.;
2445 cda5h = 0.;
2446 cMZ = 0.;
2447
2448 RelThError=0.;
2449 } else
2450 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2sigmaHadronApprox()");
2451
2452 return ((X0 + cMH * LH + cmt * Dt
2453 + caS * Das + caS2 * Das * Das
2454 + caSmt * Das * Dt + cda5h * Da5h + cMZ * DZ)*(1. + RelThError));
2455}
2456
2457
2458 //LEP2 Differential Observables
2459
2460
2461double EWSMApproximateFormulae::LEP2dsigmadcosEApprox(const double s, const double cos) const
2462{
2463 double LH = log(mycache.getSM().getMHl() / 125.21);
2464 double Dt = pow(mycache.getSM().getMtpole() / 172.33, 2.0) - 1.0;
2465 double Das = mycache.getSM().getAlsMz() / 0.11802 - 1.0;
2466 double Da5h = mycache.getSM().Dalpha5hMz() / 0.027660 - 1.0;
2467 double DZ = mycache.getSM().getMz() / 91.1875 - 1.0;
2468
2469 double X0, cMH, cmt, caS, caS2, caSmt, cda5h, cMZ;
2470 double RelThError = 0.0; // (Relative) Theoretical uncertainty
2471
2472 if (cos == -0.81) {
2473 if (s==189.*189.) {
2474 X0 = 1.590;
2475 cMH = 0.;
2476 cmt = 0.;
2477 caS = 0.;
2478 caS2 = 0.;
2479 caSmt = 0.;
2480 cda5h = 0.;
2481 cMZ = 0.;
2482
2483 RelThError=0.;
2484 } else if (s==192.*192.) {
2485 X0 = 1.539;
2486 cMH = 0.;
2487 cmt = 0.;
2488 caS = 0.;
2489 caS2 = 0.;
2490 caSmt = 0.;
2491 cda5h = 0.;
2492 cMZ = 0.;
2493
2494 RelThError=0.;
2495 } else if (s==196.*196.) {
2496 X0 = 1.483;
2497 cMH = 0.;
2498 cmt = 0.;
2499 caS = 0.;
2500 caS2 = 0.;
2501 caSmt = 0.;
2502 cda5h = 0.;
2503 cMZ = 0.;
2504
2505 RelThError=0.;
2506 } else if (s==200.*200.) {
2507 X0 = 1.420;
2508 cMH = 0.;
2509 cmt = 0.;
2510 caS = 0.;
2511 caS2 = 0.;
2512 caSmt = 0.;
2513 cda5h = 0.;
2514 cMZ = 0.;
2515
2516 RelThError=0.;
2517 } else if (s==202.*202.) {
2518 X0 = 1.401;
2519 cMH = 0.;
2520 cmt = 0.;
2521 caS = 0.;
2522 caS2 = 0.;
2523 caSmt = 0.;
2524 cda5h = 0.;
2525 cMZ = 0.;
2526
2527 RelThError=0.;
2528 } else if (s==205.*205.) {
2529 X0 = 1.355;
2530 cMH = 0.;
2531 cmt = 0.;
2532 caS = 0.;
2533 caS2 = 0.;
2534 caSmt = 0.;
2535 cda5h = 0.;
2536 cMZ = 0.;
2537
2538 RelThError=0.;
2539 } else if (s==207.*207.) {
2540 X0 = 1.339;
2541 cMH = 0.;
2542 cmt = 0.;
2543 caS = 0.;
2544 caS2 = 0.;
2545 caSmt = 0.;
2546 cda5h = 0.;
2547 cMZ = 0.;
2548
2549 RelThError=0.;
2550 } else {
2551 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosEApprox()");
2552 }
2553 } else if (cos == -0.63) {
2554 if (s==189.*189.) {
2555 X0 = 1.816;
2556 cMH = 0.;
2557 cmt = 0.;
2558 caS = 0.;
2559 caS2 = 0.;
2560 caSmt = 0.;
2561 cda5h = 0.;
2562 cMZ = 0.;
2563
2564 RelThError=0.;
2565 } else if (s==192.*192.) {
2566 X0 = 1.754;
2567 cMH = 0.;
2568 cmt = 0.;
2569 caS = 0.;
2570 caS2 = 0.;
2571 caSmt = 0.;
2572 cda5h = 0.;
2573 cMZ = 0.;
2574
2575 RelThError=0.;
2576 } else if (s==196.*196.) {
2577 X0 = 1.695;
2578 cMH = 0.;
2579 cmt = 0.;
2580 caS = 0.;
2581 caS2 = 0.;
2582 caSmt = 0.;
2583 cda5h = 0.;
2584 cMZ = 0.;
2585
2586 RelThError=0.;
2587 } else if (s==200.*200.) {
2588 X0 = 1.623;
2589 cMH = 0.;
2590 cmt = 0.;
2591 caS = 0.;
2592 caS2 = 0.;
2593 caSmt = 0.;
2594 cda5h = 0.;
2595 cMZ = 0.;
2596
2597 RelThError=0.;
2598 } else if (s==202.*202.) {
2599 X0 = 1.579;
2600 cMH = 0.;
2601 cmt = 0.;
2602 caS = 0.;
2603 caS2 = 0.;
2604 caSmt = 0.;
2605 cda5h = 0.;
2606 cMZ = 0.;
2607
2608 RelThError=0.;
2609 } else if (s==205.*205.) {
2610 X0 = 1.539;
2611 cMH = 0.;
2612 cmt = 0.;
2613 caS = 0.;
2614 caS2 = 0.;
2615 caSmt = 0.;
2616 cda5h = 0.;
2617 cMZ = 0.;
2618
2619 RelThError=0.;
2620 } else if (s==207.*207.) {
2621 X0 = 1.517;
2622 cMH = 0.;
2623 cmt = 0.;
2624 caS = 0.;
2625 caS2 = 0.;
2626 caSmt = 0.;
2627 cda5h = 0.;
2628 cMZ = 0.;
2629
2630 RelThError=0.;
2631 } else if ( s > 210.*210. ) {
2632 X0 = 0.;
2633 cMH = 0.;
2634 cmt = 0.;
2635 caS = 0.;
2636 caS2 = 0.;
2637 caSmt = 0.;
2638 cda5h = 0.;
2639 cMZ = 0.;
2640
2641 RelThError=0.;
2642 } else {
2643 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosEApprox()");
2644 }
2645 } else if (cos == -0.45) {
2646 if (s==189.*189.) {
2647 X0 = 2.162;
2648 cMH = 0.;
2649 cmt = 0.;
2650 caS = 0.;
2651 caS2 = 0.;
2652 caSmt = 0.;
2653 cda5h = 0.;
2654 cMZ = 0.;
2655
2656 RelThError=0.;
2657 } else if (s==192.*192.) {
2658 X0 = 2.091;
2659 cMH = 0.;
2660 cmt = 0.;
2661 caS = 0.;
2662 caS2 = 0.;
2663 caSmt = 0.;
2664 cda5h = 0.;
2665 cMZ = 0.;
2666
2667 RelThError=0.;
2668 } else if (s==196.*196.) {
2669 X0 = 2.000;
2670 cMH = 0.;
2671 cmt = 0.;
2672 caS = 0.;
2673 caS2 = 0.;
2674 caSmt = 0.;
2675 cda5h = 0.;
2676 cMZ = 0.;
2677
2678 RelThError=0.;
2679 } else if (s==200.*200.) {
2680 X0 = 1.885;
2681 cMH = 0.;
2682 cmt = 0.;
2683 caS = 0.;
2684 caS2 = 0.;
2685 caSmt = 0.;
2686 cda5h = 0.;
2687 cMZ = 0.;
2688
2689 RelThError=0.;
2690 } else if (s==202.*202.) {
2691 X0 = 1.836;
2692 cMH = 0.;
2693 cmt = 0.;
2694 caS = 0.;
2695 caS2 = 0.;
2696 caSmt = 0.;
2697 cda5h = 0.;
2698 cMZ = 0.;
2699
2700 RelThError=0.;
2701 } else if (s==205.*205.) {
2702 X0 = 1.786;
2703 cMH = 0.;
2704 cmt = 0.;
2705 caS = 0.;
2706 caS2 = 0.;
2707 caSmt = 0.;
2708 cda5h = 0.;
2709 cMZ = 0.;
2710
2711 RelThError=0.;
2712 } else if (s==207.*207.) {
2713 X0 = 1.745;
2714 cMH = 0.;
2715 cmt = 0.;
2716 caS = 0.;
2717 caS2 = 0.;
2718 caSmt = 0.;
2719 cda5h = 0.;
2720 cMZ = 0.;
2721
2722 RelThError=0.;
2723 } else if ( s > 210.*210. ) {
2724 X0 = 0.;
2725 cMH = 0.;
2726 cmt = 0.;
2727 caS = 0.;
2728 caS2 = 0.;
2729 caSmt = 0.;
2730 cda5h = 0.;
2731 cMZ = 0.;
2732
2733 RelThError=0.;
2734 } else {
2735 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosEApprox()");
2736 }
2737 } else if (cos == -0.27) {
2738 if (s==189.*189.) {
2739 X0 = 2.681;
2740 cMH = 0.;
2741 cmt = 0.;
2742 caS = 0.;
2743 caS2 = 0.;
2744 caSmt = 0.;
2745 cda5h = 0.;
2746 cMZ = 0.;
2747
2748 RelThError=0.;
2749 } else if (s==192.*192.) {
2750 X0 = 2.604;
2751 cMH = 0.;
2752 cmt = 0.;
2753 caS = 0.;
2754 caS2 = 0.;
2755 caSmt = 0.;
2756 cda5h = 0.;
2757 cMZ = 0.;
2758
2759 RelThError=0.;
2760 } else if (s==196.*196.) {
2761 X0 = 2.498;
2762 cMH = 0.;
2763 cmt = 0.;
2764 caS = 0.;
2765 caS2 = 0.;
2766 caSmt = 0.;
2767 cda5h = 0.;
2768 cMZ = 0.;
2769
2770 RelThError=0.;
2771 } else if (s==200.*200.) {
2772 X0 = 2.409;
2773 cMH = 0.;
2774 cmt = 0.;
2775 caS = 0.;
2776 caS2 = 0.;
2777 caSmt = 0.;
2778 cda5h = 0.;
2779 cMZ = 0.;
2780
2781 RelThError=0.;
2782 } else if (s==202.*202.) {
2783 X0 = 2.361;
2784 cMH = 0.;
2785 cmt = 0.;
2786 caS = 0.;
2787 caS2 = 0.;
2788 caSmt = 0.;
2789 cda5h = 0.;
2790 cMZ = 0.;
2791
2792 RelThError=0.;
2793 } else if (s==205.*205.) {
2794 X0 = 2.280;
2795 cMH = 0.;
2796 cmt = 0.;
2797 caS = 0.;
2798 caS2 = 0.;
2799 caSmt = 0.;
2800 cda5h = 0.;
2801 cMZ = 0.;
2802
2803 RelThError=0.;
2804 } else if (s==207.*207.) {
2805 X0 = 2.240;
2806 cMH = 0.;
2807 cmt = 0.;
2808 caS = 0.;
2809 caS2 = 0.;
2810 caSmt = 0.;
2811 cda5h = 0.;
2812 cMZ = 0.;
2813
2814 RelThError=0.;
2815 } else if ( s > 210.*210. ) {
2816 X0 = 0.;
2817 cMH = 0.;
2818 cmt = 0.;
2819 caS = 0.;
2820 caS2 = 0.;
2821 caSmt = 0.;
2822 cda5h = 0.;
2823 cMZ = 0.;
2824
2825 RelThError=0.;
2826 } else {
2827 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosEApprox()");
2828 }
2829 } else if (cos == -0.09) {
2830 if (s==189.*189.) {
2831 X0 = 3.906;
2832 cMH = 0.;
2833 cmt = 0.;
2834 caS = 0.;
2835 caS2 = 0.;
2836 caSmt = 0.;
2837 cda5h = 0.;
2838 cMZ = 0.;
2839
2840 RelThError=0.;
2841 } else if (s==192.*192.) {
2842 X0 = 3.778;
2843 cMH = 0.;
2844 cmt = 0.;
2845 caS = 0.;
2846 caS2 = 0.;
2847 caSmt = 0.;
2848 cda5h = 0.;
2849 cMZ = 0.;
2850
2851 RelThError=0.;
2852 } else if (s==196.*196.) {
2853 X0 = 3.610;
2854 cMH = 0.;
2855 cmt = 0.;
2856 caS = 0.;
2857 caS2 = 0.;
2858 caSmt = 0.;
2859 cda5h = 0.;
2860 cMZ = 0.;
2861
2862 RelThError=0.;
2863 } else if (s==200.*200.) {
2864 X0 = 3.435;
2865 cMH = 0.;
2866 cmt = 0.;
2867 caS = 0.;
2868 caS2 = 0.;
2869 caSmt = 0.;
2870 cda5h = 0.;
2871 cMZ = 0.;
2872
2873 RelThError=0.;
2874 } else if (s==202.*202.) {
2875 X0 = 3.356;
2876 cMH = 0.;
2877 cmt = 0.;
2878 caS = 0.;
2879 caS2 = 0.;
2880 caSmt = 0.;
2881 cda5h = 0.;
2882 cMZ = 0.;
2883
2884 RelThError=0.;
2885 } else if (s==205.*205.) {
2886 X0 = 3.253;
2887 cMH = 0.;
2888 cmt = 0.;
2889 caS = 0.;
2890 caS2 = 0.;
2891 caSmt = 0.;
2892 cda5h = 0.;
2893 cMZ = 0.;
2894
2895 RelThError=0.;
2896 } else if (s==207.*207.) {
2897 X0 = 3.194;
2898 cMH = 0.;
2899 cmt = 0.;
2900 caS = 0.;
2901 caS2 = 0.;
2902 caSmt = 0.;
2903 cda5h = 0.;
2904 cMZ = 0.;
2905
2906 RelThError=0.;
2907 } else if ( s > 210.*210. ) {
2908 X0 = 0.;
2909 cMH = 0.;
2910 cmt = 0.;
2911 caS = 0.;
2912 caS2 = 0.;
2913 caSmt = 0.;
2914 cda5h = 0.;
2915 cMZ = 0.;
2916
2917 RelThError=0.;
2918 } else {
2919 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosEApprox()");
2920 }
2921 } else if (cos == 0.045) {
2922 if (s==189.*189.) {
2923 X0 = 5.372;
2924 cMH = 0.;
2925 cmt = 0.;
2926 caS = 0.;
2927 caS2 = 0.;
2928 caSmt = 0.;
2929 cda5h = 0.;
2930 cMZ = 0.;
2931
2932 RelThError=0.;
2933 } else if (s==192.*192.) {
2934 X0 = 5.205;
2935 cMH = 0.;
2936 cmt = 0.;
2937 caS = 0.;
2938 caS2 = 0.;
2939 caSmt = 0.;
2940 cda5h = 0.;
2941 cMZ = 0.;
2942
2943 RelThError=0.;
2944 } else if (s==196.*196.) {
2945 X0 = 4.999;
2946 cMH = 0.;
2947 cmt = 0.;
2948 caS = 0.;
2949 caS2 = 0.;
2950 caSmt = 0.;
2951 cda5h = 0.;
2952 cMZ = 0.;
2953
2954 RelThError=0.;
2955 } else if (s==200.*200.) {
2956 X0 = 4.770;
2957 cMH = 0.;
2958 cmt = 0.;
2959 caS = 0.;
2960 caS2 = 0.;
2961 caSmt = 0.;
2962 cda5h = 0.;
2963 cMZ = 0.;
2964
2965 RelThError=0.;
2966 } else if (s==202.*202.) {
2967 X0 = 4.669;
2968 cMH = 0.;
2969 cmt = 0.;
2970 caS = 0.;
2971 caS2 = 0.;
2972 caSmt = 0.;
2973 cda5h = 0.;
2974 cMZ = 0.;
2975
2976 RelThError=0.;
2977 } else if (s==205.*205.) {
2978 X0 = 4.479;
2979 cMH = 0.;
2980 cmt = 0.;
2981 caS = 0.;
2982 caS2 = 0.;
2983 caSmt = 0.;
2984 cda5h = 0.;
2985 cMZ = 0.;
2986
2987 RelThError=0.;
2988 } else if (s==207.*207.) {
2989 X0 = 4.380;
2990 cMH = 0.;
2991 cmt = 0.;
2992 caS = 0.;
2993 caS2 = 0.;
2994 caSmt = 0.;
2995 cda5h = 0.;
2996 cMZ = 0.;
2997
2998 RelThError=0.;
2999 } else if ( s > 210.*210. ) {
3000 X0 = 0.;
3001 cMH = 0.;
3002 cmt = 0.;
3003 caS = 0.;
3004 caS2 = 0.;
3005 caSmt = 0.;
3006 cda5h = 0.;
3007 cMZ = 0.;
3008
3009 RelThError=0.;
3010 } else {
3011 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosEApprox()");
3012 }
3013 } else if (cos == 0.135) {
3014 if (s==189.*189.) {
3015 X0 = 6.892;
3016 cMH = 0.;
3017 cmt = 0.;
3018 caS = 0.;
3019 caS2 = 0.;
3020 caSmt = 0.;
3021 cda5h = 0.;
3022 cMZ = 0.;
3023
3024 RelThError=0.;
3025 } else if (s==192.*192.) {
3026 X0 = 6.692;
3027 cMH = 0.;
3028 cmt = 0.;
3029 caS = 0.;
3030 caS2 = 0.;
3031 caSmt = 0.;
3032 cda5h = 0.;
3033 cMZ = 0.;
3034
3035 RelThError=0.;
3036 } else if (s==196.*196.) {
3037 X0 = 6.406;
3038 cMH = 0.;
3039 cmt = 0.;
3040 caS = 0.;
3041 caS2 = 0.;
3042 caSmt = 0.;
3043 cda5h = 0.;
3044 cMZ = 0.;
3045
3046 RelThError=0.;
3047 } else if (s==200.*200.) {
3048 X0 = 6.157;
3049 cMH = 0.;
3050 cmt = 0.;
3051 caS = 0.;
3052 caS2 = 0.;
3053 caSmt = 0.;
3054 cda5h = 0.;
3055 cMZ = 0.;
3056
3057 RelThError=0.;
3058 } else if (s==202.*202.) {
3059 X0 = 6.017;
3060 cMH = 0.;
3061 cmt = 0.;
3062 caS = 0.;
3063 caS2 = 0.;
3064 caSmt = 0.;
3065 cda5h = 0.;
3066 cMZ = 0.;
3067
3068 RelThError=0.;
3069 } else if (s==205.*205.) {
3070 X0 = 5.820;
3071 cMH = 0.;
3072 cmt = 0.;
3073 caS = 0.;
3074 caS2 = 0.;
3075 caSmt = 0.;
3076 cda5h = 0.;
3077 cMZ = 0.;
3078
3079 RelThError=0.;
3080 } else if (s==207.*207.) {
3081 X0 = 5.729;
3082 cMH = 0.;
3083 cmt = 0.;
3084 caS = 0.;
3085 caS2 = 0.;
3086 caSmt = 0.;
3087 cda5h = 0.;
3088 cMZ = 0.;
3089
3090 RelThError=0.;
3091 } else if ( s > 210.*210. ) {
3092 X0 = 0.;
3093 cMH = 0.;
3094 cmt = 0.;
3095 caS = 0.;
3096 caS2 = 0.;
3097 caSmt = 0.;
3098 cda5h = 0.;
3099 cMZ = 0.;
3100
3101 RelThError=0.;
3102 } else {
3103 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosEApprox()");
3104 }
3105 } else if (cos == 0.225) {
3106 if (s==189.*189.) {
3107 X0 = 9.610;
3108 cMH = 0.;
3109 cmt = 0.;
3110 caS = 0.;
3111 caS2 = 0.;
3112 caSmt = 0.;
3113 cda5h = 0.;
3114 cMZ = 0.;
3115
3116 RelThError=0.;
3117 } else if (s==192.*192.) {
3118 X0 = 9.242;
3119 cMH = 0.;
3120 cmt = 0.;
3121 caS = 0.;
3122 caS2 = 0.;
3123 caSmt = 0.;
3124 cda5h = 0.;
3125 cMZ = 0.;
3126
3127 RelThError=0.;
3128 } else if (s==196.*196.) {
3129 X0 = 8.832;
3130 cMH = 0.;
3131 cmt = 0.;
3132 caS = 0.;
3133 caS2 = 0.;
3134 caSmt = 0.;
3135 cda5h = 0.;
3136 cMZ = 0.;
3137
3138 RelThError=0.;
3139 } else if (s==200.*200.) {
3140 X0 = 8.471;
3141 cMH = 0.;
3142 cmt = 0.;
3143 caS = 0.;
3144 caS2 = 0.;
3145 caSmt = 0.;
3146 cda5h = 0.;
3147 cMZ = 0.;
3148
3149 RelThError=0.;
3150 } else if (s==202.*202.) {
3151 X0 = 8.320;
3152 cMH = 0.;
3153 cmt = 0.;
3154 caS = 0.;
3155 caS2 = 0.;
3156 caSmt = 0.;
3157 cda5h = 0.;
3158 cMZ = 0.;
3159
3160 RelThError=0.;
3161 } else if (s==205.*205.) {
3162 X0 = 8.077;
3163 cMH = 0.;
3164 cmt = 0.;
3165 caS = 0.;
3166 caS2 = 0.;
3167 caSmt = 0.;
3168 cda5h = 0.;
3169 cMZ = 0.;
3170
3171 RelThError=0.;
3172 } else if (s==207.*207.) {
3173 X0 = 7.972;
3174 cMH = 0.;
3175 cmt = 0.;
3176 caS = 0.;
3177 caS2 = 0.;
3178 caSmt = 0.;
3179 cda5h = 0.;
3180 cMZ = 0.;
3181
3182 RelThError=0.;
3183 } else if ( s > 210.*210. ) {
3184 X0 = 0.;
3185 cMH = 0.;
3186 cmt = 0.;
3187 caS = 0.;
3188 caS2 = 0.;
3189 caSmt = 0.;
3190 cda5h = 0.;
3191 cMZ = 0.;
3192
3193 RelThError=0.;
3194 } else {
3195 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosEApprox()");
3196 }
3197 } else if (cos == 0.315) {
3198 if (s==189.*189.) {
3199 X0 = 13.345;
3200 cMH = 0.;
3201 cmt = 0.;
3202 caS = 0.;
3203 caS2 = 0.;
3204 caSmt = 0.;
3205 cda5h = 0.;
3206 cMZ = 0.;
3207
3208 RelThError=0.;
3209 } else if (s==192.*192.) {
3210 X0 = 12.800;
3211 cMH = 0.;
3212 cmt = 0.;
3213 caS = 0.;
3214 caS2 = 0.;
3215 caSmt = 0.;
3216 cda5h = 0.;
3217 cMZ = 0.;
3218
3219 RelThError=0.;
3220 } else if (s==196.*196.) {
3221 X0 = 12.326;
3222 cMH = 0.;
3223 cmt = 0.;
3224 caS = 0.;
3225 caS2 = 0.;
3226 caSmt = 0.;
3227 cda5h = 0.;
3228 cMZ = 0.;
3229
3230 RelThError=0.;
3231 } else if (s==200.*200.) {
3232 X0 = 11.773;
3233 cMH = 0.;
3234 cmt = 0.;
3235 caS = 0.;
3236 caS2 = 0.;
3237 caSmt = 0.;
3238 cda5h = 0.;
3239 cMZ = 0.;
3240
3241 RelThError=0.;
3242 } else if (s==202.*202.) {
3243 X0 = 11.554;
3244 cMH = 0.;
3245 cmt = 0.;
3246 caS = 0.;
3247 caS2 = 0.;
3248 caSmt = 0.;
3249 cda5h = 0.;
3250 cMZ = 0.;
3251
3252 RelThError=0.;
3253 } else if (s==205.*205.) {
3254 X0 = 11.200;
3255 cMH = 0.;
3256 cmt = 0.;
3257 caS = 0.;
3258 caS2 = 0.;
3259 caSmt = 0.;
3260 cda5h = 0.;
3261 cMZ = 0.;
3262
3263 RelThError=0.;
3264 } else if (s==207.*207.) {
3265 X0 = 11.019;
3266 cMH = 0.;
3267 cmt = 0.;
3268 caS = 0.;
3269 caS2 = 0.;
3270 caSmt = 0.;
3271 cda5h = 0.;
3272 cMZ = 0.;
3273
3274 RelThError=0.;
3275 } else if ( s > 210.*210. ) {
3276 X0 = 0.;
3277 cMH = 0.;
3278 cmt = 0.;
3279 caS = 0.;
3280 caS2 = 0.;
3281 caSmt = 0.;
3282 cda5h = 0.;
3283 cMZ = 0.;
3284
3285 RelThError=0.;
3286 } else {
3287 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosEApprox()");
3288 }
3289 } else if (cos == 0.405) {
3290 if (s==189.*189.) {
3291 X0 = 19.445;
3292 cMH = 0.;
3293 cmt = 0.;
3294 caS = 0.;
3295 caS2 = 0.;
3296 caSmt = 0.;
3297 cda5h = 0.;
3298 cMZ = 0.;
3299
3300 RelThError=0.;
3301 } else if (s==192.*192.) {
3302 X0 = 18.776;
3303 cMH = 0.;
3304 cmt = 0.;
3305 caS = 0.;
3306 caS2 = 0.;
3307 caSmt = 0.;
3308 cda5h = 0.;
3309 cMZ = 0.;
3310
3311 RelThError=0.;
3312 } else if (s==196.*196.) {
3313 X0 = 18.039;
3314 cMH = 0.;
3315 cmt = 0.;
3316 caS = 0.;
3317 caS2 = 0.;
3318 caSmt = 0.;
3319 cda5h = 0.;
3320 cMZ = 0.;
3321
3322 RelThError=0.;
3323 } else if (s==200.*200.) {
3324 X0 = 17.262;
3325 cMH = 0.;
3326 cmt = 0.;
3327 caS = 0.;
3328 caS2 = 0.;
3329 caSmt = 0.;
3330 cda5h = 0.;
3331 cMZ = 0.;
3332
3333 RelThError=0.;
3334 } else if (s==202.*202.) {
3335 X0 = 16.891;
3336 cMH = 0.;
3337 cmt = 0.;
3338 caS = 0.;
3339 caS2 = 0.;
3340 caSmt = 0.;
3341 cda5h = 0.;
3342 cMZ = 0.;
3343
3344 RelThError=0.;
3345 } else if (s==205.*205.) {
3346 X0 = 16.322;
3347 cMH = 0.;
3348 cmt = 0.;
3349 caS = 0.;
3350 caS2 = 0.;
3351 caSmt = 0.;
3352 cda5h = 0.;
3353 cMZ = 0.;
3354
3355 RelThError=0.;
3356 } else if (s==207.*207.) {
3357 X0 = 16.053;
3358 cMH = 0.;
3359 cmt = 0.;
3360 caS = 0.;
3361 caS2 = 0.;
3362 caSmt = 0.;
3363 cda5h = 0.;
3364 cMZ = 0.;
3365
3366 RelThError=0.;
3367 } else if ( s > 210.*210. ) {
3368 X0 = 0.;
3369 cMH = 0.;
3370 cmt = 0.;
3371 caS = 0.;
3372 caS2 = 0.;
3373 caSmt = 0.;
3374 cda5h = 0.;
3375 cMZ = 0.;
3376
3377 RelThError=0.;
3378 } else {
3379 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosEApprox()");
3380 }
3381} else if (cos == 0.495) {
3382 if (s==189.*189.) {
3383 X0 = 30.476;
3384 cMH = 0.;
3385 cmt = 0.;
3386 caS = 0.;
3387 caS2 = 0.;
3388 caSmt = 0.;
3389 cda5h = 0.;
3390 cMZ = 0.;
3391
3392 RelThError=0.;
3393 } else if (s==192.*192.) {
3394 X0 = 29.471;
3395 cMH = 0.;
3396 cmt = 0.;
3397 caS = 0.;
3398 caS2 = 0.;
3399 caSmt = 0.;
3400 cda5h = 0.;
3401 cMZ = 0.;
3402
3403 RelThError=0.;
3404 } else if (s==196.*196.) {
3405 X0 = 28.300;
3406 cMH = 0.;
3407 cmt = 0.;
3408 caS = 0.;
3409 caS2 = 0.;
3410 caSmt = 0.;
3411 cda5h = 0.;
3412 cMZ = 0.;
3413
3414 RelThError=0.;
3415 } else if (s==200.*200.) {
3416 X0 = 27.117;
3417 cMH = 0.;
3418 cmt = 0.;
3419 caS = 0.;
3420 caS2 = 0.;
3421 caSmt = 0.;
3422 cda5h = 0.;
3423 cMZ = 0.;
3424
3425 RelThError=0.;
3426 } else if (s==202.*202.) {
3427 X0 = 26.583;
3428 cMH = 0.;
3429 cmt = 0.;
3430 caS = 0.;
3431 caS2 = 0.;
3432 caSmt = 0.;
3433 cda5h = 0.;
3434 cMZ = 0.;
3435
3436 RelThError=0.;
3437 } else if (s==205.*205.) {
3438 X0 = 25.722;
3439 cMH = 0.;
3440 cmt = 0.;
3441 caS = 0.;
3442 caS2 = 0.;
3443 caSmt = 0.;
3444 cda5h = 0.;
3445 cMZ = 0.;
3446
3447 RelThError=0.;
3448 } else if (s==207.*207.) {
3449 X0 = 25.254;
3450 cMH = 0.;
3451 cmt = 0.;
3452 caS = 0.;
3453 caS2 = 0.;
3454 caSmt = 0.;
3455 cda5h = 0.;
3456 cMZ = 0.;
3457
3458 RelThError=0.;
3459 } else if ( s > 210.*210. ) {
3460 X0 = 0.;
3461 cMH = 0.;
3462 cmt = 0.;
3463 caS = 0.;
3464 caS2 = 0.;
3465 caSmt = 0.;
3466 cda5h = 0.;
3467 cMZ = 0.;
3468
3469 RelThError=0.;
3470 } else {
3471 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosEApprox()");
3472 }
3473 } else if (cos == 0.585) {
3474 if (s==189.*189.) {
3475 X0 = 51.012;
3476 cMH = 0.;
3477 cmt = 0.;
3478 caS = 0.;
3479 caS2 = 0.;
3480 caSmt = 0.;
3481 cda5h = 0.;
3482 cMZ = 0.;
3483
3484 RelThError=0.;
3485 } else if (s==192.*192.) {
3486 X0 = 49.338;
3487 cMH = 0.;
3488 cmt = 0.;
3489 caS = 0.;
3490 caS2 = 0.;
3491 caSmt = 0.;
3492 cda5h = 0.;
3493 cMZ = 0.;
3494
3495 RelThError=0.;
3496 } else if (s==196.*196.) {
3497 X0 = 47.362;
3498 cMH = 0.;
3499 cmt = 0.;
3500 caS = 0.;
3501 caS2 = 0.;
3502 caSmt = 0.;
3503 cda5h = 0.;
3504 cMZ = 0.;
3505
3506 RelThError=0.;
3507 } else if (s==200.*200.) {
3508 X0 = 45.607;
3509 cMH = 0.;
3510 cmt = 0.;
3511 caS = 0.;
3512 caS2 = 0.;
3513 caSmt = 0.;
3514 cda5h = 0.;
3515 cMZ = 0.;
3516
3517 RelThError=0.;
3518 } else if (s==202.*202.) {
3519 X0 = 44.786;
3520 cMH = 0.;
3521 cmt = 0.;
3522 caS = 0.;
3523 caS2 = 0.;
3524 caSmt = 0.;
3525 cda5h = 0.;
3526 cMZ = 0.;
3527
3528 RelThError=0.;
3529 } else if (s==205.*205.) {
3530 X0 = 43.217;
3531 cMH = 0.;
3532 cmt = 0.;
3533 caS = 0.;
3534 caS2 = 0.;
3535 caSmt = 0.;
3536 cda5h = 0.;
3537 cMZ = 0.;
3538
3539 RelThError=0.;
3540 } else if (s==207.*207.) {
3541 X0 = 42.456;
3542 cMH = 0.;
3543 cmt = 0.;
3544 caS = 0.;
3545 caS2 = 0.;
3546 caSmt = 0.;
3547 cda5h = 0.;
3548 cMZ = 0.;
3549
3550 RelThError=0.;
3551 } else if ( s > 210.*210. ) {
3552 X0 = 0.;
3553 cMH = 0.;
3554 cmt = 0.;
3555 caS = 0.;
3556 caS2 = 0.;
3557 caSmt = 0.;
3558 cda5h = 0.;
3559 cMZ = 0.;
3560
3561 RelThError=0.;
3562 } else {
3563 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosEApprox()");
3564 }
3565 } else if (cos == 0.675) {
3566 if (s==189.*189.) {
3567 X0 = 95.563;
3568 cMH = 0.;
3569 cmt = 0.;
3570 caS = 0.;
3571 caS2 = 0.;
3572 caSmt = 0.;
3573 cda5h = 0.;
3574 cMZ = 0.;
3575
3576 RelThError=0.;
3577 } else if (s==192.*192.) {
3578 X0 = 92.079;
3579 cMH = 0.;
3580 cmt = 0.;
3581 caS = 0.;
3582 caS2 = 0.;
3583 caSmt = 0.;
3584 cda5h = 0.;
3585 cMZ = 0.;
3586
3587 RelThError=0.;
3588 } else if (s==196.*196.) {
3589 X0 = 88.473;
3590 cMH = 0.;
3591 cmt = 0.;
3592 caS = 0.;
3593 caS2 = 0.;
3594 caSmt = 0.;
3595 cda5h = 0.;
3596 cMZ = 0.;
3597
3598 RelThError=0.;
3599 } else if (s==200.*200.) {
3600 X0 = 85.143;
3601 cMH = 0.;
3602 cmt = 0.;
3603 caS = 0.;
3604 caS2 = 0.;
3605 caSmt = 0.;
3606 cda5h = 0.;
3607 cMZ = 0.;
3608
3609 RelThError=0.;
3610 } else if (s==202.*202.) {
3611 X0 = 83.473;
3612 cMH = 0.;
3613 cmt = 0.;
3614 caS = 0.;
3615 caS2 = 0.;
3616 caSmt = 0.;
3617 cda5h = 0.;
3618 cMZ = 0.;
3619
3620 RelThError=0.;
3621 } else if (s==205.*205.) {
3622 X0 = 80.939;
3623 cMH = 0.;
3624 cmt = 0.;
3625 caS = 0.;
3626 caS2 = 0.;
3627 caSmt = 0.;
3628 cda5h = 0.;
3629 cMZ = 0.;
3630
3631 RelThError=0.;
3632 } else if (s==207.*207.) {
3633 X0 = 79.639;
3634 cMH = 0.;
3635 cmt = 0.;
3636 caS = 0.;
3637 caS2 = 0.;
3638 caSmt = 0.;
3639 cda5h = 0.;
3640 cMZ = 0.;
3641
3642 RelThError=0.;
3643 } else if ( s > 210.*210. ) {
3644 X0 = 0.;
3645 cMH = 0.;
3646 cmt = 0.;
3647 caS = 0.;
3648 caS2 = 0.;
3649 caSmt = 0.;
3650 cda5h = 0.;
3651 cMZ = 0.;
3652
3653 RelThError=0.;
3654 } else {
3655 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosEApprox()");
3656 }
3657 } else if (cos == 0.765) {
3658 if (s==189.*189.) {
3659 X0 = 212.390;
3660 cMH = 0.;
3661 cmt = 0.;
3662 caS = 0.;
3663 caS2 = 0.;
3664 caSmt = 0.;
3665 cda5h = 0.;
3666 cMZ = 0.;
3667
3668 RelThError=0.;
3669 } else if (s==192.*192.) {
3670 X0 = 206.087;
3671 cMH = 0.;
3672 cmt = 0.;
3673 caS = 0.;
3674 caS2 = 0.;
3675 caSmt = 0.;
3676 cda5h = 0.;
3677 cMZ = 0.;
3678
3679 RelThError=0.;
3680 } else if (s==196.*196.) {
3681 X0 = 198.250;
3682 cMH = 0.;
3683 cmt = 0.;
3684 caS = 0.;
3685 caS2 = 0.;
3686 caSmt = 0.;
3687 cda5h = 0.;
3688 cMZ = 0.;
3689
3690 RelThError=0.;
3691 } else if (s==200.*200.) {
3692 X0 = 190.786;
3693 cMH = 0.;
3694 cmt = 0.;
3695 caS = 0.;
3696 caS2 = 0.;
3697 caSmt = 0.;
3698 cda5h = 0.;
3699 cMZ = 0.;
3700
3701 RelThError=0.;
3702 } else if (s==202.*202.) {
3703 X0 = 186.904;
3704 cMH = 0.;
3705 cmt = 0.;
3706 caS = 0.;
3707 caS2 = 0.;
3708 caSmt = 0.;
3709 cda5h = 0.;
3710 cMZ = 0.;
3711
3712 RelThError=0.;
3713 } else if (s==205.*205.) {
3714 X0 = 180.878;
3715 cMH = 0.;
3716 cmt = 0.;
3717 caS = 0.;
3718 caS2 = 0.;
3719 caSmt = 0.;
3720 cda5h = 0.;
3721 cMZ = 0.;
3722
3723 RelThError=0.;
3724 } else if (s==207.*207.) {
3725 X0 = 178.042;
3726 cMH = 0.;
3727 cmt = 0.;
3728 caS = 0.;
3729 caS2 = 0.;
3730 caSmt = 0.;
3731 cda5h = 0.;
3732 cMZ = 0.;
3733
3734 RelThError=0.;
3735 } else if ( s > 210.*210. ) {
3736 X0 = 0.;
3737 cMH = 0.;
3738 cmt = 0.;
3739 caS = 0.;
3740 caS2 = 0.;
3741 caSmt = 0.;
3742 cda5h = 0.;
3743 cMZ = 0.;
3744
3745 RelThError=0.;
3746 } else {
3747 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosEApprox()");
3748 }
3749 } else if (cos == 0.855) {
3750 if (s==189.*189.) {
3751 X0 = 689.989;
3752 cMH = 0.;
3753 cmt = 0.;
3754 caS = 0.;
3755 caS2 = 0.;
3756 caSmt = 0.;
3757 cda5h = 0.;
3758 cMZ = 0.;
3759
3760 RelThError=0.;
3761 } else if (s==192.*192.) {
3762 X0 = 669.173;
3763 cMH = 0.;
3764 cmt = 0.;
3765 caS = 0.;
3766 caS2 = 0.;
3767 caSmt = 0.;
3768 cda5h = 0.;
3769 cMZ = 0.;
3770
3771 RelThError=0.;
3772 } else if (s==196.*196.) {
3773 X0 = 642.688;
3774 cMH = 0.;
3775 cmt = 0.;
3776 caS = 0.;
3777 caS2 = 0.;
3778 caSmt = 0.;
3779 cda5h = 0.;
3780 cMZ = 0.;
3781
3782 RelThError=0.;
3783 } else if (s==200.*200.) {
3784 X0 = 617.718;
3785 cMH = 0.;
3786 cmt = 0.;
3787 caS = 0.;
3788 caS2 = 0.;
3789 caSmt = 0.;
3790 cda5h = 0.;
3791 cMZ = 0.;
3792
3793 RelThError=0.;
3794 } else if (s==202.*202.) {
3795 X0 = 605.070;
3796 cMH = 0.;
3797 cmt = 0.;
3798 caS = 0.;
3799 caS2 = 0.;
3800 caSmt = 0.;
3801 cda5h = 0.;
3802 cMZ = 0.;
3803
3804 RelThError=0.;
3805 } else if (s==205.*205.) {
3806 X0 = 586.205;
3807 cMH = 0.;
3808 cmt = 0.;
3809 caS = 0.;
3810 caS2 = 0.;
3811 caSmt = 0.;
3812 cda5h = 0.;
3813 cMZ = 0.;
3814
3815 RelThError=0.;
3816 } else if (s==207.*207.) {
3817 X0 = 576.688;
3818 cMH = 0.;
3819 cmt = 0.;
3820 caS = 0.;
3821 caS2 = 0.;
3822 caSmt = 0.;
3823 cda5h = 0.;
3824 cMZ = 0.;
3825
3826 RelThError=0.;
3827 } else if ( s > 210.*210. ) {
3828 X0 = 0.;
3829 cMH = 0.;
3830 cmt = 0.;
3831 caS = 0.;
3832 caS2 = 0.;
3833 caSmt = 0.;
3834 cda5h = 0.;
3835 cMZ = 0.;
3836
3837 RelThError=0.;
3838 } else {
3839 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosEApprox()");
3840 }
3841 } else {
3842 throw std::runtime_error(" ERROR: wrong LEP2 angle in ApproximateFormulae::LEP2dsigmadcosEApprox()");
3843 }
3844
3845 return ((X0 + cMH * LH + cmt * Dt
3846 + caS * Das + caS2 * Das * Das
3847 + caSmt * Das * Dt + cda5h * Da5h + cMZ * DZ)*(1. + RelThError));
3848}
3849
3850
3851double EWSMApproximateFormulae::LEP2dsigmadcosMuApprox(const double s, const double cos) const
3852{
3853 double LH = log(mycache.getSM().getMHl() / 125.21);
3854 double Dt = pow(mycache.getSM().getMtpole() / 172.33, 2.0) - 1.0;
3855 double Das = mycache.getSM().getAlsMz() / 0.11802 - 1.0;
3856 double Da5h = mycache.getSM().Dalpha5hMz() / 0.027660 - 1.0;
3857 double DZ = mycache.getSM().getMz() / 91.1875 - 1.0;
3858
3859 double X0, cMH, cmt, caS, caS2, caSmt, cda5h, cMZ;
3860 double RelThError = 0.0; // (Relative) Theoretical uncertainty
3861
3862 if (cos == -0.9) {
3863 if (s==183.*183.) {
3864 X0 = 0.54368;
3865 cMH = -0.00075;
3866 cmt = -0.00478;
3867 caS = 0.00058;
3868 caS2 = 0.00228;
3869 caSmt = 0.00066;
3870 cda5h = 0.05418;
3871 cMZ = -2.11874;
3872
3873 RelThError=0.;
3874 } else if (s==189.*189.) {
3875 X0 = 0.52818;
3876 cMH = -0.00091;
3877 cmt = -0.00444;
3878 caS = 0.00054;
3879 caS2 = 0.00243;
3880 caSmt = 0.00064;
3881 cda5h = 0.05189;
3882 cMZ = -1.92273;
3883
3884 RelThError=0.;
3885 } else if (s==192.*192.) {
3886 X0 = 0.51995;
3887 cMH = -0.00101;
3888 cmt = -0.00429;
3889 caS = 0.00052;
3890 caS2 = 0.00292;
3891 caSmt = 0.00062;
3892 cda5h = 0.05077;
3893 cMZ = -1.84316;
3894
3895 RelThError=0.;
3896 } else if (s==196.*196.) {
3897 X0 = 0.50872;
3898 cMH = -0.00119;
3899 cmt = -0.00409;
3900 caS = 0.0005;
3901 caS2 = 0.00379;
3902 caSmt = 0.0006;
3903 cda5h = 0.04929;
3904 cMZ = -1.74475;
3905
3906 RelThError=0.;
3907 } else if (s==200.*200.) {
3908 X0 = 0.49731;
3909 cMH = -0.00147;
3910 cmt = -0.0039;
3911 caS = 0.00047;
3912 caS2 = 0.00573;
3913 caSmt = 0.0006;
3914 cda5h = 0.04785;
3915 cMZ = -1.65639;
3916
3917 RelThError=0.;
3918 } else if (s==202.*202.) {
3919 X0 = 0.49157;
3920 cMH = -0.00173;
3921 cmt = -0.00381;
3922 caS = 0.00047;
3923 caS2 = 0.00822;
3924 caSmt = 0.00064;
3925 cda5h = 0.04716;
3926 cMZ = -1.61013;
3927
3928 RelThError=0.;
3929 } else if (s==205.*205.) {
3930 X0 = 0.48296;
3931 cMH = -0.00217;
3932 cmt = -0.00367;
3933 caS = 0.00045;
3934 caS2 = 0.01183;
3935 caSmt = 0.00053;
3936 cda5h = 0.0461;
3937 cMZ = -1.54632;
3938
3939 RelThError=0.;
3940 } else if (s==207.*207.) {
3941 X0 = 0.47723;
3942 cMH = -0.00242;
3943 cmt = -0.00358;
3944 caS = 0.00043;
3945 caS2 = 0.01297;
3946 caSmt = 0.00048;
3947 cda5h = 0.04542;
3948 cMZ = -1.50565;
3949
3950 RelThError=0.;
3951 } else if ( s > 210.*210. ) {
3952 X0 = 0.;
3953 cMH = 0.;
3954 cmt = 0.;
3955 caS = 0.;
3956 caS2 = 0.;
3957 caSmt = 0.;
3958 cda5h = 0.;
3959 cMZ = 0.;
3960
3961 RelThError=0.;
3962 } else {
3963 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosMuApprox()");
3964 }
3965 } else if (cos == -0.7) {
3966 if (s==183.*183.) {
3967 X0 = 0.53031;
3968 cMH = -0.00062;
3969 cmt = -0.00298;
3970 caS = 0.00037;
3971 caS2 = 0.00144;
3972 caSmt = 0.00047;
3973 cda5h = 0.0463;
3974 cMZ = -1.45378;
3975
3976 RelThError=0.;
3977 } else if (s==189.*189.) {
3978 X0 = 0.51026;
3979 cMH = -0.00073;
3980 cmt = -0.0028;
3981 caS = 0.00034;
3982 caS2 = 0.00167;
3983 caSmt = 0.00045;
3984 cda5h = 0.0443;
3985 cMZ = -1.32675;
3986
3987 RelThError=0.;
3988 } else if (s==192.*192.) {
3989 X0 = 0.50023;
3990 cMH = -0.0008;
3991 cmt = -0.00273;
3992 caS = 0.00033;
3993 caS2 = 0.00209;
3994 caSmt = 0.00044;
3995 cda5h = 0.04333;
3996 cMZ = -1.27688;
3997
3998 RelThError=0.;
3999 } else if (s==196.*196.) {
4000 X0 = 0.48699;
4001 cMH = -0.00093;
4002 cmt = -0.00262;
4003 caS = 0.00032;
4004 caS2 = 0.00277;
4005 caSmt = 0.00043;
4006 cda5h = 0.04206;
4007 cMZ = -1.21449;
4008
4009 RelThError=0.;
4010 } else if (s==200.*200.) {
4011 X0 = 0.47396;
4012 cMH = -0.00114;
4013 cmt = -0.00252;
4014 caS = 0.00031;
4015 caS2 = 0.00401;
4016 caSmt = 0.00043;
4017 cda5h = 0.04082;
4018 cMZ = -1.15471;
4019
4020 RelThError=0.;
4021 } else if (s==202.*202.) {
4022 X0 = 0.46753;
4023 cMH = -0.00133;
4024 cmt = -0.00247;
4025 caS = 0.00031;
4026 caS2 = 0.00578;
4027 caSmt = 0.00046;
4028 cda5h = 0.04021;
4029 cMZ = -1.12776;
4030
4031 RelThError=0.;
4032 } else if (s==205.*205.) {
4033 X0 = 0.45803;
4034 cMH = -0.00165;
4035 cmt = -0.00239;
4036 caS = 0.0003;
4037 caS2 = 0.00861;
4038 caSmt = 0.00038;
4039 cda5h = 0.03931;
4040 cMZ = -1.08596;
4041
4042 RelThError=0.;
4043 } else if (s==207.*207.) {
4044 X0 = 0.45178;
4045 cMH = -0.00183;
4046 cmt = -0.00233;
4047 caS = 0.00029;
4048 caS2 = 0.00941;
4049 caSmt = 0.00034;
4050 cda5h = 0.03872;
4051 cMZ = -1.05883;
4052
4053 RelThError=0.;
4054 } else if ( s > 210.*210. ) {
4055 X0 = 0.;
4056 cMH = 0.;
4057 cmt = 0.;
4058 caS = 0.;
4059 caS2 = 0.;
4060 caSmt = 0.;
4061 cda5h = 0.;
4062 cMZ = 0.;
4063
4064 RelThError=0.;
4065 } else {
4066 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosMuApprox()");
4067 }
4068 } else if (cos == -0.5) {
4069 if (s==183.*183.) {
4070 X0 = 0.62201;
4071 cMH = -0.00052;
4072 cmt = -0.0005;
4073 caS = 0.00007;
4074 caS2 = 0.00026;
4075 caSmt = 0.00021;
4076 cda5h = 0.04271;
4077 cMZ = -0.61391;
4078
4079 RelThError=0.;
4080 } else if (s==189.*189.) {
4081 X0 = 0.58984;
4082 cMH = -0.00057;
4083 cmt = -0.00057;
4084 caS = 0.00008;
4085 caS2 = 0.00052;
4086 caSmt = 0.00021;
4087 cda5h = 0.04078;
4088 cMZ = -0.58262;
4089
4090 RelThError=0.;
4091 } else if (s==192.*192.) {
4092 X0 = 0.57451;
4093 cMH = -0.0006;
4094 cmt = -0.0006;
4095 caS = 0.00009;
4096 caS2 = 0.00089;
4097 caSmt = 0.00021;
4098 cda5h = 0.03985;
4099 cMZ = -0.57242;
4100
4101 RelThError=0.;
4102 } else if (s==196.*196.) {
4103 X0 = 0.55493;
4104 cMH = -0.00067;
4105 cmt = -0.00064;
4106 caS = 0.00009;
4107 caS2 = 0.00129;
4108 caSmt = 0.00021;
4109 cda5h = 0.03864;
4110 cMZ = -0.55838;
4111
4112 RelThError=0.;
4113 } else if (s==200.*200.) {
4114 X0 = 0.53626;
4115 cMH = -0.00079;
4116 cmt = -0.00065;
4117 caS = 0.0001;
4118 caS2 = 0.00195;
4119 caSmt = 0.00022;
4120 cda5h = 0.03747;
4121 cMZ = -0.54135;
4122
4123 RelThError=0.;
4124 } else if (s==202.*202.) {
4125 X0 = 0.52725;
4126 cMH = -0.0009;
4127 cmt = -0.00066;
4128 caS = 0.0001;
4129 caS2 = 0.00315;
4130 caSmt = 0.00024;
4131 cda5h = 0.03689;
4132 cMZ = -0.5338;
4133
4134 RelThError=0.;
4135 } else if (s==205.*205.) {
4136 X0 = 0.51412;
4137 cMH = -0.00109;
4138 cmt = -0.00066;
4139 caS = 0.0001;
4140 caS2 = 0.00493;
4141 caSmt = 0.00019;
4142 cda5h = 0.03604;
4143 cMZ = -0.52007;
4144
4145 RelThError=0.;
4146 } else if (s==207.*207.) {
4147 X0 = 0.50563;
4148 cMH = -0.00121;
4149 cmt = -0.00065;
4150 caS = 0.0001;
4151 caS2 = 0.0053;
4152 caSmt = 0.00017;
4153 cda5h = 0.03549;
4154 cMZ = -0.51107;
4155
4156 RelThError=0.;
4157 } else if ( s > 210.*210. ) {
4158 X0 = 0.;
4159 cMH = 0.;
4160 cmt = 0.;
4161 caS = 0.;
4162 caS2 = 0.;
4163 caSmt = 0.;
4164 cda5h = 0.;
4165 cMZ = 0.;
4166
4167 RelThError=0.;
4168 } else {
4169 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosMuApprox()");
4170 }
4171 } else if (cos == -0.3) {
4172 if (s==183.*183.) {
4173 X0 = 0.81689;
4174 cMH = -0.00043;
4175 cmt = 0.00252;
4176 caS = -0.00029;
4177 caS2 = -0.001;
4178 caSmt = -0.0001;
4179 cda5h = 0.04345;
4180 cMZ = 0.36516;
4181
4182 RelThError=0.;
4183 } else if (s==189.*189.) {
4184 X0 = 0.76532;
4185 cMH = -0.00041;
4186 cmt = 0.00218;
4187 caS = -0.00024;
4188 caS2 = -0.00082;
4189 caSmt = -0.00007;
4190 cda5h = 0.04131;
4191 cMZ = 0.29629;
4192
4193 RelThError=0.;
4194 } else if (s==192.*192.) {
4195 X0 = 0.74138;
4196 cMH = -0.00041;
4197 cmt = 0.00201;
4198 caS = -0.00022;
4199 caS2 = -0.00064;
4200 caSmt = -0.00006;
4201 cda5h = 0.04031;
4202 cMZ = 0.25982;
4203
4204 RelThError=0.;
4205 } else if (s==196.*196.) {
4206 X0 = 0.71128;
4207 cMH = -0.00041;
4208 cmt = 0.00182;
4209 caS = -0.00019;
4210 caS2 = -0.0006;
4211 caSmt = -0.00005;
4212 cda5h = 0.03901;
4213 cMZ = 0.21779;
4214
4215 RelThError=0.;
4216 } else if (s==200.*200.) {
4217 X0 = 0.68308;
4218 cMH = -0.00042;
4219 cmt = 0.00166;
4220 caS = -0.00017;
4221 caS2 = -0.0004;
4222 caSmt = -0.00003;
4223 cda5h = 0.03776;
4224 cMZ = 0.18283;
4225
4226 RelThError=0.;
4227 } else if (s==202.*202.) {
4228 X0 = 0.66965;
4229 cMH = -0.00045;
4230 cmt = 0.00159;
4231 caS = -0.00016;
4232 caS2 = -0.00018;
4233 caSmt = -0.00002;
4234 cda5h = 0.03715;
4235 cMZ = 0.16659;
4236
4237 RelThError=0.;
4238 } else if (s==205.*205.) {
4239 X0 = 0.65025;
4240 cMH = -0.0005;
4241 cmt = 0.00149;
4242 caS = -0.00014;
4243 caS2 = 0.00042;
4244 caSmt = -0.00003;
4245 cda5h = 0.03625;
4246 cMZ = 0.1469;
4247
4248 RelThError=0.;
4249 } else if (s==207.*207.) {
4250 X0 = 0.63781;
4251 cMH = -0.00053;
4252 cmt = 0.00143;
4253 caS = -0.00013;
4254 caS2 = 0.00059;
4255 caSmt = -0.00003;
4256 cda5h = 0.03567;
4257 cMZ = 0.13452;
4258
4259 RelThError=0.;
4260 } else if ( s > 210.*210. ) {
4261 X0 = 0.;
4262 cMH = 0.;
4263 cmt = 0.;
4264 caS = 0.;
4265 caS2 = 0.;
4266 caSmt = 0.;
4267 cda5h = 0.;
4268 cMZ = 0.;
4269
4270 RelThError=0.;
4271 } else {
4272 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosMuApprox()");
4273 }
4274 } else if (cos == -0.1) {
4275 if (s==183.*183.) {
4276 X0 = 1.11359;
4277 cMH = -0.00036;
4278 cmt = 0.006;
4279 caS = -0.0007;
4280 caS2 = -0.00223;
4281 caSmt = -0.00045;
4282 cda5h = 0.0485;
4283 cMZ = 1.47789;
4284
4285 RelThError=0.;
4286 } else if (s==189.*189.) {
4287 X0 = 1.03573;
4288 cMH = -0.00026;
4289 cmt = 0.00537;
4290 caS = -0.00061;
4291 caS2 = -0.00257;
4292 caSmt = -0.00039;
4293 cda5h = 0.04591;
4294 cMZ = 1.29546;
4295
4296 RelThError=0.;
4297 } else if (s==192.*192.) {
4298 X0 = 0.99998;
4299 cMH = -0.00021;
4300 cmt = 0.00506;
4301 caS = -0.00057;
4302 caS2 = -0.00249;
4303 caSmt = -0.00037;
4304 cda5h = 0.04471;
4305 cMZ = 1.20711;
4306
4307 RelThError=0.;
4308 } else if (s==196.*196.) {
4309 X0 = 0.95536;
4310 cMH = -0.00013;
4311 cmt = 0.00469;
4312 caS = -0.00052;
4313 caS2 = -0.00281;
4314 caSmt = -0.00034;
4315 cda5h = 0.04317;
4316 cMZ = 1.10438;
4317
4318 RelThError=0.;
4319 } else if (s==200.*200.) {
4320 X0 = 0.9139;
4321 cMH = -0.00004;
4322 cmt = 0.00437;
4323 caS = -0.00047;
4324 caS2 = -0.00322;
4325 caSmt = -0.00032;
4326 cda5h = 0.04169;
4327 cMZ = 1.01023;
4328
4329 RelThError=0.;
4330 } else if (s==202.*202.) {
4331 X0 = 0.89425;
4332 cMH = 0.00003;
4333 cmt = 0.00423;
4334 caS = -0.00045;
4335 caS2 = -0.00369;
4336 caSmt = -0.00032;
4337 cda5h = 0.04097;
4338 cMZ = 0.97678;
4339
4340 RelThError=0.;
4341 } else if (s==205.*205.) {
4342 X0 = 0.86602;
4343 cMH = 0.00014;
4344 cmt = 0.00403;
4345 caS = -0.00043;
4346 caS2 = -0.00478;
4347 caSmt = -0.00028;
4348 cda5h = 0.03993;
4349 cMZ = 0.91038;
4350
4351 RelThError=0.;
4352 } else if (s==207.*207.) {
4353 X0 = 0.84799;
4354 cMH = 0.00019;
4355 cmt = 0.0039;
4356 caS = -0.00041;
4357 caS2 = -0.00476;
4358 caSmt = -0.00026;
4359 cda5h = 0.03926;
4360 cMZ = 0.87424;
4361
4362 RelThError=0.;
4363 } else if ( s > 210.*210. ) {
4364 X0 = 0.;
4365 cMH = 0.;
4366 cmt = 0.;
4367 caS = 0.;
4368 caS2 = 0.;
4369 caSmt = 0.;
4370 cda5h = 0.;
4371 cMZ = 0.;
4372
4373 RelThError=0.;
4374 } else {
4375 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosMuApprox()");
4376 }
4377 } else if (cos == 0.1) {
4378 if (s==183.*183.) {
4379 X0 = 1.51117;
4380 cMH = -0.00029;
4381 cmt = 0.00983;
4382 caS = -0.00115;
4383 caS2 = -0.00368;
4384 caSmt = -0.00084;
4385 cda5h = 0.05798;
4386 cMZ = 2.70087;
4387
4388 RelThError=0.;
4389 } else if (s==189.*189.) {
4390 X0 = 1.40046;
4391 cMH = -0.00011;
4392 cmt = 0.00888;
4393 caS = -0.00102;
4394 caS2 = -0.00426;
4395 caSmt = -0.00077;
4396 cda5h = 0.05465;
4397 cMZ = 2.39683;
4398
4399 RelThError=0.;
4400 } else if (s==192.*192.) {
4401 X0 = 1.34988;
4402 cMH = 0.;
4403 cmt = 0.00845;
4404 caS = -0.00096;
4405 caS2 = -0.0045;
4406 caSmt = -0.00072;
4407 cda5h = 0.05311;
4408 cMZ = 2.2546;
4409
4410 RelThError=0.;
4411 } else if (s==196.*196.) {
4412 X0 = 1.28693;
4413 cMH = 0.00015;
4414 cmt = 0.00792;
4415 caS = -0.00088;
4416 caS2 = -0.00527;
4417 caSmt = -0.00067;
4418 cda5h = 0.05116;
4419 cMZ = 2.08349;
4420
4421 RelThError=0.;
4422 } else if (s==200.*200.) {
4423 X0 = 1.22861;
4424 cMH = 0.00037;
4425 cmt = 0.00744;
4426 caS = -0.00082;
4427 caS2 = -0.00655;
4428 caSmt = -0.00064;
4429 cda5h = 0.0493;
4430 cMZ = 1.93092;
4431
4432 RelThError=0.;
4433 } else if (s==202.*202.) {
4434 X0 = 1.20104;
4435 cMH = 0.00055;
4436 cmt = 0.00722;
4437 caS = -0.00079;
4438 caS2 = -0.00816;
4439 caSmt = -0.00065;
4440 cda5h = 0.0484;
4441 cMZ = 1.85652;
4442
4443 RelThError=0.;
4444 } else if (s==205.*205.) {
4445 X0 = 1.16149;
4446 cMH = 0.00082;
4447 cmt = 0.00692;
4448 caS = -0.00075;
4449 caS2 = -0.01023;
4450 caSmt = -0.00056;
4451 cda5h = 0.0471;
4452 cMZ = 1.76334;
4453
4454 RelThError=0.;
4455 } else if (s==207.*207.) {
4456 X0 = 1.13628;
4457 cMH = 0.00097;
4458 cmt = 0.00673;
4459 caS = -0.00072;
4460 caS2 = -0.01077;
4461 caSmt = -0.00051;
4462 cda5h = 0.04626;
4463 cMZ = 1.70151;
4464
4465 RelThError=0.;
4466 } else if ( s > 210.*210. ) {
4467 X0 = 0.;
4468 cMH = 0.;
4469 cmt = 0.;
4470 caS = 0.;
4471 caS2 = 0.;
4472 caSmt = 0.;
4473 cda5h = 0.;
4474 cMZ = 0.;
4475
4476 RelThError=0.;
4477 } else {
4478 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosMuApprox()");
4479 }
4480 } else if (cos == 0.3) {
4481 if (s==183.*183.) {
4482 X0 = 2.00874;
4483 cMH = -0.00019;
4484 cmt = 0.01384;
4485 caS = -0.00161;
4486 caS2 = -0.00543;
4487 caSmt = -0.00127;
4488 cda5h = 0.07202;
4489 cMZ = 4.0104;
4490
4491 RelThError=0.;
4492 } else if (s==189.*189.) {
4493 X0 = 1.85905;
4494 cMH = 0.00007;
4495 cmt = 0.01262;
4496 caS = -0.00144;
4497 caS2 = -0.00586;
4498 caSmt = -0.00115;
4499 cda5h = 0.06765;
4500 cMZ = 3.57466;
4501
4502 RelThError=0.;
4503 } else if (s==192.*192.) {
4504 X0 = 1.79081;
4505 cMH = 0.00023;
4506 cmt = 0.01207;
4507 caS = -0.00137;
4508 caS2 = -0.00678;
4509 caSmt = -0.0011;
4510 cda5h = 0.06563;
4511 cMZ = 3.37965;
4512
4513 RelThError=0.;
4514 } else if (s==196.*196.) {
4515 X0 = 1.70593;
4516 cMH = 0.00047;
4517 cmt = 0.0114;
4518 caS = -0.00128;
4519 caS2 = -0.00787;
4520 caSmt = -0.00103;
4521 cda5h = 0.06307;
4522 cMZ = 3.14279;
4523
4524 RelThError=0.;
4525 } else if (s==200.*200.) {
4526 X0 = 1.62735;
4527 cMH = 0.00081;
4528 cmt = 0.01079;
4529 caS = -0.00119;
4530 caS2 = -0.01009;
4531 caSmt = -0.00099;
4532 cda5h = 0.06065;
4533 cMZ = 2.93036;
4534
4535 RelThError=0.;
4536 } else if (s==202.*202.) {
4537 X0 = 1.59021;
4538 cMH = 0.0011;
4539 cmt = 0.0105;
4540 caS = -0.00116;
4541 caS2 = -0.01266;
4542 caSmt = -0.00102;
4543 cda5h = 0.05949;
4544 cMZ = 2.83227;
4545
4546 RelThError=0.;
4547 } else if (s==205.*205.) {
4548 X0 = 1.53699;
4549 cMH = 0.00155;
4550 cmt = 0.01011;
4551 caS = -0.0011;
4552 caS2 = -0.01645;
4553 caSmt = -0.00087;
4554 cda5h = 0.05782;
4555 cMZ = 2.69386;
4556
4557 RelThError=0.;
4558 } else if (s==207.*207.) {
4559 X0 = 1.50307;
4560 cMH = 0.00181;
4561 cmt = 0.00986;
4562 caS = -0.00106;
4563 caS2 = -0.01724;
4564 caSmt = -0.0008;
4565 cda5h = 0.05675;
4566 cMZ = 2.60621;
4567
4568 RelThError=0.;
4569 } else if ( s > 210.*210. ) {
4570 X0 = 0.;
4571 cMH = 0.;
4572 cmt = 0.;
4573 caS = 0.;
4574 caS2 = 0.;
4575 caSmt = 0.;
4576 cda5h = 0.;
4577 cMZ = 0.;
4578
4579 RelThError=0.;
4580 } else {
4581 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosMuApprox()");
4582 }
4583 } else if (cos == 0.5) {
4584 if (s==183.*183.) {
4585 X0 = 2.60506;
4586 cMH = -0.00005;
4587 cmt = 0.01783;
4588 caS = -0.00207;
4589 caS2 = -0.00712;
4590 caSmt = -0.00174;
4591 cda5h = 0.09082;
4592 cMZ = 5.36739;
4593
4594 RelThError=0.;
4595 } else if (s==189.*189.) {
4596 X0 = 2.4107;
4597 cMH = 0.00029;
4598 cmt = 0.0164;
4599 caS = -0.00187;
4600 caS2 = -0.00842;
4601 caSmt = -0.00157;
4602 cda5h = 0.08507;
4603 cMZ = 4.80013;
4604
4605 RelThError=0.;
4606 } else if (s==192.*192.) {
4607 X0 = 2.32219;
4608 cMH = 0.00049;
4609 cmt = 0.01577;
4610 caS = -0.00178;
4611 caS2 = -0.0091;
4612 caSmt = -0.0015;
4613 cda5h = 0.08241;
4614 cMZ = 4.55275;
4615
4616 RelThError=0.;
4617 } else if (s==196.*196.) {
4618 X0 = 2.21207;
4619 cMH = 0.00082;
4620 cmt = 0.015;
4621 caS = -0.00168;
4622 caS2 = -0.01084;
4623 caSmt = -0.00143;
4624 cda5h = 0.07905;
4625 cMZ = 4.25372;
4626
4627 RelThError=0.;
4628 } else if (s==200.*200.) {
4629 X0 = 2.11008;
4630 cMH = 0.00129;
4631 cmt = 0.01429;
4632 caS = -0.00158;
4633 caS2 = -0.01405;
4634 caSmt = -0.00138;
4635 cda5h = 0.0759;
4636 cMZ = 3.98442;
4637
4638 RelThError=0.;
4639 } else if (s==202.*202.) {
4640 X0 = 2.06187;
4641 cMH = 0.00171;
4642 cmt = 0.01395;
4643 caS = -0.00154;
4644 caS2 = -0.01768;
4645 caSmt = -0.00142;
4646 cda5h = 0.07438;
4647 cMZ = 3.86054;
4648
4649 RelThError=0.;
4650 } else if (s==205.*205.) {
4651 X0 = 1.99276;
4652 cMH = 0.00235;
4653 cmt = 0.01348;
4654 caS = -0.00147;
4655 caS2 = -0.02322;
4656 caSmt = -0.0012;
4657 cda5h = 0.07222;
4658 cMZ = 3.68182;
4659
4660 RelThError=0.;
4661 } else if (s==207.*207.) {
4662 X0 = 1.94871;
4663 cMH = 0.00271;
4664 cmt = 0.01318;
4665 caS = -0.00142;
4666 caS2 = -0.02446;
4667 caSmt = -0.00111;
4668 cda5h = 0.07083;
4669 cMZ = 3.56935;
4670
4671 RelThError=0.;
4672 } else if ( s > 210.*210. ) {
4673 X0 = 0.;
4674 cMH = 0.;
4675 cmt = 0.;
4676 caS = 0.;
4677 caS2 = 0.;
4678 caSmt = 0.;
4679 cda5h = 0.;
4680 cMZ = 0.;
4681
4682 RelThError=0.;
4683 } else {
4684 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosMuApprox()");
4685 }
4686 } else if (cos == 0.7) {
4687 if (s==183.*183.) {
4688 X0 = 3.2975;
4689 cMH = 0.00015;
4690 cmt = 0.02156;
4691 caS = -0.00248;
4692 caS2 = -0.00902;
4693 caSmt = -0.00222;
4694 cda5h = 0.1146;
4695 cMZ = 6.73753;
4696
4697 RelThError=0.;
4698 } else if (s==189.*189.) {
4699 X0 = 3.05318;
4700 cMH = 0.00058;
4701 cmt = 0.01994;
4702 caS = -0.00226;
4703 caS2 = -0.01062;
4704 caSmt = -0.00202;
4705 cda5h = 0.10719;
4706 cMZ = 6.02414;
4707
4708 RelThError=0.;
4709 } else if (s==192.*192.) {
4710 X0 = 2.94203;
4711 cMH = 0.00083;
4712 cmt = 0.01928;
4713 caS = -0.00217;
4714 caS2 = -0.01171;
4715 caSmt = -0.00194;
4716 cda5h = 0.10372;
4717 cMZ = 5.73004;
4718
4719 RelThError=0.;
4720 } else if (s==196.*196.) {
4721 X0 = 2.80369;
4722 cMH = 0.00124;
4723 cmt = 0.01846;
4724 caS = -0.00206;
4725 caS2 = -0.01397;
4726 caSmt = -0.00184;
4727 cda5h = 0.09936;
4728 cMZ = 5.36828;
4729
4730 RelThError=0.;
4731 } else if (s==200.*200.) {
4732 X0 = 2.67548;
4733 cMH = 0.00185;
4734 cmt = 0.0177;
4735 caS = -0.00195;
4736 caS2 = -0.01809;
4737 caSmt = -0.00178;
4738 cda5h = 0.09527;
4739 cMZ = 5.05107;
4740
4741 RelThError=0.;
4742 } else if (s==202.*202.) {
4743 X0 = 2.61485;
4744 cMH = 0.00239;
4745 cmt = 0.01734;
4746 caS = -0.00191;
4747 caS2 = -0.02309;
4748 caSmt = -0.00184;
4749 cda5h = 0.09331;
4750 cMZ = 4.90422;
4751
4752 RelThError=0.;
4753 } else if (s==205.*205.) {
4754 X0 = 2.52791;
4755 cMH = 0.00324;
4756 cmt = 0.01683;
4757 caS = -0.00183;
4758 caS2 = -0.03036;
4759 caSmt = -0.00156;
4760 cda5h = 0.09052;
4761 cMZ = 4.68825;
4762
4763 RelThError=0.;
4764 } else if (s==207.*207.) {
4765 X0 = 2.47247;
4766 cMH = 0.00371;
4767 cmt = 0.01649;
4768 caS = -0.00178;
4769 caS2 = -0.03185;
4770 caSmt = -0.00145;
4771 cda5h = 0.08873;
4772 cMZ = 4.54935;
4773
4774 RelThError=0.;
4775 } else if ( s > 210.*210. ) {
4776 X0 = 0.;
4777 cMH = 0.;
4778 cmt = 0.;
4779 caS = 0.;
4780 caS2 = 0.;
4781 caSmt = 0.;
4782 cda5h = 0.;
4783 cMZ = 0.;
4784
4785 RelThError=0.;
4786 } else {
4787 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosMuApprox()");
4788 }
4789 } else if (cos == 0.9) {
4790 if (s==183.*183.) {
4791 X0 = 4.07822;
4792 cMH = 0.00045;
4793 cmt = 0.02469;
4794 caS = -0.00282;
4795 caS2 = -0.01085;
4796 caSmt = -0.00272;
4797 cda5h = 0.14368;
4798 cMZ = 8.06958;
4799
4800 RelThError=0.;
4801 } else if (s==189.*189.) {
4802 X0 = 3.77861;
4803 cMH = 0.00096;
4804 cmt = 0.02288;
4805 caS = -0.00257;
4806 caS2 = -0.01262;
4807 caSmt = -0.00249;
4808 cda5h = 0.13433;
4809 cMZ = 7.18705;
4810
4811 RelThError=0.;
4812 } else if (s==192.*192.) {
4813 X0 = 3.64255;
4814 cMH = 0.00126;
4815 cmt = 0.02219;
4816 caS = -0.00248;
4817 caS2 = -0.01421;
4818 caSmt = -0.00237;
4819 cda5h = 0.12991;
4820 cMZ = 6.84395;
4821
4822 RelThError=0.;
4823 } else if (s==196.*196.) {
4824 X0 = 3.47319;
4825 cMH = 0.00176;
4826 cmt = 0.02135;
4827 caS = -0.00236;
4828 caS2 = -0.01705;
4829 caSmt = -0.00226;
4830 cda5h = 0.12436;
4831 cMZ = 6.43185;
4832
4833 RelThError=0.;
4834 } else if (s==200.*200.) {
4835 X0 = 3.31624;
4836 cMH = 0.00251;
4837 cmt = 0.02057;
4838 caS = -0.00225;
4839 caS2 = -0.02239;
4840 caSmt = -0.00219;
4841 cda5h = 0.11916;
4842 cMZ = 6.05556;
4843
4844 RelThError=0.;
4845 } else if (s==202.*202.) {
4846 X0 = 3.24201;
4847 cMH = 0.00318;
4848 cmt = 0.0202;
4849 caS = -0.00221;
4850 caS2 = -0.02869;
4851 caSmt = -0.00227;
4852 cda5h = 0.11666;
4853 cMZ = 5.88764;
4854
4855 RelThError=0.;
4856 } else if (s==205.*205.) {
4857 X0 = 3.13556;
4858 cMH = 0.00424;
4859 cmt = 0.01968;
4860 caS = -0.00213;
4861 caS2 = -0.03786;
4862 caSmt = -0.00193;
4863 cda5h = 0.11312;
4864 cMZ = 5.63146;
4865
4866 RelThError=0.;
4867 } else if (s==207.*207.) {
4868 X0 = 3.06767;
4869 cMH = 0.00483;
4870 cmt = 0.01935;
4871 caS = -0.00208;
4872 caS2 = -0.04023;
4873 caSmt = -0.00178;
4874 cda5h = 0.11084;
4875 cMZ = 5.47704;
4876
4877 RelThError=0.;
4878 } else if ( s > 210.*210. ) {
4879 X0 = 0.;
4880 cMH = 0.;
4881 cmt = 0.;
4882 caS = 0.;
4883 caS2 = 0.;
4884 caSmt = 0.;
4885 cda5h = 0.;
4886 cMZ = 0.;
4887
4888 RelThError=0.;
4889 } else {
4890 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosMuApprox()");
4891 }
4892 } else {
4893 throw std::runtime_error(" ERROR: wrong LEP2 angle in ApproximateFormulae::LEP2dsigmadcosMuApprox()");
4894 }
4895
4896 return ((X0 + cMH * LH + cmt * Dt
4897 + caS * Das + caS2 * Das * Das
4898 + caSmt * Das * Dt + cda5h * Da5h + cMZ * DZ)*(1. + RelThError));
4899}
4900
4901
4902double EWSMApproximateFormulae::LEP2dsigmadcosTauApprox(const double s, const double cos) const
4903{
4904 double LH = log(mycache.getSM().getMHl() / 125.21);
4905 double Dt = pow(mycache.getSM().getMtpole() / 172.33, 2.0) - 1.0;
4906 double Das = mycache.getSM().getAlsMz() / 0.11802 - 1.0;
4907 double Da5h = mycache.getSM().Dalpha5hMz() / 0.027660 - 1.0;
4908 double DZ = mycache.getSM().getMz() / 91.1875 - 1.0;
4909
4910 double X0, cMH, cmt, caS, caS2, caSmt, cda5h, cMZ;
4911 double RelThError = 0.0; // (Relative) Theoretical uncertainty
4912
4913 if (cos == -0.9) {
4914 if (s==183.*183.) {
4915 X0 = 0.54414;
4916 cMH = -0.00075;
4917 cmt = -0.00477;
4918 caS = 0.00058;
4919 caS2 = 0.00221;
4920 caSmt = 0.00066;
4921 cda5h = 0.0542;
4922 cMZ = -2.11814;
4923
4924 RelThError=0.;
4925 } else if (s==189.*189.) {
4926 X0 = 0.52857;
4927 cMH = -0.00091;
4928 cmt = -0.00443;
4929 caS = 0.00054;
4930 caS2 = 0.00233;
4931 caSmt = 0.00063;
4932 cda5h = 0.05191;
4933 cMZ = -1.92202;
4934
4935 RelThError=0.;
4936 } else if (s==192.*192.) {
4937 X0 = 0.52032;
4938 cMH = -0.00101;
4939 cmt = -0.00428;
4940 caS = 0.00052;
4941 caS2 = 0.00287;
4942 caSmt = 0.00062;
4943 cda5h = 0.05078;
4944 cMZ = -1.84247;
4945
4946 RelThError=0.;
4947 } else if (s==196.*196.) {
4948 X0 = 0.50905;
4949 cMH = -0.00119;
4950 cmt = -0.00409;
4951 caS = 0.0005;
4952 caS2 = 0.00394;
4953 caSmt = 0.0006;
4954 cda5h = 0.04931;
4955 cMZ = -1.74413;
4956
4957 RelThError=0.;
4958 } else if (s==200.*200.) {
4959 X0 = 0.49761;
4960 cMH = -0.00147;
4961 cmt = -0.0039;
4962 caS = 0.00047;
4963 caS2 = 0.00568;
4964 caSmt = 0.0006;
4965 cda5h = 0.04786;
4966 cMZ = -1.65654;
4967
4968 RelThError=0.;
4969 } else if (s==202.*202.) {
4970 X0 = 0.49187;
4971 cMH = -0.00173;
4972 cmt = -0.00381;
4973 caS = 0.00047;
4974 caS2 = 0.00814;
4975 caSmt = 0.00064;
4976 cda5h = 0.04717;
4977 cMZ = -1.60964;
4978
4979 RelThError=0.;
4980 } else if (s==205.*205.) {
4981 X0 = 0.48323;
4982 cMH = -0.00217;
4983 cmt = -0.00367;
4984 caS = 0.00045;
4985 caS2 = 0.0119;
4986 caSmt = 0.00053;
4987 cda5h = 0.04611;
4988 cMZ = -1.54583;
4989
4990 RelThError=0.;
4991 } else if (s==207.*207.) {
4992 X0 = 0.47749;
4993 cMH = -0.00242;
4994 cmt = -0.00358;
4995 caS = 0.00043;
4996 caS2 = 0.01316;
4997 caSmt = 0.00048;
4998 cda5h = 0.04543;
4999 cMZ = -1.50516;
5000
5001 RelThError=0.;
5002 } else if ( s > 210.*210. ) {
5003 X0 = 0.;
5004 cMH = 0.;
5005 cmt = 0.;
5006 caS = 0.;
5007 caS2 = 0.;
5008 caSmt = 0.;
5009 cda5h = 0.;
5010 cMZ = 0.;
5011
5012 RelThError=0.;
5013 } else {
5014 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosTauApprox()");
5015 }
5016 } else if (cos == -0.7) {
5017 if (s==183.*183.) {
5018 X0 = 0.53065;
5019 cMH = -0.00062;
5020 cmt = -0.00297;
5021 caS = 0.00037;
5022 caS2 = 0.00131;
5023 caSmt = 0.00047;
5024 cda5h = 0.04632;
5025 cMZ = -1.45322;
5026
5027 RelThError=0.;
5028 } else if (s==189.*189.) {
5029 X0 = 0.51056;
5030 cMH = -0.00073;
5031 cmt = -0.0028;
5032 caS = 0.00034;
5033 caS2 = 0.00173;
5034 caSmt = 0.00045;
5035 cda5h = 0.04432;
5036 cMZ = -1.32623;
5037
5038 RelThError=0.;
5039 } else if (s==192.*192.) {
5040 X0 = 0.50051;
5041 cMH = -0.0008;
5042 cmt = -0.00272;
5043 caS = 0.00033;
5044 caS2 = 0.00193;
5045 caSmt = 0.00044;
5046 cda5h = 0.04334;
5047 cMZ = -1.27647;
5048
5049 RelThError=0.;
5050 } else if (s==196.*196.) {
5051 X0 = 0.48724;
5052 cMH = -0.00093;
5053 cmt = -0.00262;
5054 caS = 0.00032;
5055 caS2 = 0.00264;
5056 caSmt = 0.00043;
5057 cda5h = 0.04207;
5058 cMZ = -1.21412;
5059
5060 RelThError=0.;
5061 } else if (s==200.*200.) {
5062 X0 = 0.47419;
5063 cMH = -0.00114;
5064 cmt = -0.00252;
5065 caS = 0.00031;
5066 caS2 = 0.00405;
5067 caSmt = 0.00043;
5068 cda5h = 0.04083;
5069 cMZ = -1.15432;
5070
5071 RelThError=0.;
5072 } else if (s==202.*202.) {
5073 X0 = 0.46775;
5074 cMH = -0.00133;
5075 cmt = -0.00246;
5076 caS = 0.00031;
5077 caS2 = 0.00587;
5078 caSmt = 0.00046;
5079 cda5h = 0.04022;
5080 cMZ = -1.12739;
5081
5082 RelThError=0.;
5083 } else if (s==205.*205.) {
5084 X0 = 0.45823;
5085 cMH = -0.00165;
5086 cmt = -0.00238;
5087 caS = 0.0003;
5088 caS2 = 0.00876;
5089 caSmt = 0.00038;
5090 cda5h = 0.03932;
5091 cMZ = -1.08559;
5092
5093 RelThError=0.;
5094 } else if (s==207.*207.) {
5095 X0 = 0.45198;
5096 cMH = -0.00183;
5097 cmt = -0.00233;
5098 caS = 0.00029;
5099 caS2 = 0.00942;
5100 caSmt = 0.00034;
5101 cda5h = 0.03873;
5102 cMZ = -1.05852;
5103
5104 RelThError=0.;
5105 } else if ( s > 210.*210. ) {
5106 X0 = 0.;
5107 cMH = 0.;
5108 cmt = 0.;
5109 caS = 0.;
5110 caS2 = 0.;
5111 caSmt = 0.;
5112 cda5h = 0.;
5113 cMZ = 0.;
5114
5115 RelThError=0.;
5116 } else {
5117 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosTauApprox()");
5118 }
5119 } else if (cos == -0.5) {
5120 if (s==183.*183.) {
5121 X0 = 0.62223;
5122 cMH = -0.00052;
5123 cmt = -0.0005;
5124 caS = 0.00007;
5125 caS2 = 0.00005;
5126 caSmt = 0.00021;
5127 cda5h = 0.04272;
5128 cMZ = -0.61055;
5129
5130 RelThError=0.;
5131 } else if (s==189.*189.) {
5132 X0 = 0.59003;
5133 cMH = -0.00057;
5134 cmt = -0.00057;
5135 caS = 0.00008;
5136 caS2 = 0.00042;
5137 caSmt = 0.00021;
5138 cda5h = 0.04079;
5139 cMZ = -0.58242;
5140
5141 RelThError=0.;
5142 } else if (s==192.*192.) {
5143 X0 = 0.57469;
5144 cMH = -0.0006;
5145 cmt = -0.0006;
5146 caS = 0.00009;
5147 caS2 = 0.00074;
5148 caSmt = 0.00021;
5149 cda5h = 0.03986;
5150 cMZ = -0.57227;
5151
5152 RelThError=0.;
5153 } else if (s==196.*196.) {
5154 X0 = 0.55509;
5155 cMH = -0.00067;
5156 cmt = -0.00064;
5157 caS = 0.00009;
5158 caS2 = 0.0012;
5159 caSmt = 0.00021;
5160 cda5h = 0.03865;
5161 cMZ = -0.55831;
5162
5163 RelThError=0.;
5164 } else if (s==200.*200.) {
5165 X0 = 0.53641;
5166 cMH = -0.00079;
5167 cmt = -0.00065;
5168 caS = 0.0001;
5169 caS2 = 0.00203;
5170 caSmt = 0.00022;
5171 cda5h = 0.03747;
5172 cMZ = -0.54117;
5173
5174 RelThError=0.;
5175 } else if (s==202.*202.) {
5176 X0 = 0.52739;
5177 cMH = -0.0009;
5178 cmt = -0.00066;
5179 caS = 0.0001;
5180 caS2 = 0.0032;
5181 caSmt = 0.00024;
5182 cda5h = 0.0369;
5183 cMZ = -0.53362;
5184
5185 RelThError=0.;
5186 } else if (s==205.*205.) {
5187 X0 = 0.51426;
5188 cMH = -0.00109;
5189 cmt = -0.00066;
5190 caS = 0.0001;
5191 caS2 = 0.00483;
5192 caSmt = 0.00019;
5193 cda5h = 0.03605;
5194 cMZ = -0.51996;
5195
5196 RelThError=0.;
5197 } else if (s==207.*207.) {
5198 X0 = 0.50575;
5199 cMH = -0.00121;
5200 cmt = -0.00065;
5201 caS = 0.0001;
5202 caS2 = 0.00536;
5203 caSmt = 0.00017;
5204 cda5h = 0.03549;
5205 cMZ = -0.51092;
5206
5207 RelThError=0.;
5208 } else if ( s > 210.*210. ) {
5209 X0 = 0.;
5210 cMH = 0.;
5211 cmt = 0.;
5212 caS = 0.;
5213 caS2 = 0.;
5214 caSmt = 0.;
5215 cda5h = 0.;
5216 cMZ = 0.;
5217
5218 RelThError=0.;
5219 } else {
5220 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosTauApprox()");
5221 }
5222 } else if (cos == -0.3) {
5223 if (s==183.*183.) {
5224 X0 = 0.81697;
5225 cMH = -0.00043;
5226 cmt = 0.00251;
5227 caS = -0.00029;
5228 caS2 = -0.00098;
5229 caSmt = -0.0001;
5230 cda5h = 0.04345;
5231 cMZ = 0.36501;
5232
5233 RelThError=0.;
5234 } else if (s==189.*189.) {
5235 X0 = 0.76539;
5236 cMH = -0.00041;
5237 cmt = 0.00218;
5238 caS = -0.00024;
5239 caS2 = -0.00095;
5240 caSmt = -0.00007;
5241 cda5h = 0.04131;
5242 cMZ = 0.29614;
5243
5244 RelThError=0.;
5245 } else if (s==192.*192.) {
5246 X0 = 0.74144;
5247 cMH = -0.00041;
5248 cmt = 0.00201;
5249 caS = -0.00022;
5250 caS2 = -0.00076;
5251 caSmt = -0.00006;
5252 cda5h = 0.04031;
5253 cMZ = 0.2597;
5254
5255 RelThError=0.;
5256 } else if (s==196.*196.) {
5257 X0 = 0.71134;
5258 cMH = -0.00041;
5259 cmt = 0.00182;
5260 caS = -0.00019;
5261 caS2 = -0.0007;
5262 caSmt = -0.00005;
5263 cda5h = 0.03902;
5264 cMZ = 0.2177;
5265
5266 RelThError=0.;
5267 } else if (s==200.*200.) {
5268 X0 = 0.68314;
5269 cMH = -0.00042;
5270 cmt = 0.00166;
5271 caS = -0.00017;
5272 caS2 = -0.00038;
5273 caSmt = -0.00004;
5274 cda5h = 0.03776;
5275 cMZ = 0.18275;
5276
5277 RelThError=0.;
5278 } else if (s==202.*202.) {
5279 X0 = 0.6697;
5280 cMH = -0.00045;
5281 cmt = 0.00159;
5282 caS = -0.00016;
5283 caS2 = -0.0002;
5284 caSmt = -0.00002;
5285 cda5h = 0.03715;
5286 cMZ = 0.16651;
5287
5288 RelThError=0.;
5289 } else if (s==205.*205.) {
5290 X0 = 0.65031;
5291 cMH = -0.0005;
5292 cmt = 0.00149;
5293 caS = -0.00014;
5294 caS2 = 0.0004;
5295 caSmt = -0.00003;
5296 cda5h = 0.03626;
5297 cMZ = 0.14683;
5298
5299 RelThError=0.;
5300 } else if (s==207.*207.) {
5301 X0 = 0.63786;
5302 cMH = -0.00053;
5303 cmt = 0.00143;
5304 caS = -0.00013;
5305 caS2 = 0.00058;
5306 caSmt = -0.00003;
5307 cda5h = 0.03567;
5308 cMZ = 0.13448;
5309
5310 RelThError=0.;
5311 } else if ( s > 210.*210. ) {
5312 X0 = 0.;
5313 cMH = 0.;
5314 cmt = 0.;
5315 caS = 0.;
5316 caS2 = 0.;
5317 caSmt = 0.;
5318 cda5h = 0.;
5319 cMZ = 0.;
5320
5321 RelThError=0.;
5322 } else {
5323 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosTauApprox()");
5324 }
5325 } else if (cos == -0.1) {
5326 if (s==183.*183.) {
5327 X0 = 1.11353;
5328 cMH = -0.00036;
5329 cmt = 0.006;
5330 caS = -0.0007;
5331 caS2 = -0.0023;
5332 caSmt = -0.00045;
5333 cda5h = 0.04851;
5334 cMZ = 1.47728;
5335
5336 RelThError=0.;
5337 } else if (s==189.*189.) {
5338 X0 = 1.03568;
5339 cMH = -0.00026;
5340 cmt = 0.00537;
5341 caS = -0.00061;
5342 caS2 = -0.0024;
5343 caSmt = -0.0004;
5344 cda5h = 0.04591;
5345 cMZ = 1.29497;
5346
5347 RelThError=0.;
5348 } else if (s==192.*192.) {
5349 X0 = 0.99993;
5350 cMH = -0.00021;
5351 cmt = 0.00506;
5352 caS = -0.00057;
5353 caS2 = -0.00258;
5354 caSmt = -0.00037;
5355 cda5h = 0.04471;
5356 cMZ = 1.20665;
5357
5358 RelThError=0.;
5359 } else if (s==196.*196.) {
5360 X0 = 0.95532;
5361 cMH = -0.00013;
5362 cmt = 0.00469;
5363 caS = -0.00052;
5364 caS2 = -0.00272;
5365 caSmt = -0.00034;
5366 cda5h = 0.04317;
5367 cMZ = 1.10402;
5368
5369 RelThError=0.;
5370 } else if (s==200.*200.) {
5371 X0 = 0.91386;
5372 cMH = -0.00004;
5373 cmt = 0.00437;
5374 caS = -0.00047;
5375 caS2 = -0.00342;
5376 caSmt = -0.00032;
5377 cda5h = 0.04169;
5378 cMZ = 1.00983;
5379
5380 RelThError=0.;
5381 } else if (s==202.*202.) {
5382 X0 = 0.89422;
5383 cMH = 0.00003;
5384 cmt = 0.00422;
5385 caS = -0.00045;
5386 caS2 = -0.00359;
5387 caSmt = -0.00032;
5388 cda5h = 0.04098;
5389 cMZ = 0.97649;
5390
5391 RelThError=0.;
5392 } else if (s==205.*205.) {
5393 X0 = 0.86599;
5394 cMH = 0.00014;
5395 cmt = 0.00403;
5396 caS = -0.00043;
5397 caS2 = -0.00469;
5398 caSmt = -0.00028;
5399 cda5h = 0.03993;
5400 cMZ = 0.91011;
5401
5402 RelThError=0.;
5403 } else if (s==207.*207.) {
5404 X0 = 0.84796;
5405 cMH = 0.00019;
5406 cmt = 0.0039;
5407 caS = -0.00041;
5408 caS2 = -0.00472;
5409 caSmt = -0.00026;
5410 cda5h = 0.03926;
5411 cMZ = 0.87397;
5412
5413 RelThError=0.;
5414 } else if ( s > 210.*210. ) {
5415 X0 = 0.;
5416 cMH = 0.;
5417 cmt = 0.;
5418 caS = 0.;
5419 caS2 = 0.;
5420 caSmt = 0.;
5421 cda5h = 0.;
5422 cMZ = 0.;
5423
5424 RelThError=0.;
5425 } else {
5426 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosTauApprox()");
5427 }
5428 } else if (cos == 0.1) {
5429 if (s==183.*183.) {
5430 X0 = 1.51095;
5431 cMH = -0.00029;
5432 cmt = 0.00983;
5433 caS = -0.00115;
5434 caS2 = -0.00388;
5435 caSmt = -0.00084;
5436 cda5h = 0.05798;
5437 cMZ = 2.69974;
5438
5439 RelThError=0.;
5440 } else if (s==189.*189.) {
5441 X0 = 1.40027;
5442 cMH = -0.00011;
5443 cmt = 0.00888;
5444 caS = -0.00102;
5445 caS2 = -0.00422;
5446 caSmt = -0.00077;
5447 cda5h = 0.05465;
5448 cMZ = 2.39593;
5449
5450 RelThError=0.;
5451 } else if (s==192.*192.) {
5452 X0 = 1.34971;
5453 cMH = 0.;
5454 cmt = 0.00844;
5455 caS = -0.00096;
5456 caS2 = -0.00461;
5457 caSmt = -0.00072;
5458 cda5h = 0.05311;
5459 cMZ = 2.2538;
5460
5461 RelThError=0.;
5462 } else if (s==196.*196.) {
5463 X0 = 1.28678;
5464 cMH = 0.00015;
5465 cmt = 0.00791;
5466 caS = -0.00088;
5467 caS2 = -0.0051;
5468 caSmt = -0.00067;
5469 cda5h = 0.05116;
5470 cMZ = 2.08279;
5471
5472 RelThError=0.;
5473 } else if (s==200.*200.) {
5474 X0 = 1.22847;
5475 cMH = 0.00037;
5476 cmt = 0.00744;
5477 caS = -0.00082;
5478 caS2 = -0.00665;
5479 caSmt = -0.00064;
5480 cda5h = 0.0493;
5481 cMZ = 1.93027;
5482
5483 RelThError=0.;
5484 } else if (s==202.*202.) {
5485 X0 = 1.2009;
5486 cMH = 0.00055;
5487 cmt = 0.00722;
5488 caS = -0.00079;
5489 caS2 = -0.00806;
5490 caSmt = -0.00065;
5491 cda5h = 0.04839;
5492 cMZ = 1.85593;
5493
5494 RelThError=0.;
5495 } else if (s==205.*205.) {
5496 X0 = 1.16137;
5497 cMH = 0.00082;
5498 cmt = 0.00692;
5499 caS = -0.00075;
5500 caS2 = -0.0103;
5501 caSmt = -0.00056;
5502 cda5h = 0.0471;
5503 cMZ = 1.76275;
5504
5505 RelThError=0.;
5506 } else if (s==207.*207.) {
5507 X0 = 1.13616;
5508 cMH = 0.00097;
5509 cmt = 0.00673;
5510 caS = -0.00072;
5511 caS2 = -0.01064;
5512 caSmt = -0.00052;
5513 cda5h = 0.04626;
5514 cMZ = 1.70097;
5515
5516 RelThError=0.;
5517 } else if ( s > 210.*210. ) {
5518 X0 = 0.;
5519 cMH = 0.;
5520 cmt = 0.;
5521 caS = 0.;
5522 caS2 = 0.;
5523 caSmt = 0.;
5524 cda5h = 0.;
5525 cMZ = 0.;
5526
5527 RelThError=0.;
5528 } else {
5529 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosTauApprox()");
5530 }
5531 } else if (cos == 0.3) {
5532 if (s==183.*183.) {
5533 X0 = 2.00835;
5534 cMH = -0.00019;
5535 cmt = 0.01383;
5536 caS = -0.00161;
5537 caS2 = -0.00529;
5538 caSmt = -0.00127;
5539 cda5h = 0.07202;
5540 cMZ = 4.00879;
5541
5542 RelThError=0.;
5543 } else if (s==189.*189.) {
5544 X0 = 1.85872;
5545 cMH = 0.00007;
5546 cmt = 0.01262;
5547 caS = -0.00144;
5548 caS2 = -0.00591;
5549 caSmt = -0.00115;
5550 cda5h = 0.06765;
5551 cMZ = 3.57328;
5552
5553 RelThError=0.;
5554 } else if (s==192.*192.) {
5555 X0 = 1.79051;
5556 cMH = 0.00023;
5557 cmt = 0.01207;
5558 caS = -0.00137;
5559 caS2 = -0.00669;
5560 caSmt = -0.0011;
5561 cda5h = 0.06562;
5562 cMZ = 3.37838;
5563
5564 RelThError=0.;
5565 } else if (s==196.*196.) {
5566 X0 = 1.70566;
5567 cMH = 0.00047;
5568 cmt = 0.0114;
5569 caS = -0.00127;
5570 caS2 = -0.008;
5571 caSmt = -0.00103;
5572 cda5h = 0.06306;
5573 cMZ = 3.14168;
5574
5575 RelThError=0.;
5576 } else if (s==200.*200.) {
5577 X0 = 1.6271;
5578 cMH = 0.00081;
5579 cmt = 0.01079;
5580 caS = -0.00119;
5581 caS2 = -0.01007;
5582 caSmt = -0.00099;
5583 cda5h = 0.06065;
5584 cMZ = 2.92935;
5585
5586 RelThError=0.;
5587 } else if (s==202.*202.) {
5588 X0 = 1.58997;
5589 cMH = 0.0011;
5590 cmt = 0.0105;
5591 caS = -0.00116;
5592 caS2 = -0.01273;
5593 caSmt = -0.00102;
5594 cda5h = 0.05948;
5595 cMZ = 2.8313;
5596
5597 RelThError=0.;
5598 } else if (s==205.*205.) {
5599 X0 = 1.53677;
5600 cMH = 0.00155;
5601 cmt = 0.0101;
5602 caS = -0.0011;
5603 caS2 = -0.01647;
5604 caSmt = -0.00087;
5605 cda5h = 0.05782;
5606 cMZ = 2.69299;
5607
5608 RelThError=0.;
5609 } else if (s==207.*207.) {
5610 X0 = 1.50286;
5611 cMH = 0.0018;
5612 cmt = 0.00985;
5613 caS = -0.00106;
5614 caS2 = -0.01726;
5615 caSmt = -0.0008;
5616 cda5h = 0.05674;
5617 cMZ = 2.60535;
5618
5619 RelThError=0.;
5620 } else if ( s > 210.*210. ) {
5621 X0 = 0.;
5622 cMH = 0.;
5623 cmt = 0.;
5624 caS = 0.;
5625 caS2 = 0.;
5626 caSmt = 0.;
5627 cda5h = 0.;
5628 cMZ = 0.;
5629
5630 RelThError=0.;
5631 } else {
5632 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosTauApprox()");
5633 }
5634 } else if (cos == 0.5) {
5635 if (s==183.*183.) {
5636 X0 = 2.6045;
5637 cMH = -0.00005;
5638 cmt = 0.01782;
5639 caS = -0.00207;
5640 caS2 = -0.00711;
5641 caSmt = -0.00174;
5642 cda5h = 0.09081;
5643 cMZ = 5.3652;
5644
5645 RelThError=0.;
5646 } else if (s==189.*189.) {
5647 X0 = 2.41022;
5648 cMH = 0.00029;
5649 cmt = 0.01639;
5650 caS = -0.00187;
5651 caS2 = -0.00847;
5652 caSmt = -0.00157;
5653 cda5h = 0.08507;
5654 cMZ = 4.79831;
5655
5656 RelThError=0.;
5657 } else if (s==192.*192.) {
5658 X0 = 2.32175;
5659 cMH = 0.00049;
5660 cmt = 0.01576;
5661 caS = -0.00178;
5662 caS2 = -0.00912;
5663 caSmt = -0.0015;
5664 cda5h = 0.0824;
5665 cMZ = 4.5511;
5666
5667 RelThError=0.;
5668 } else if (s==196.*196.) {
5669 X0 = 2.21167;
5670 cMH = 0.00082;
5671 cmt = 0.01499;
5672 caS = -0.00168;
5673 caS2 = -0.01091;
5674 caSmt = -0.00143;
5675 cda5h = 0.07905;
5676 cMZ = 4.25223;
5677
5678 RelThError=0.;
5679 } else if (s==200.*200.) {
5680 X0 = 2.10971;
5681 cMH = 0.00129;
5682 cmt = 0.01428;
5683 caS = -0.00158;
5684 caS2 = -0.0139;
5685 caSmt = -0.00138;
5686 cda5h = 0.07589;
5687 cMZ = 3.98313;
5688
5689 RelThError=0.;
5690 } else if (s==202.*202.) {
5691 X0 = 2.06152;
5692 cMH = 0.00171;
5693 cmt = 0.01395;
5694 caS = -0.00154;
5695 caS2 = -0.01782;
5696 caSmt = -0.00142;
5697 cda5h = 0.07437;
5698 cMZ = 3.85925;
5699
5700 RelThError=0.;
5701 } else if (s==205.*205.) {
5702 X0 = 1.99244;
5703 cMH = 0.00235;
5704 cmt = 0.01348;
5705 caS = -0.00147;
5706 caS2 = -0.02326;
5707 caSmt = -0.0012;
5708 cda5h = 0.07222;
5709 cMZ = 3.68062;
5710
5711 RelThError=0.;
5712 } else if (s==207.*207.) {
5713 X0 = 1.9484;
5714 cMH = 0.00271;
5715 cmt = 0.01318;
5716 caS = -0.00142;
5717 caS2 = -0.02439;
5718 caSmt = -0.00111;
5719 cda5h = 0.07083;
5720 cMZ = 3.56826;
5721
5722 RelThError=0.;
5723 } else if ( s > 210.*210. ) {
5724 X0 = 0.;
5725 cMH = 0.;
5726 cmt = 0.;
5727 caS = 0.;
5728 caS2 = 0.;
5729 caSmt = 0.;
5730 cda5h = 0.;
5731 cMZ = 0.;
5732
5733 RelThError=0.;
5734 } else {
5735 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosTauApprox()");
5736 }
5737 } else if (cos == 0.7) {
5738 if (s==183.*183.) {
5739 X0 = 3.29675;
5740 cMH = 0.00015;
5741 cmt = 0.02156;
5742 caS = -0.00248;
5743 caS2 = -0.00891;
5744 caSmt = -0.00222;
5745 cda5h = 0.11459;
5746 cMZ = 6.73479;
5747
5748 RelThError=0.;
5749 } else if (s==189.*189.) {
5750 X0 = 3.05254;
5751 cMH = 0.00058;
5752 cmt = 0.01994;
5753 caS = -0.00226;
5754 caS2 = -0.01067;
5755 caSmt = -0.00202;
5756 cda5h = 0.10718;
5757 cMZ = 6.02181;
5758
5759 RelThError=0.;
5760 } else if (s==192.*192.) {
5761 X0 = 2.94144;
5762 cMH = 0.00083;
5763 cmt = 0.01927;
5764 caS = -0.00217;
5765 caS2 = -0.01172;
5766 caSmt = -0.00194;
5767 cda5h = 0.10371;
5768 cMZ = 5.72791;
5769
5770 RelThError=0.;
5771 } else if (s==196.*196.) {
5772 X0 = 2.80315;
5773 cMH = 0.00124;
5774 cmt = 0.01845;
5775 caS = -0.00205;
5776 caS2 = -0.01397;
5777 caSmt = -0.00184;
5778 cda5h = 0.09935;
5779 cMZ = 5.36646;
5780
5781 RelThError=0.;
5782 } else if (s==200.*200.) {
5783 X0 = 2.675;
5784 cMH = 0.00185;
5785 cmt = 0.0177;
5786 caS = -0.00195;
5787 caS2 = -0.01819;
5788 caSmt = -0.00178;
5789 cda5h = 0.09526;
5790 cMZ = 5.04935;
5791
5792 RelThError=0.;
5793 } else if (s==202.*202.) {
5794 X0 = 2.61438;
5795 cMH = 0.00239;
5796 cmt = 0.01733;
5797 caS = -0.00191;
5798 caS2 = -0.02314;
5799 caSmt = -0.00184;
5800 cda5h = 0.0933;
5801 cMZ = 4.90256;
5802
5803 RelThError=0.;
5804 } else if (s==205.*205.) {
5805 X0 = 2.52748;
5806 cMH = 0.00324;
5807 cmt = 0.01683;
5808 caS = -0.00183;
5809 caS2 = -0.03044;
5810 caSmt = -0.00156;
5811 cda5h = 0.09052;
5812 cMZ = 4.6867;
5813
5814 RelThError=0.;
5815 } else if (s==207.*207.) {
5816 X0 = 2.47205;
5817 cMH = 0.00371;
5818 cmt = 0.01649;
5819 caS = -0.00178;
5820 caS2 = -0.0319;
5821 caSmt = -0.00145;
5822 cda5h = 0.08873;
5823 cMZ = 4.5481;
5824
5825 RelThError=0.;
5826 } else if ( s > 210.*210. ) {
5827 X0 = 0.;
5828 cMH = 0.;
5829 cmt = 0.;
5830 caS = 0.;
5831 caS2 = 0.;
5832 caSmt = 0.;
5833 cda5h = 0.;
5834 cMZ = 0.;
5835
5836 RelThError=0.;
5837 } else {
5838 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosTauApprox()");
5839 }
5840 } else if (cos == 0.9) {
5841 if (s==183.*183.) {
5842 X0 = 4.07728;
5843 cMH = 0.00045;
5844 cmt = 0.02468;
5845 caS = -0.00282;
5846 caS2 = -0.01076;
5847 caSmt = -0.00272;
5848 cda5h = 0.14366;
5849 cMZ = 8.06625;
5850
5851 RelThError=0.;
5852 } else if (s==189.*189.) {
5853 X0 = 3.77781;
5854 cMH = 0.00096;
5855 cmt = 0.02287;
5856 caS = -0.00257;
5857 caS2 = -0.0126;
5858 caSmt = -0.00249;
5859 cda5h = 0.13431;
5860 cMZ = 7.18426;
5861
5862 RelThError=0.;
5863 } else if (s==192.*192.) {
5864 X0 = 3.6418;
5865 cMH = 0.00126;
5866 cmt = 0.02218;
5867 caS = -0.00248;
5868 caS2 = -0.01431;
5869 caSmt = -0.00237;
5870 cda5h = 0.1299;
5871 cMZ = 6.84134;
5872
5873 RelThError=0.;
5874 } else if (s==196.*196.) {
5875 X0 = 3.47251;
5876 cMH = 0.00176;
5877 cmt = 0.02134;
5878 caS = -0.00236;
5879 caS2 = -0.01727;
5880 caSmt = -0.00226;
5881 cda5h = 0.12435;
5882 cMZ = 6.42951;
5883
5884 RelThError=0.;
5885 } else if (s==200.*200.) {
5886 X0 = 3.31563;
5887 cMH = 0.00251;
5888 cmt = 0.02056;
5889 caS = -0.00225;
5890 caS2 = -0.02245;
5891 caSmt = -0.00219;
5892 cda5h = 0.11915;
5893 cMZ = 6.05344;
5894
5895 RelThError=0.;
5896 } else if (s==202.*202.) {
5897 X0 = 3.24142;
5898 cMH = 0.00318;
5899 cmt = 0.02019;
5900 caS = -0.00221;
5901 caS2 = -0.02884;
5902 caSmt = -0.00227;
5903 cda5h = 0.11665;
5904 cMZ = 5.88563;
5905
5906 RelThError=0.;
5907 } else if (s==205.*205.) {
5908 X0 = 3.13501;
5909 cMH = 0.00424;
5910 cmt = 0.01967;
5911 caS = -0.00213;
5912 caS2 = -0.03787;
5913 caSmt = -0.00193;
5914 cda5h = 0.11311;
5915 cMZ = 5.62948;
5916
5917 RelThError=0.;
5918 } else if (s==207.*207.) {
5919 X0 = 3.06714;
5920 cMH = 0.00483;
5921 cmt = 0.01934;
5922 caS = -0.00208;
5923 caS2 = -0.04027;
5924 caSmt = -0.00178;
5925 cda5h = 0.11083;
5926 cMZ = 5.47527;
5927
5928 RelThError=0.;
5929 } else if ( s > 210.*210. ) {
5930 X0 = 0.;
5931 cMH = 0.;
5932 cmt = 0.;
5933 caS = 0.;
5934 caS2 = 0.;
5935 caSmt = 0.;
5936 cda5h = 0.;
5937 cMZ = 0.;
5938
5939 RelThError=0.;
5940 } else {
5941 throw std::runtime_error("ERROR: wrong LEP2 energy in ApproximateFormulae::LEP2dsigmadcosTauApprox()");
5942 }
5943 } else {
5944 throw std::runtime_error(" ERROR: wrong LEP2 angle in ApproximateFormulae::LEP2dsigmadcosTauApprox()");
5945 }
5946
5947 return ((X0 + cMH * LH + cmt * Dt
5948 + caS * Das + caS2 * Das * Das
5949 + caSmt * Das * Dt + cda5h * Da5h + cMZ * DZ)*(1. + RelThError));
5950}
5951
5952
5953// EW low-energy observables: neutrino-scattering
5954
5955
5957{
5958 double LH = log(mycache.getSM().getMHl() / 125.21);
5959 double Dt = pow(mycache.getSM().getMtpole() / 172.33, 2.0) - 1.0;
5960 double Das = mycache.getSM().getAlsMz() / 0.11802 - 1.0;
5961 double Da5h = mycache.getSM().Dalpha5hMz() / 0.027660 - 1.0;
5962 double DZ = mycache.getSM().getMz() / 91.1875 - 1.0;
5963
5964 double X0, cMH, cmt, caS, caS2, caSmt, cda5h, cMZ;
5965 double RelThError = 0.0; // (Relative) Theoretical uncertainty
5966
5967 X0 = 0.3037;
5968 cMH = -0.00067;
5969 cmt = 0.00654;
5970 caS = -0.00096;
5971 caS2 = -0.00072;
5972 caSmt = 0.00002;
5973 cda5h = -0.00701;
5974 cMZ = 0.47995;
5975
5976 RelThError = 0.;
5977
5978 return ((X0 + cMH * LH + cmt * Dt
5979 + caS * Das + caS2 * Das * Das
5980 + caSmt * Das * Dt + cda5h * Da5h + cMZ * DZ)*(1. + RelThError));
5981}
5982
5983
5985{
5986 double LH = log(mycache.getSM().getMHl() / 125.21);
5987 double Dt = pow(mycache.getSM().getMtpole() / 172.33, 2.0) - 1.0;
5988 double Das = mycache.getSM().getAlsMz() / 0.11802 - 1.0;
5989 double Da5h = mycache.getSM().Dalpha5hMz() / 0.027660 - 1.0;
5990 double DZ = mycache.getSM().getMz() / 91.1875 - 1.0;
5991
5992 double X0, cMH, cmt, caS, caS2, caSmt, cda5h, cMZ;
5993 double RelThError = 0.0; // (Relative) Theoretical uncertainty
5994
5995 X0 = 0.03014;
5996 cMH = 0.00007;
5997 cmt = -0.00001;
5998 caS = 0.00013;
5999 caS2 = 0.00021;
6000 caSmt = -0.0002;
6001 cda5h = 0.00243;
6002 cMZ = -0.16544;
6003
6004 RelThError = 0.;
6005
6006 return ((X0 + cMH * LH + cmt * Dt
6007 + caS * Das + caS2 * Das * Das
6008 + caSmt * Das * Dt + cda5h * Da5h + cMZ * DZ)*(1. + RelThError));
6009}
6010
6011
6013{
6014 double LH = log(mycache.getSM().getMHl() / 125.21);
6015 double Dt = pow(mycache.getSM().getMtpole() / 172.33, 2.0) - 1.0;
6016 double Das = mycache.getSM().getAlsMz() / 0.11802 - 1.0;
6017 double Da5h = mycache.getSM().Dalpha5hMz() / 0.027660 - 1.0;
6018 double DZ = mycache.getSM().getMz() / 91.1875 - 1.0;
6019
6020 double X0, cMH, cmt, caS, caS2, caSmt, cda5h, cMZ;
6021 double RelThError = 0.0; // (Relative) Theoretical uncertainty
6022
6023 X0 = 2.4631;
6024 cMH = 0.00019;
6025 cmt = -0.00077;
6026 caS = 0.00034;
6027 caS2 = 0.00045;
6028 caSmt = -0.00034;
6029 cda5h = 0.00495;
6030 cMZ = -0.33743;
6031
6032 RelThError = 0.;
6033
6034 return ((X0 + cMH * LH + cmt * Dt
6035 + caS * Das + caS2 * Das * Das
6036 + caSmt * Das * Dt + cda5h * Da5h + cMZ * DZ)*(1. + RelThError));
6037}
6038
6039
6041{
6042 double LH = log(mycache.getSM().getMHl() / 125.21);
6043 double Dt = pow(mycache.getSM().getMtpole() / 172.33, 2.0) - 1.0;
6044 double Das = mycache.getSM().getAlsMz() / 0.11802 - 1.0;
6045 double Da5h = mycache.getSM().Dalpha5hMz() / 0.027660 - 1.0;
6046 double DZ = mycache.getSM().getMz() / 91.1875 - 1.0;
6047
6048 double X0, cMH, cmt, caS, caS2, caSmt, cda5h, cMZ;
6049 double RelThError = 0.0; // (Relative) Theoretical uncertainty
6050
6051 X0 = 5.17646;
6052 cMH = 0.;
6053 cmt = -0.00002;
6054 caS = -0.00002;
6055 caS2 = 0.;
6056 caSmt = -0.00001;
6057 cda5h = 0.;
6058 cMZ = -0.00013;
6059
6060 RelThError = 0.;
6061
6062 return ((X0 + cMH * LH + cmt * Dt
6063 + caS * Das + caS2 * Das * Das
6064 + caSmt * Das * Dt + cda5h * Da5h + cMZ * DZ)*(1. + RelThError));
6065}
6066
6067
6069{
6070 double LH = log(mycache.getSM().getMHl() / 125.21);
6071 double Dt = pow(mycache.getSM().getMtpole() / 172.33, 2.0) - 1.0;
6072 double Das = mycache.getSM().getAlsMz() / 0.11802 - 1.0;
6073 double Da5h = mycache.getSM().Dalpha5hMz() / 0.027660 - 1.0;
6074 double DZ = mycache.getSM().getMz() / 91.1875 - 1.0;
6075
6076 double X0, cMH, cmt, caS, caS2, caSmt, cda5h, cMZ;
6077 double RelThError = 0.0; // (Relative) Theoretical uncertainty
6078
6079 X0 = -0.03959;
6080 cMH = 0.00095;
6081 cmt = -0.00563;
6082 caS = 0.00076;
6083 caS2 = 0.00071;
6084 caSmt = 0.;
6085 cda5h = 0.0188;
6086 cMZ = -1.2809;
6087
6088 RelThError = 0.;
6089
6090 return ((X0 + cMH * LH + cmt * Dt
6091 + caS * Das + caS2 * Das * Das
6092 + caSmt * Das * Dt + cda5h * Da5h + cMZ * DZ)*(1. + RelThError));
6093}
6094
6095
6097{
6098 double LH = log(mycache.getSM().getMHl() / 125.21);
6099 double Dt = pow(mycache.getSM().getMtpole() / 172.33, 2.0) - 1.0;
6100 double Das = mycache.getSM().getAlsMz() / 0.11802 - 1.0;
6101 double Da5h = mycache.getSM().Dalpha5hMz() / 0.027660 - 1.0;
6102 double DZ = mycache.getSM().getMz() / 91.1875 - 1.0;
6103
6104 double X0, cMH, cmt, caS, caS2, caSmt, cda5h, cMZ;
6105 double RelThError = 0.0; // (Relative) Theoretical uncertainty
6106
6107 X0 = -0.50693;
6108 cMH = 0.00029;
6109 cmt = -0.00466;
6110 caS = 0.;
6111 caS2 = 0.00013;
6112 caSmt = 0.;
6113 cda5h = 0.00004;
6114 cMZ = -0.00779;
6115
6116 RelThError = 0.;
6117
6118 return ((X0 + cMH * LH + cmt * Dt
6119 + caS * Das + caS2 * Das * Das
6120 + caSmt * Das * Dt + cda5h * Da5h + cMZ * DZ)*(1. + RelThError));
6121}
double LEP2AFBmuApprox(const double s) const
The forward-backward asymmetry at LEP2.
double LEThetaLnuNApprox() const
The effective neutrino nucleon LH parameter: ThetaLnuN.
double LEgAnueApprox() const
The effective (muon) neutrino-electron axial-vector coupling: gAnue.
double LEP2AFBtauApprox(const double s) const
The forward-backward asymmetry at LEP2.
double DeltaKappa_b_TwoLoopEW_rem(const double Mw_i) const
.
double LEP2sigmaHadronApprox(const double s) const
The cross section at LEP2.
const EWSMcache & mycache
A reference to an object of type StandardModel.
double X_full_2_loop(const std::string observable) const
, , , , , , , , , , , or .
double LEP2dsigmadcosTauApprox(const double s, const double cos) const
The differential cross section at LEP2.
double Mw() const
The -boson mass with the full two-loop EW corrections.
double sin2thetaEff_b_full() const
with the full two-loop EW corrections.
double LEgVnueApprox() const
The effective (muon) neutrino-electron vector coupling: gVnue.
double X_extended(const std::string observable) const
, , , , , , , , , , , or .
EWSMApproximateFormulae(const EWSMcache &cache_i)
Constructor.
double X(const std::string observable) const
, , , , , , , , , , , or .
double DeltaKappa_l_TwoLoopEW_rem(const double Mw_i) const
.
double sin2thetaEff_l_full() const
with the full two-loop EW corrections.
double LEgLnuN2Approx() const
The effective neutrino nucleon LH coupling: gLnuN2.
double X_full(const std::string observable) const
, , , , , , , , , , , or .
double LEP2dsigmadcosMuApprox(const double s, const double cos) const
The differential cross section at LEP2.
double dAlpha5hMw() const
The value of obtained from the -boson mass, using the full two-loop EW corrections.
double LEP2dsigmadcosEApprox(const double s, const double cos) const
The differential cross section at LEP2.
double LEThetaRnuNApprox() const
The effective neutrino nucleon RH parameter: ThetaRnuN.
double LEP2sigmaTauApprox(const double s) const
The cross section at LEP2.
double DeltaR_TwoLoopEW_rem(const double Mw_i) const
.
double sin2thetaEff_b() const
with the full two-loop EW corrections.
double sin2thetaEff_q(const QCD::quark q) const
with the full two-loop EW corrections (bosonic two-loop EW corrections are missing for ).
double sin2thetaEff_l(const QCD::lepton l) const
with the full two-loop EW corrections.
double LEP2sigmaMuApprox(const double s) const
The cross section at LEP2.
double LEgRnuN2Approx() const
The effective neutrino nucleon RH coupling: gRnuN2.
A class for cache variables used in computing radiative corrections to the EW precision observables.
Definition: EWSMcache.h:40
const StandardModel & getSM() const
Definition: EWSMcache.h:56
An observable class for the -boson mass.
Definition: Mw.h:22
quark
An enum type for quarks.
Definition: QCD.h:323
@ UP
Definition: QCD.h:324
@ BOTTOM
Definition: QCD.h:329
@ TOP
Definition: QCD.h:328
@ DOWN
Definition: QCD.h:325
@ STRANGE
Definition: QCD.h:327
@ CHARM
Definition: QCD.h:326
const double getMtpole() const
A get method to access the pole mass of the top quark.
Definition: QCD.h:600
lepton
An enum type for leptons.
Definition: QCD.h:310
@ NEUTRINO_2
Definition: QCD.h:313
@ NEUTRINO_1
Definition: QCD.h:311
@ MU
Definition: QCD.h:314
@ ELECTRON
Definition: QCD.h:312
@ NEUTRINO_3
Definition: QCD.h:315
@ TAU
Definition: QCD.h:316
const double getDelMw() const
A get method to retrieve the theoretical uncertainty in , denoted as .
const double getDelR0c() const
A get method to retrieve the theoretical uncertainty in , denoted as .
const double getMz() const
A get method to access the mass of the boson .
const double getDelSin2th_q() const
A get method to retrieve the theoretical uncertainty in , denoted as .
const double getMw() const
A get method to access the input value of the mass of the boson .
const double getAlsMz() const
A get method to access the value of .
virtual const double getMHl() const
A get method to retrieve the Higgs mass .
const double getDelR0l() const
A get method to retrieve the theoretical uncertainty in , denoted as .
const double getDelSin2th_b() const
A get method to retrieve the theoretical uncertainty in , denoted as .
const double getDelR0b() const
A get method to retrieve the theoretical uncertainty in , denoted as .
const double getDelSin2th_l() const
A get method to retrieve the theoretical uncertainty in , denoted as .
const double getDelSigma0H() const
A get method to retrieve the theoretical uncertainty in , denoted as .
virtual const double Dalpha5hMz() const
The 5-quark contribution to the running of the em constant to the pole. .
const double DeltaAlphaL5q() const
The sum of the leptonic and the five-flavour hadronic corrections to the electromagnetic coupling at...
const double getDelGammaZ() const
A get method to retrieve the theoretical uncertainty in , denoted as .
const double DeltaAlphaLepton(const double s) const
Leptonic contribution to the electromagnetic coupling , denoted as .
Test Observable.