a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
StandardModel.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 
8 #include <iostream>
9 #include <math.h>
10 #include <stdlib.h>
11 #include <stdexcept>
12 #include <gsl/gsl_sf_zeta.h>
13 #include <algorithm>
14 #include "StandardModel.h"
15 #include "EWSMcache.h"
16 #include "EWSMOneLoopEW.h"
17 #include "EWSMTwoLoopQCD.h"
18 #include "EWSMThreeLoopQCD.h"
19 #include "EWSMTwoLoopEW.h"
20 #include "EWSMThreeLoopEW2QCD.h"
21 #include "EWSMThreeLoopEW.h"
23 #include "LeptonFlavour.h"
24 #include "gslpp_function_adapter.h"
25 /* BEGIN: REMOVE FROM THE PACKAGE */
26 #include "EWSMTwoFermionsLEP2.h"
27 #include <functional>
28 #include <boost/bind.hpp>
29 /* END: REMOVE FROM THE PACKAGE */
30 
31 std::string StandardModel::SMvars[NSMvars] = {
32  "lambda", "A", "rhob", "etab", "Mz", "AlsMz", "GF", "ale", "dAle5Mz", "mHl",
33  "delMw", "delSin2th_l", "delSin2th_q", "delSin2th_b", "delGammaZ", "delsigma0H", "delR0l", "delR0c", "delR0b",
34  "mneutrino_1", "mneutrino_2", "mneutrino_3", "melectron", "mmu", "mtau", "muw"
35 };
36 
37 const double StandardModel::GeVminus2_to_nb = 389379.338;
38 const double StandardModel::Mw_error = 0.00001; /* 0.01 MeV */
39 
41 : QCD(), Yu(3, 3, 0.), Yd(3, 3, 0.), Yn(3, 3, 0.),
42 Ye(3, 3, 0.), SMM(*this), SMFlavour(*this)
43 {
46  FlagMw = "APPROXIMATEFORMULA";
47  FlagRhoZ = "NORESUM";
48  FlagKappaZ = "APPROXIMATEFORMULA";
49  FlagWolfenstein = true;
50 
51  FlagSMAux = false;
52 
53  /* Internal flags for EWPO (for debugging) */
54  flag_order[EW1] = true;
55  flag_order[EW1QCD1] = true;
56  flag_order[EW1QCD2] = true;
57  flag_order[EW2] = true;
58  flag_order[EW2QCD1] = true;
59  flag_order[EW3] = true;
60 
61  //Flags for LEP2 observables
62  flagLEP2[Weak] = true;
63  flagLEP2[WeakBox] = true;
64  flagLEP2[ISR] = true;
65  flagLEP2[QEDFSR] = true;
66  flagLEP2[QCDFSR] = true;
67 
68  bSigmaForAFB = false;
69  bSigmaForR = false;
70 
71  // Caches for EWPO
72  FlagCacheInStandardModel = true; // use caches in the current class
74  useDeltaAlpha_cache = false;
75  useMw_cache = false;
76  useGammaW_cache = false;
78  DeltaAlpha_cache = 0.0;
79  Mw_cache = 0.0;
80  GammaW_cache = 0.0;
81  for (int i = 0; i < 12; ++i) {
82  useRhoZ_f_cache[i] = false;
83  useKappaZ_f_cache[i] = false;
84  rhoZ_f_cache[i] = gslpp::complex(0.0, 0.0, false);
85  kappaZ_f_cache[i] = gslpp::complex(0.0, 0.0, false);
86  }
87 
88  myEWSMcache = NULL;
89  myOneLoopEW = NULL;
90  myTwoLoopQCD = NULL;
91  myThreeLoopQCD = NULL;
92  myTwoLoopEW = NULL;
93  myThreeLoopEW2QCD = NULL;
94  myThreeLoopEW = NULL;
95  myApproximateFormulae = NULL;
96  /* BEGIN: REMOVE FROM THE PACKAGE */
97  myTwoFermionsLEP2 = NULL;
98  /* END: REMOVE FROM THE PACKAGE */
99 
100  // Particle(std::string name, double mass, double mass_scale = 0., double width = 0., double charge = 0.,double isospin = 0.);
101  leptons[NEUTRINO_1] = Particle("NEUTRINO_1", 0., 0., 0., 0., .5);
102  leptons[NEUTRINO_2] = Particle("NEUTRINO_2", 0., 0., 0., 0., .5);
103  leptons[NEUTRINO_3] = Particle("NEUTRINO_3", 0., 0., 0., 0., .5);
104  leptons[ELECTRON] = Particle("ELECTRON", 0., 0., 0., -1., -.5);
105  leptons[MU] = Particle("MU", 0., 0., 0., -1., -.5);
106  leptons[TAU] = Particle("TAU", 0., 0., 0., -1., -.5);
107 
108  ModelParamMap.insert(std::make_pair("Mz", std::cref(Mz)));
109  ModelParamMap.insert(std::make_pair("AlsMz", std::cref(AlsMz)));
110  ModelParamMap.insert(std::make_pair("GF", std::cref(GF)));
111  ModelParamMap.insert(std::make_pair("ale", std::cref(ale)));
112  ModelParamMap.insert(std::make_pair("dAle5Mz", std::cref(dAle5Mz)));
113  ModelParamMap.insert(std::make_pair("mHl", std::cref(mHl)));
114  ModelParamMap.insert(std::make_pair("delMw", std::cref(delMw)));
115  ModelParamMap.insert(std::make_pair("delSin2th_l", std::cref(delSin2th_l)));
116  ModelParamMap.insert(std::make_pair("delSin2th_q", std::cref(delSin2th_q)));
117  ModelParamMap.insert(std::make_pair("delSin2th_b", std::cref(delSin2th_b)));
118  ModelParamMap.insert(std::make_pair("delGammaZ", std::cref(delGammaZ)));
119  ModelParamMap.insert(std::make_pair("delsigma0H", std::cref(delsigma0H)));
120  ModelParamMap.insert(std::make_pair("delR0l", std::cref(delR0l)));
121  ModelParamMap.insert(std::make_pair("delR0c", std::cref(delR0c)));
122  ModelParamMap.insert(std::make_pair("delR0b", std::cref(delR0b)));
123  ModelParamMap.insert(std::make_pair("mneutrino_1", std::cref(leptons[NEUTRINO_1].getMass())));
124  ModelParamMap.insert(std::make_pair("mneutrino_2", std::cref(leptons[NEUTRINO_2].getMass())));
125  ModelParamMap.insert(std::make_pair("mneutrino_3", std::cref(leptons[NEUTRINO_3].getMass())));
126  ModelParamMap.insert(std::make_pair("melectron", std::cref(leptons[ELECTRON].getMass())));
127  ModelParamMap.insert(std::make_pair("mmu", std::cref(leptons[MU].getMass())));
128  ModelParamMap.insert(std::make_pair("mtau", std::cref(leptons[TAU].getMass())));
129  ModelParamMap.insert(std::make_pair("lambda", std::cref(lambda)));
130  ModelParamMap.insert(std::make_pair("A", std::cref(A)));
131  ModelParamMap.insert(std::make_pair("rhob", std::cref(rhob)));
132  ModelParamMap.insert(std::make_pair("etab", std::cref(etab)));
133  ModelParamMap.insert(std::make_pair("muw", std::cref(muw)));
134 
135  iterationNo = 0;
136  realorder = LO;
137 
138  w_GSL1 = gsl_integration_workspace_alloc (200);
139 }
140 
142 {
143  if (IsModelInitialized()) {
144  if (myEWSMcache != NULL) delete(myEWSMcache);
145  if (myOneLoopEW != NULL) delete(myOneLoopEW);
146  if (myTwoLoopQCD != NULL) delete(myTwoLoopQCD);
147  if (myThreeLoopQCD != NULL) delete(myThreeLoopQCD);
148  if (myTwoLoopEW != NULL) delete(myTwoLoopEW);
149  if (myThreeLoopEW2QCD != NULL) delete(myThreeLoopEW2QCD);
150  if (myThreeLoopEW != NULL) delete(myThreeLoopEW);
151  if (myApproximateFormulae != NULL) delete(myApproximateFormulae);
152  if (myLeptonFlavour != NULL) delete(myLeptonFlavour);
153  /* BEGIN: REMOVE FROM THE PACKAGE */
154  if (myTwoFermionsLEP2 != NULL) delete(myTwoFermionsLEP2);
155  /* END: REMOVE FROM THE PACKAGE */
156  }
157 }
158 
159 
161 // Initialization
162 
164 {
165  myEWSMcache = new EWSMcache(*this);
173  myLeptonFlavour = new LeptonFlavour(*this);
174  /* BEGIN: REMOVE FROM THE PACKAGE */
176  /* END: REMOVE FROM THE PACKAGE */
177  setModelInitialized(true);
178  return (true);
179 }
180 
181 
183 // Parameters
184 
185 bool StandardModel::Init(const std::map<std::string, double>& DPars)
186 {
187  for (std::map<std::string, double>::const_iterator it = DPars.begin(); it != DPars.end(); it++)
188  if (it->first.compare("AlsM") == 0 || it->first.compare("MAls") == 0)
189  throw std::runtime_error("ERROR: inappropriate parameter " + it->first
190  + " in model initialization");
191 
192  std::map<std::string, double> myDPars(DPars);
193  myDPars["AlsM"] = myDPars.at("AlsMz"); // do not change!
194  myDPars["MAls"] = myDPars.at("Mz");
195  return (QCD::Init(myDPars));
196 }
197 
199 {
200  requireCKM = false;
201  requireYe = false;
202  requireYn = false;
203 
204  if (!QCD::PreUpdate()) return (false);
205 
206  return (true);
207 }
208 
209 bool StandardModel::Update(const std::map<std::string, double>& DPars)
210 {
211  if (!PreUpdate()) return (false);
212 
213  UpdateError = false;
214 
215  for (std::map<std::string, double>::const_iterator it = DPars.begin(); it != DPars.end(); it++)
216  setParameter(it->first, it->second);
217 
218  if (UpdateError) return (false);
219 
220  if (!PostUpdate()) return (false);
221 
222  return (true);
223 }
224 
226 {
227  if (!QCD::PostUpdate()) return (false);
228 
229  /* Set the CKM and PMNS matrices */
230  computeCKM();
231 
232  /* Set the Yukawa matrices */
233  if (!isModelSUSY()) {
234  computeYukawas();
235  }
236 
237  /* Check whether the parameters for the EWPO are updated or not */
238  if (!checkSMparamsForEWPO()) {
240  useDeltaAlpha_cache = false;
241  useMw_cache = false;
242  useGammaW_cache = false;
243  for (int i = 0; i < 12; ++i) {
244  useRhoZ_f_cache[i] = false;
245  useKappaZ_f_cache[i] = false;
246  }
247  }
249  /* Necessary for updating StandardModel parameters in StandardModelMatching */
251 
252  iterationNo++;
253 
254  return (true);
255 }
256 
257 void StandardModel::setParameter(const std::string name, const double& value)
258 {
259  if (name.compare("Mz") == 0) {
260  Mz = value;
261  QCD::setParameter("MAls", value);
262  } else if (name.compare("AlsMz") == 0) {
263  AlsMz = value;
264  QCD::setParameter("AlsM", value);
265  } else if (name.compare("GF") == 0)
266  GF = value;
267  else if (name.compare("ale") == 0)
268  ale = value;
269  else if (name.compare("dAle5Mz") == 0)
270  dAle5Mz = value;
271  else if (name.compare("mHl") == 0)
272  mHl = value;
273  else if (name.compare("delMw") == 0)
274  delMw = value;
275  else if (name.compare("delSin2th_l") == 0)
276  delSin2th_l = value;
277  else if (name.compare("delSin2th_q") == 0)
278  delSin2th_q = value;
279  else if (name.compare("delSin2th_b") == 0)
280  delSin2th_b = value;
281  else if (name.compare("delGammaZ") == 0)
282  delGammaZ = value;
283  else if (name.compare("delsigma0H") == 0)
284  delsigma0H = value;
285  else if (name.compare("delR0l") == 0)
286  delR0l = value;
287  else if (name.compare("delR0c") == 0)
288  delR0c = value;
289  else if (name.compare("delR0b") == 0)
290  delR0b = value;
291  else if (name.compare("mneutrino_1") == 0) {
292  leptons[NEUTRINO_1].setMass(value);
293  requireYn = true;
294  } else if (name.compare("mneutrino_2") == 0) {
295  leptons[NEUTRINO_2].setMass(value);
296  requireYn = true;
297  } else if (name.compare("mneutrino_3") == 0) {
298  leptons[NEUTRINO_3].setMass(value);
299  requireYn = true;
300  } else if (name.compare("melectron") == 0) {
301  leptons[ELECTRON].setMass(value);
302  requireYe = true;
303  } else if (name.compare("mmu") == 0) {
304  leptons[MU].setMass(value);
305  requireYe = true;
306  } else if (name.compare("mtau") == 0) {
307  leptons[TAU].setMass(value);
308  requireYe = true;
309  } else if (name.compare("lambda") == 0 && FlagWolfenstein) {
310  lambda = value;
311  requireCKM = true;
312  } else if (name.compare("A") == 0 && FlagWolfenstein) {
313  A = value;
314  requireCKM = true;
315  } else if (name.compare("rhob") == 0 && FlagWolfenstein) {
316  rhob = value;
317  requireCKM = true;
318  } else if (name.compare("etab") == 0 && FlagWolfenstein) {
319  etab = value;
320  requireCKM = true;
321  } else if (name.compare("V_us") == 0 && !FlagWolfenstein) {
322  Vus = value;
323  requireCKM = true;
324  } else if (name.compare("V_cb") == 0 && !FlagWolfenstein) {
325  Vcb = value;
326  requireCKM = true;
327  } else if (name.compare("V_ub") == 0 && !FlagWolfenstein) {
328  Vub = value;
329  requireCKM = true;
330  } else if (name.compare("gamma") == 0 && !FlagWolfenstein) {
331  gamma = value;
332  requireCKM = true;
333  } else if (name.compare("muw") == 0)
334  muw = value;
335  else
336  QCD::setParameter(name, value);
337 }
338 
339 bool StandardModel::CheckParameters(const std::map<std::string, double>& DPars)
340 {
341  for (int i = 0; i < NSMvars; i++) {
342  if (DPars.find(SMvars[i]) == DPars.end()) {
343  std::cout << "ERROR: missing mandatory SM parameter " << SMvars[i] << std::endl;
346  }
347  }
348  return (QCD::CheckParameters(DPars));
349 }
350 
352 {
353  if (requireCKM) {
354  if (FlagWolfenstein) {
356  Vus = myCKM.getV_us().abs();
357  Vcb = myCKM.getV_cb().abs();
358  Vub = myCKM.getV_ub().abs();
360  } else {
362  lambda = myCKM.getLambda();
363  A = myCKM.getA();
364  rhob = myCKM.getRhoBar();
365  etab = myCKM.getEtaBar();
366  }
367  }
368  myPMNS.computePMNS(s12, s13, s23, delta, alpha21, alpha31); // WARNING: This does not do anything since the input values are not set.
369 }
370 
372 {
373  /* THE FOLLOWING CODES HAVE TO BE MODIFIED!!
374  * The Yukawa matrices have to be computed at a common scale
375  * for all the fermions!!! */
376  if (requireYu || requireCKM) {
378  for (int i = 0; i < 3; i++)
379  Yu.assign(i, i, this->quarks[UP + 2 * i].getMass() / v() * sqrt(2.));
380  Yu = myCKM.getCKM().transpose() * Yu;
381  }
382  if (requireYd) {
384  for (int i = 0; i < 3; i++)
385  Yd.assign(i, i, this->quarks[DOWN + 2 * i].getMass() / v() * sqrt(2.));
386  }
387  if (requireYe) {
389  for (int i = 0; i < 3; i++)
390  Ye.assign(i, i, this->leptons[ELECTRON + 2 * i].getMass() / v() * sqrt(2.));
391  }
392  if (requireYn) {
394  for (int i = 0; i < 3; i++)
395  Yn.assign(i, i, this->leptons[NEUTRINO_1 + 2 * i].getMass() / v() * sqrt(2.));
396  Yn = Yn * myPMNS.getPMNS().hconjugate();
397  }
398 }
399 
400 
402 // Flags
403 
404 bool StandardModel::setFlag(const std::string name, const bool value)
405 {
406  bool res = false;
407  if (name.compare("CacheInStandardModel") == 0) {
409  res = true;
410  } else if (name.compare("CacheInEWSMcache") == 0) {
412  res = true;
413  } else if (name.compare("Wolfenstein") == 0) {
414  FlagWolfenstein = value;
415  if(!FlagWolfenstein) {
416  SMvars[std::distance(SMvars,std::find(SMvars,SMvars+NSMvars,"lambda"))] = "V_us";
417  SMvars[std::distance(SMvars,std::find(SMvars,SMvars+NSMvars,"A"))] = "V_cb";
418  SMvars[std::distance(SMvars,std::find(SMvars,SMvars+NSMvars,"rhob"))] = "V_ub";
419  SMvars[std::distance(SMvars,std::find(SMvars,SMvars+NSMvars,"etab"))] = "gamma";
420 
421  ModelParamMap.insert(std::make_pair("V_us", std::cref(Vus)));
422  ModelParamMap.insert(std::make_pair("V_cb", std::cref(Vcb)));
423  ModelParamMap.insert(std::make_pair("V_ub", std::cref(Vub)));
424  ModelParamMap.insert(std::make_pair("gamma", std::cref(gamma)));
425  }
426  res = true;
427  } else if (name.compare("WithoutNonUniversalVC") == 0) {
429  res = true;
430  } else if (name.compare("NoApproximateGammaZ") == 0) {
431  FlagNoApproximateGammaZ = value;
432  res = true;
433  } else if (name.compare("SMAux") == 0) {
434  FlagSMAux = value;
435  res = true;
436  } else
437  res = QCD::setFlag(name, value);
438 
439  if (!res) res = SMFlavour.setFlag(name, value);
440 
441  return (res);
442 }
443 
444 bool StandardModel::setFlagStr(const std::string name, const std::string value)
445 {
446  bool res = false;
447  if (name.compare("Mw") == 0) {
448  if (checkEWPOscheme(value)) {
449  FlagMw = value;
450  res = true;
451  } else
452  throw std::runtime_error("StandardModel::setFlagStr(): Invalid flag "
453  + name + "=" + value);
454 
455  } else if (name.compare("RhoZ") == 0) {
456  if (checkEWPOscheme(value)) {
457  FlagRhoZ = value;
458  res = true;
459  } else
460  throw std::runtime_error("StandardModel::setFlagStr(): Invalid flag "
461  + name + "=" + value);
462  } else if (name.compare("KappaZ") == 0) {
463  if (checkEWPOscheme(value)) {
464  FlagKappaZ = value;
465  res = true;
466  } else
467  throw std::runtime_error("StandardModel::setFlagStr(): Invalid flag "
468  + name + "=" + value);
469  } else
470  res = QCD::setFlagStr(name, value);
471 
472  return (res);
473 }
474 
476 {
477  return (QCD::CheckFlags());
478 }
479 
480 
482 // For EWPO caches
483 
485 {
486  // 11 parameters in QCD:
487  // AlsMz, Mz, mup, mdown, mcharm, mstrange, mtop, mbottom,
488  // mut, mub, muc
489  // 19 parameters in StandardModel
490  // GF, ale, dAle5Mz, mHl,
491  // mneutrino_1, mneutrino_2, mneutrino_3, melectron, mmu, mtau,
492  // delMw, delSin2th_l, delSin2th_q, delSin2th_b, delGammaZ, delsigma0H, delR0l, delR0c, delR0b,
493  // 3 flags in StandardModel
494  // FlagMw_cache, FlagRhoZ_cache, FlagKappaZ_cache
495 
496  // Note: When modifying the array below, the constant NumSMParams has to
497  // be modified accordingly.
498  double SMparams[NumSMParamsForEWPO] = {
499  AlsMz, Mz, GF, ale, dAle5Mz,
500  mHl, mtpole,
505  leptons[MU].getMass(),
506  leptons[TAU].getMass(),
507  quarks[UP].getMass(),
508  quarks[DOWN].getMass(),
509  quarks[CHARM].getMass(),
511  quarks[BOTTOM].getMass(),
512  mut, mub, muc,
517  };
518 
519  // check updated parameters
520  bool bNotUpdated = true;
521  for (int i = 0; i < NumSMParamsForEWPO; ++i) {
522  if (SMparamsForEWPO_cache[i] != SMparams[i]) {
523  SMparamsForEWPO_cache[i] = SMparams[i];
524  bNotUpdated &= false;
525  }
526  }
527 
528  return bNotUpdated;
529 }
530 
532 
533 double StandardModel::ale_OS(const double mu, orders order) const
534 {
535  if (mu < 50.0)
536  throw std::runtime_error("out of range in StandardModel::ale_OS()");
537 
538  double N = 20.0 / 3.0;
539  double beta1 = N / 3.0;
540  double beta2 = N / 4.0;
541  double alpha_ini = alphaMz();
542  double v = 1.0 + 2.0 * beta1 * alpha_ini / M_PI * log(Mz / mu);
543 
544  switch (order) {
545  case LO:
546  return ( alpha_ini / v);
547  case FULLNLO:
548  return ( alpha_ini / v * (1.0 - beta2 / beta1 * alpha_ini / M_PI * log(v) / v));
549  default:
550  throw std::runtime_error("Error in StandardModel::ale_OS()");
551  }
552 }
553 
554 double StandardModel::Beta_s(int nm, unsigned int nf) const
555 {
556  unsigned int nu = nf % 2 == 0 ? nf / 2 : nf / 2;
557  unsigned int nd = nf % 2 == 0 ? nf / 2 : 1 + nf / 2;
558  double Qu = 2. / 3., Qd = -1. / 3., Qbar2 = nu * Qu * Qu + nd * Qd * Qd,
559  Qbar4 = nu * Qu * Qu * Qu * Qu + nd * Qd * Qd * Qd * Qd;
560 
561  switch(nm)
562  {
563  case 00:
564  return(Beta0((double) nf));
565  case 10:
566  return(Beta1((double) nf));
567  case 20:
568  return(Beta2((double) nf));
569  case 30:
570  return(Beta3((double) nf));
571  case 01:
572  return(-4. * TF * Qbar2 );
573  case 11:
574  return((4. * CF - 8. * CA) * TF * Qbar2 );
575  case 02:
576  return(11./3. * TF * Qbar2 * Beta_e(00, nf) + 2. * TF * Qbar4);
577  default:
578  throw std::runtime_error("StandardModel::Beta_s(): case not implemented");
579  }
580 }
581 
582 double StandardModel::Beta_e(int nm, unsigned int nf) const
583 {
584  unsigned int nu = nf % 2 == 0 ? nf / 2 : nf / 2;
585  unsigned int nd = nf % 2 == 0 ? nf / 2 : 1 + nf / 2;
586  double Qu = 2. / 3., Qd = -1. / 3., Qbar2 = nu * Qu * Qu + nd * Qd * Qd,
587  Qbar4 = nu * Qu * Qu * Qu * Qu + nd * Qd * Qd * Qd * Qd;
588 
589  switch(nm)
590  {
591  case 00:
592  return(4./3. * (Qbar2 * Nc + 3.)); // QL^2 = 1
593  case 10:
594  return(4. * (Qbar4 * Nc + 3.));
595  case 01:
596  return(4. * CF * Nc * Qbar2);
597  default:
598  throw std::runtime_error("StandardModel::Beta_e(): case not implemented");
599  }
600 }
601 
602 double StandardModel::Als(double mu, orders order, bool qed_flag, bool Nf_thr) const
603 {
604  switch (order)
605  {
606  case LO:
607  realorder = order;
608  return AlsByOrder(mu, LO, qed_flag, Nf_thr);
609  case FULLNLO:
610  realorder = order;
611  return (AlsByOrder(mu, LO, qed_flag, Nf_thr) + AlsByOrder(mu, NLO, qed_flag, Nf_thr));
612  case FULLNNLO:
613  realorder = order;
614  return (AlsByOrder(mu, LO, qed_flag, Nf_thr) + AlsByOrder(mu, NLO, qed_flag, Nf_thr) + AlsByOrder(mu, NNLO, qed_flag, Nf_thr));
615  case FULLNNNLO:
616  realorder = order;
617  return (AlsByOrder(mu, LO, qed_flag, Nf_thr) + AlsByOrder(mu, NLO, qed_flag, Nf_thr) + AlsByOrder(mu, NNLO, qed_flag, Nf_thr) + AlsByOrder(mu, NNNLO, qed_flag, Nf_thr));
618  default:
619  throw std::runtime_error("StandardModel::Als(): " + orderToString(order) + " is not implemented.");
620  }
621 }
622 
623 double StandardModel::AlsByOrder(double mu, orders order, bool qed_flag, bool Nf_thr) const
624 {
625  int i, nfAls = (int) Nf(Mz), nfmu = Nf_thr ? (int) Nf(mu) : nfAls;
626  double als, alstmp, mutmp;
627  orders fullord;
628 
629  for (i = 0; i < CacheSize; ++i)
630  if ((mu == als_cache[0][i]) && ((double) order == als_cache[1][i]) &&
631  (AlsMz == als_cache[2][i]) && (Mz == als_cache[3][i]) &&
632  (mut == als_cache[4][i]) && (mub == als_cache[5][i]) &&
633  (muc == als_cache[6][i]) && (double) qed_flag == als_cache[7][i]
634  && (double) Nf_thr == als_cache[8][i] && alphaMz() == als_cache[9][i])
635  return als_cache[10][i];
636 
637  switch (order)
638  {
639  case LO:
640  case NLO:
641  case NNLO:
642  case NNNLO:
643  if (nfAls == nfmu)
644  return(AlsWithInit(mu, AlsMz, Mz, order, qed_flag));
645  fullord = FullOrder(order);
646  if (nfAls > nfmu) {
647  mutmp = BelowTh(Mz);
648  alstmp = AlsWithInit(mutmp, AlsMz, Mz, realorder, qed_flag);
649  alstmp *= (1. - NfThresholdCorrections(mutmp, MassOfNf(nfAls), alstmp, nfAls, fullord)); // WARNING: QED threshold corrections not implemented yet
650  for (i = nfAls - 1; i > nfmu; i--) {
651  mutmp = BelowTh(mutmp - MEPS);
652  alstmp = AlsWithInit(mutmp, alstmp, AboveTh(mutmp) - MEPS, realorder, qed_flag);
653  alstmp *= (1. - NfThresholdCorrections(mutmp, MassOfNf(i), alstmp, i, fullord)); // WARNING: QED threshold corrections not implemented yet
654  }
655  als = AlsWithInit(mu, alstmp, AboveTh(mu) - MEPS, order, qed_flag);
656  }
657 
658  if (nfAls < nfmu) {
659  mutmp = AboveTh(Mz) - MEPS;
660  alstmp = AlsWithInit(mutmp, AlsMz, Mz, realorder, qed_flag);
661  alstmp *= (1. + NfThresholdCorrections(mutmp, MassOfNf(nfAls + 1), alstmp, nfAls + 1, fullord)); // WARNING: QED threshold corrections not implemented yet
662  for (i = nfAls + 1; i < nfmu; i++) {
663  mutmp = AboveTh(mutmp) - MEPS;
664  alstmp = AlsWithInit(mutmp, alstmp, BelowTh(mutmp) + MEPS, realorder, qed_flag);
665  alstmp *= (1. + NfThresholdCorrections(mutmp, MassOfNf(i + 1), alstmp, i + 1, fullord)); // WARNING: QED threshold corrections not implemented yet
666  }
667  als = AlsWithInit(mu, alstmp, BelowTh(mu) + MEPS, order, qed_flag);
668  }
669 
670  CacheShift(als_cache, 11);
671  als_cache[0][0] = mu;
672  als_cache[1][0] = (double) order;
673  als_cache[2][0] = AlsMz;
674  als_cache[3][0] = Mz;
675  als_cache[4][0] = mut;
676  als_cache[5][0] = mub;
677  als_cache[6][0] = muc;
678  als_cache[7][0] = (double) qed_flag;
679  als_cache[8][0] = (double) Nf_thr;
680  als_cache[9][0] = alphaMz();
681  als_cache[10][0] = als;
682 
683  return als;
684  default:
685  throw std::runtime_error("StandardModel::Als(): " + orderToString(order) + " is not implemented.");
686  }
687 }
688 
689 double StandardModel::AlsWithInit(double mu, double alsi, double mu_i, orders order, bool qed_flag) const
690 {
691  double nf = Nf(mu), alei = Ale(mu_i, FULLNLO); // CHANGE ME!
692  double b00s = Beta_s(00, nf), b00e = Beta_e(00, nf);
693  double v = 1. + b00s * alsi / 2. / M_PI * log(mu / mu_i);
694  double ve = 1. - b00e * alei / 2. / M_PI * log(mu / mu_i);
695  double logv = log(v), logve = log(ve);
696  double rho = 1. / (1. + b00e * alei / b00s / alsi);
697  double als = QCD::AlsWithInit(mu, alsi, mu_i, order);
698  double b01s = Beta_s(01,nf), b01s00e = b01s / b00e;
699 
700  if (qed_flag)
701  switch (order)
702  {
703  case LO:
704  break;
705  case NLO:
706  als += alsi * alsi / 4. / M_PI / v / v * b01s00e * logve;
707  break;
708  case NNLO:
709  als += alsi * alsi * alsi / 4. / 4. / M_PI / M_PI / v / v / v * (
710  b01s00e * b01s00e * logve * logve + b01s00e * Beta_s(10, nf) / b00s *
711  (-2. * logv * logve + rho * ve * logve));
712  break;
713  case NNNLO:
714  als += alsi * alsi * alei / 4. / 4. / M_PI / M_PI / v / v / ve * (Beta_s(02, nf) / b00e *
715  (ve - 1.) + Beta_s(11, nf) / b00s * rho * ve * (logve - logv) + b01s00e * Beta_e(10, nf) /
716  b00e * (logve - ve + 1.) + b01s * Beta_s(10, nf) / b00s / b00s * rho * logv +
717  b01s00e * Beta_e(01, nf) / b00s * (rho * ve * (logv - logve) - logv));
718  break;
719  case FULLNLO:
720  return (AlsWithInit(mu, alsi, mu_i, LO, true) + AlsWithInit(mu, alsi, mu_i, NLO, true));
721  case FULLNNLO:
722  return (AlsWithInit(mu, alsi, mu_i, LO, true) + AlsWithInit(mu, alsi, mu_i, NLO, true)+ AlsWithInit(mu, alsi, mu_i, NNLO, true));
723  case FULLNNNLO:
724  return (AlsWithInit(mu, alsi, mu_i, LO, true) + AlsWithInit(mu, alsi, mu_i, NLO, true)+ AlsWithInit(mu, alsi, mu_i, NNLO, true) + AlsWithInit(mu, alsi, mu_i, NNNLO, true));
725  default:
726  throw std::runtime_error("StandardModel::AlsWithInit(): " + orderToString(order) + " is not implemented.");
727  }
728 
729  return (als);
730 }
731 
732 double StandardModel::Ale(const double mu, orders order, bool Nf_thr) const
733 {
734  int i, nfAle = (int) Nf(Mz), nfmu = Nf_thr ? (int) Nf(mu) : nfAle;
735  double ale, aletmp, mutmp, aleMz = alphaMz();
736  orders fullord;
737 
738  for (i = 0; i < CacheSize; ++i)
739  if ((mu == ale_cache[0][i]) && ((double) order == ale_cache[1][i]) &&
740  (AlsMz == ale_cache[2][i]) && (Mz == ale_cache[3][i]) &&
741  (mut == ale_cache[4][i]) && (mub == ale_cache[5][i]) &&
742  (muc == ale_cache[6][i])
743  && (double) Nf_thr == ale_cache[7][i] && aleMz == ale_cache[8][i])
744  return ale_cache[9][i];
745 
746  switch (order)
747  {
748  case FULLNLO:
749  return (Ale(mu, LO, Nf_thr) + Ale(mu, NLO, Nf_thr));
750  case FULLNNLO:
751  return (Ale(mu, LO, Nf_thr) + Ale(mu, NLO, Nf_thr) + Ale(mu, NNLO, Nf_thr));
752  case FULLNNNLO:
753  return (Ale(mu, LO, Nf_thr) + Ale(mu, NLO, Nf_thr) + Ale(mu, NNLO, Nf_thr) + Ale(mu, NNNLO, Nf_thr));
754  case LO:
755  if (nfAle == nfmu)
756  return(AleWithInit(mu, aleMz, Mz, order));
757  case NLO:
758  case NNLO:
759  case NNNLO:
760  if (nfAle == nfmu)
761  return(0.);
762  fullord = FullOrder(order);
763  if (nfAle > nfmu) {
764  mutmp = BelowTh(Mz);
765  aletmp = AleWithInit(mutmp, aleMz, Mz, fullord);
766 // aletmp *= (1. - NfThresholdCorrections(mutmp, MassOfNf(nfAle), alstmp, nfAls, fullord)); // WARNING: QED threshold corrections not implemented yet
767  for (i = nfAle - 1; i > nfmu; i--) {
768  mutmp = BelowTh(mutmp - MEPS);
769  aletmp = AleWithInit(mutmp, aletmp, AboveTh(mutmp) - MEPS, fullord);
770 // aletmp *= (1. - NfThresholdCorrections(mutmp, MassOfNf(i), aletmp, i, fullord)); // WARNING: QED threshold corrections not implemented yet
771  }
772  ale = AleWithInit(mu, aletmp, AboveTh(mu) - MEPS, order);
773  }
774 
775  if (nfAle < nfmu) {
776  mutmp = AboveTh(Mz) - MEPS;
777  aletmp = AleWithInit(mutmp, aleMz, Mz, fullord);
778 // alstmp *= (1. + NfThresholdCorrections(mutmp, MassOfNf(nfAls + 1), alstmp, nfAls + 1, fullord)); // WARNING: QED threshold corrections not implemented yet
779  for (i = nfAle + 1; i < nfmu; i++) {
780  mutmp = AboveTh(mutmp) - MEPS;
781  aletmp = AleWithInit(mutmp, aletmp, BelowTh(mutmp) + MEPS, fullord);
782 // alstmp *= (1. + NfThresholdCorrections(mutmp, MassOfNf(i + 1), alstmp, i + 1, fullord)); // WARNING: QED threshold corrections not implemented yet
783  }
784  ale = AleWithInit(mu, aletmp, BelowTh(mu) + MEPS, order);
785  }
786 
787  CacheShift(ale_cache, 10);
788  ale_cache[0][0] = mu;
789  ale_cache[1][0] = (double) order;
790  ale_cache[2][0] = AlsMz;
791  ale_cache[3][0] = Mz;
792  ale_cache[4][0] = mut;
793  ale_cache[5][0] = mub;
794  ale_cache[6][0] = muc;
795  ale_cache[7][0] = (double) Nf_thr;
796  ale_cache[8][0] = aleMz;
797  ale_cache[9][0] = ale;
798 
799  return ale;
800  default:
801  throw std::runtime_error("StandardModel::Ale(): " + orderToString(order) + " is not implemented.");
802  }
803 }
804 
805 double StandardModel::AleWithInit(double mu, double alei, double mu_i, orders order) const
806 {
807  if (fabs(mu - mu_i) < MEPS) return(alei);
808 
809  double nf = Nf(mu), alsi = Als(mu_i, FULLNNNLO, true);
810  double b00e = Beta_e(00, nf), b00s = Beta_s(00, nf);
811  double ve = 1. - b00e * alei / 2. / M_PI * log(mu / mu_i);
812  double logv = log(1. + b00s * alsi / 2. / M_PI * log(mu / mu_i)), logve = log(ve);
813 
814  switch (order)
815  {
816  case LO:
817  return (alei / ve);
818  case NLO:
819  return (- alei * alei / 4. / M_PI / ve / ve * (Beta_e(10, nf) / b00e * logve - Beta_e(01, nf) / b00s * logv) );
820  // Higher order terms ? Need to understand eq. (35)
821  case FULLNLO:
822  return (AleWithInit(mu, alei, mu_i, LO) + AleWithInit(mu, alei, mu_i, NLO));
823  default:
824  throw std::runtime_error("StandardModel::AleWithInit(): " + orderToString(order) + " is not implemented.");
825  }
826 }
827 
828 double StandardModel::DeltaAlphaLepton(const double s) const
829 {
830  if (s == Mz * Mz)
833  return DeltaAlphaLepton_cache;
834 
835  double DeltaAlphaL = 0.0;
836  if (flag_order[EW1])
837  DeltaAlphaL += myOneLoopEW->DeltaAlpha_l(s);
838  if (flag_order[EW1QCD1])
839  DeltaAlphaL += myTwoLoopQCD->DeltaAlpha_l(s);
840  if (flag_order[EW1QCD2])
841  DeltaAlphaL += myThreeLoopQCD->DeltaAlpha_l(s);
842  if (flag_order[EW2])
843  DeltaAlphaL += myTwoLoopEW->DeltaAlpha_l(s);
844  if (flag_order[EW2QCD1])
845  DeltaAlphaL += myThreeLoopEW2QCD->DeltaAlpha_l(s);
846  if (flag_order[EW3])
847  DeltaAlphaL += myThreeLoopEW->DeltaAlpha_l(s);
848 
849  if (s == Mz * Mz) {
850  DeltaAlphaLepton_cache = DeltaAlphaL;
852  }
853  return DeltaAlphaL;
854 }
855 
857 {
858  double Mz2 = Mz*Mz;
859  return (DeltaAlphaLepton(Mz2) + dAle5Mz);
860 }
861 
862 double StandardModel::DeltaAlphaTop(const double s) const
863 {
864  double DeltaAlpha = 0.0;
865  if (flag_order[EW1])
867  if (flag_order[EW1QCD1])
869  if (flag_order[EW1QCD2])
871  if (flag_order[EW2])
873  if (flag_order[EW2QCD1])
875  if (flag_order[EW3])
877 
878  return DeltaAlpha;
879 }
880 
882 {
885  return DeltaAlpha_cache;
886 
887  double Mz2 = Mz*Mz;
889  useDeltaAlpha_cache = true;
890  return DeltaAlpha_cache;
891 }
892 
894 {
895  return (ale / (1.0 - DeltaAlpha()));
896 // return(1./127.918); // FOR HEFFDF1 TEST
897 }
898 
899 double StandardModel::Alstilde5(const double mu) const
900 {
901  double mu_0 = Mz;
902  double alphatilde_e = alphaMz()/4./M_PI;
903  double alphatilde_s = AlsMz/4./M_PI;
904  unsigned int nf = 5;
905 
906  double B00S = Beta0(nf), B10S = Beta1(nf), B20S = Beta2(nf), B30S = gsl_sf_zeta_int(3) * 352864./81. - 598391./1458,
907  B01S = -22./9., B11S = -308./27., B02S = 4945./243.;
908 
909  double B00E = 80./9., B01E = 176./9., B10E = 464./27.;
910 
911  double B10soB00s = B10S / B00S;
912  double B01soB00e = B01S/B00E;
913 
914  double vs= 1. + 2. * B00S * alphatilde_s * log(mu/ mu_0);
915  double ve= 1. - 2. * B00E * alphatilde_e * log(mu/ mu_0);
916  double ps= B00S * alphatilde_s /(B00S * alphatilde_s + B00E * alphatilde_e);
917 
918  double logve = log(ve);
919  double logvs = log(vs);
920  double logeos = log(ve/vs);
921  double logsoe = log(vs/ve);
922  double asovs = alphatilde_s/vs;
923  double aeove = alphatilde_e/ve;
924 
925  double result = 0;
926 
927  result = asovs - pow(asovs, 2) * (logvs * B10soB00s - logve * B01soB00e)
928  + pow(asovs, 3) * ((1. - vs) * B20S / B00S + B10soB00s * B10soB00s * (logvs * logvs - logvs
929  + vs - 1.) + B01soB00e * B01soB00e * logve * logve + (-2. * logvs * logve
930  + ps * ve * logve) * B01S * B10S/(B00E * B00S))
931  + pow(asovs, 4) * (0.5 * B30S *(1. - vs * vs)/ B00S + ((2. * vs - 3.) * logvs + vs * vs
932  - vs) * B20S * B10soB00s /(B00S) + B10soB00s * B10soB00s * B10soB00s * (- pow(logvs,3)
933  + 5. * pow(logvs,2) / 2. + 2. * (1. - vs) * logvs - (vs - 1.) * (vs - 1.)* 0.5))
934  + pow(asovs, 2) * (aeove) * ((ve - 1.) * B02S / B00E
935  + ps * ve * logeos * B11S /B00S +(logve - ve + 1.) * B01soB00e * B10E/(B00E)
936  + logvs * ps * B01S * B10soB00s/(B00S) +(logsoe * ve * ps - logvs) * B01soB00e * B01E/( B00S));
937  return (result);
938 }
939 
940 
942 
943 double StandardModel::v() const
944 {
945  return ( 1. / sqrt(sqrt(2.) * GF));
946 }
947 
948 
950 
952 {
953  return ( Mz / sqrt(2.0) * sqrt(1.0 + sqrt(1.0 - 4.0 * M_PI * ale / sqrt(2.0) / GF / Mz / Mz)));
954 }
955 
956 double StandardModel::s02() const
957 {
958  double tmp = 1.0 - 4.0 * M_PI * alphaMz() / sqrt(2.0) / GF / Mz / Mz;
959  if (tmp < 0.0)
960  throw std::runtime_error("Error in s02()");
961 
962  return ( (1.0 - sqrt(tmp)) / 2.0);
963 }
964 
965 double StandardModel::c02() const
966 {
967  return ( 1.0 - s02());
968 }
969 
970 double StandardModel::Mw() const
971 {
972  /* Debug */
973  //std::cout << std::boolalpha
974  // << checkScheme(schemeMw_cache,schemeMw,false)
975  // << " [cache:" << schemeMw_cache
976  // << " current:" << schemeMw << "]" << std::endl;
977 
979  if (useMw_cache)
980  return Mw_cache;
981 
982  double Mw;
983  if (FlagMw.compare("APPROXIMATEFORMULA") == 0)
985  else {
986  //std::cout << std::setprecision(12)
987  // << "TEST: Mw_tree = " << Mw_tree() << std::endl;
988 
989  double DeltaRho[orders_EW_size], DeltaR_rem[orders_EW_size];
990  ComputeDeltaRho(Mw_tree(), DeltaRho);
991  ComputeDeltaR_rem(Mw_tree(), DeltaR_rem);
992  Mw = resumMw(Mw_tree(), DeltaRho, DeltaR_rem);
993 
994  /* Mw from iterations */
995  double Mw_org = Mw_tree();
996  while (fabs(Mw - Mw_org) > Mw_error) {
997  Mw_org = Mw;
998  ComputeDeltaRho(Mw, DeltaRho);
999  ComputeDeltaR_rem(Mw, DeltaR_rem);
1000  Mw = resumMw(Mw, DeltaRho, DeltaR_rem);
1001  /* TEST */
1002  //int prec_def = std::cout.precision();
1003  //std::cout << std::setprecision(12) << "TEST: Mw_org = " << Mw_org
1004  // << " Mw_new = " << Mw << std::endl;
1005  //std::cout.precision(prec_def);
1006  }
1007  }
1008 
1009 // Mw = 80.426; // FOR HEFFDF1 TEST
1010  Mw_cache = Mw;
1011  useMw_cache = true;
1012  return Mw;
1013 }
1014 
1015 double StandardModel::cW2(double Mw_i) const
1016 {
1017  return ( Mw_i * Mw_i / Mz / Mz);
1018 }
1019 
1020 double StandardModel::cW2() const
1021 {
1022  return ( cW2(Mw()));
1023 // return (1.0 - 0.2312); // FOR HEFFDF1 TEST
1024 }
1025 
1026 double StandardModel::sW2(double Mw_i) const
1027 {
1028  return ( 1.0 - cW2(Mw_i));
1029 }
1030 
1031 double StandardModel::sW2() const
1032 {
1033  return ( 1.0 - cW2());
1034 }
1035 
1037 {
1038  /* in the experimental/running-width scheme */
1039  double myMw = Mw();
1040  double sW2 = 1.0 - myMw * myMw / Mz / Mz;
1041  double tmp = sqrt(2.0) * GF * sW2 * myMw * myMw / M_PI / ale;
1042  if (FlagMw.compare("NORESUM") == 0
1043  || FlagMw.compare("APPROXIMATEFORMULA") == 0) {
1044  return (tmp - 1.0);
1045  } else {
1046  return (1.0 - 1.0 / tmp);
1047  }
1048 }
1049 
1050 void StandardModel::ComputeDeltaRho(const double Mw_i,
1051  double DeltaRho[orders_EW_size]) const
1052 {
1053  if (flag_order[EW1])
1054  DeltaRho[EW1] = myOneLoopEW->DeltaRho(Mw_i);
1055  else
1056  DeltaRho[EW1] = 0.0;
1057  if (flag_order[EW1QCD1])
1058  DeltaRho[EW1QCD1] = myTwoLoopQCD->DeltaRho(Mw_i);
1059  else
1060  DeltaRho[EW1QCD1] = 0.0;
1061  if (flag_order[EW1QCD2])
1062  DeltaRho[EW1QCD2] = myThreeLoopQCD->DeltaRho(Mw_i);
1063  else
1064  DeltaRho[EW1QCD2] = 0.0;
1065  if (flag_order[EW2])
1066  DeltaRho[EW2] = myTwoLoopEW->DeltaRho(Mw_i);
1067  else
1068  DeltaRho[EW2] = 0.0;
1069  if (flag_order[EW2QCD1])
1070  DeltaRho[EW2QCD1] = myThreeLoopEW2QCD->DeltaRho(Mw_i);
1071  else
1072  DeltaRho[EW2QCD1] = 0.0;
1073  if (flag_order[EW3])
1074  DeltaRho[EW3] = myThreeLoopEW->DeltaRho(Mw_i);
1075  else
1076  DeltaRho[EW3] = 0.0;
1077 }
1078 
1079 void StandardModel::ComputeDeltaR_rem(const double Mw_i,
1080  double DeltaR_rem[orders_EW_size]) const
1081 {
1082  if (flag_order[EW1])
1083  DeltaR_rem[EW1] = myOneLoopEW->DeltaR_rem(Mw_i);
1084  else
1085  DeltaR_rem[EW1] = 0.0;
1086  if (flag_order[EW1QCD1])
1087  DeltaR_rem[EW1QCD1] = myTwoLoopQCD->DeltaR_rem(Mw_i);
1088  else
1089  DeltaR_rem[EW1QCD1] = 0.0;
1090  if (flag_order[EW1QCD2])
1091  DeltaR_rem[EW1QCD2] = myThreeLoopQCD->DeltaR_rem(Mw_i);
1092  else
1093  DeltaR_rem[EW1QCD2] = 0.0;
1094  if (flag_order[EW2])
1095  DeltaR_rem[EW2] = myTwoLoopEW->DeltaR_rem(Mw_i);
1096  else
1097  DeltaR_rem[EW2] = 0.0;
1098  if (flag_order[EW2QCD1])
1099  DeltaR_rem[EW2QCD1] = myThreeLoopEW2QCD->DeltaR_rem(Mw_i);
1100  else
1101  DeltaR_rem[EW2QCD1] = 0.0;
1102  if (flag_order[EW3])
1103  DeltaR_rem[EW3] = myThreeLoopEW->DeltaR_rem(Mw_i);
1104  else
1105  DeltaR_rem[EW3] = 0.0;
1106 }
1107 
1108 
1110 
1111 double StandardModel::Mzbar() const
1112 {
1113  double G0 = GF * pow(Mz, 3.0) / 24.0 / sqrt(2.0) / M_PI;
1114  double sW2tree = 1.0 - Mw_tree() * Mw_tree() / Mz / Mz;
1115  double Gz = 6.0 * G0; // neutrinos
1116  Gz += 3.0 * G0 * (pow(1.0 - 4.0 * sW2tree, 2.0) + 1.0); // e, mu and tau
1117  Gz += 6.0 * G0 * (pow(1.0 - 8.0 / 3.0 * sW2tree, 2.0) + 1.0)
1118  * (1.0 + AlsMz / M_PI); // u and c
1119  Gz += 9.0 * G0 * (pow(1.0 - 4.0 / 3.0 * sW2tree, 2.0) + 1.0)
1120  * (1.0 + AlsMz / M_PI); // d, s and b
1121 
1122  //Gz = 2.4952; // experimental data
1123  //std::cout << "Gz=" << Gz << std::endl; // for test
1124 
1125  return ( Mz - Gz * Gz / 2.0 / Mz);
1126 }
1127 
1128 double StandardModel::MwbarFromMw(const double Mw) const
1129 {
1130  double AlsMw = Als(Mw, FULLNLO);
1131  double Gw_SM = 3.0 * GF * pow(Mw, 3.0) / 2.0 / sqrt(2.0) / M_PI
1132  * (1.0 + 2.0 * AlsMw / 3.0 / M_PI);
1133 
1134  return ( Mw - Gw_SM * Gw_SM / 2.0 / Mw);
1135 }
1136 
1137 double StandardModel::MwFromMwbar(const double Mwbar) const
1138 {
1139  double AlsMw = Als(Mwbar, FULLNNLO);
1140  double Gw_SM = 3.0 * GF * pow(Mwbar, 3.0) / 2.0 / sqrt(2.0) / M_PI
1141  * (1.0 + 2.0 * AlsMw / 3.0 / M_PI);
1142 
1143  return (Mwbar + Gw_SM * Gw_SM / 2.0 / Mwbar);
1144 }
1145 
1147 {
1148  double Mwbar_SM = MwbarFromMw(Mw());
1149  double sW2bar = 1.0 - Mwbar_SM * Mwbar_SM / Mzbar() / Mzbar();
1150  double tmp = sqrt(2.0) * GF * sW2bar * Mwbar_SM * Mwbar_SM / M_PI / ale;
1151 
1152  return (tmp - 1.0);
1153 }
1154 
1155 
1157 
1158 double StandardModel::rho_GammaW(const Particle fi, const Particle fj) const
1159 {
1160  double rhoW = 0.0;
1161  if (flag_order[EW1])
1162  rhoW = myOneLoopEW->rho_GammaW(fi, fj, Mw());
1163  return rhoW;
1164 }
1165 
1166 double StandardModel::GammaW(const Particle fi, const Particle fj) const
1167 {
1168  if ((fi.getIndex()) % 2 || (fj.getIndex() + 1) % 2)
1169  throw std::runtime_error("Error in StandardModel::GammaW()");
1170 
1171  double G0 = GF * pow(Mw(), 3.0) / 6.0 / sqrt(2.0) / M_PI;
1172  gslpp::complex V(0.0, 0.0, false);
1173 
1174  if (fi.is("TOP"))
1175  return (0.0);
1176 
1177  if (fj.getIndex() - fi.getIndex() == 1)
1178  V = gslpp::complex(1.0, 0.0, false);
1179  else
1180  V = gslpp::complex(0.0, 0.0, false);
1181 
1182  if (fi.is("LEPTON"))
1183  return ( V.abs2() * G0 * rho_GammaW(fi, fj));
1184  else {
1185  double AlsMw = AlsWithInit(Mw(), AlsMz, Mz, FULLNLO, false);
1186  return ( 3.0 * V.abs2() * G0 * rho_GammaW(fi, fj)*(1.0 + AlsMw / M_PI));
1187  }
1188 }
1189 
1191 {
1193  if (useGammaW_cache)
1194  return GammaW_cache;
1195 
1196  double GammaWtmp = 0.;
1197 
1198  for (int i = 0; i < 6; i += 2)
1199  GammaWtmp += GammaW(leptons[i], leptons[i + 1]) + GammaW(quarks[i], quarks[i + 1]);
1200 
1201  GammaW_cache = GammaWtmp;
1202  useGammaW_cache = true;
1203  return GammaWtmp;
1204 }
1205 
1206 
1208 
1209 double StandardModel::A_f(const Particle f) const
1210 {
1211  double Re_kappa = kappaZ_f(f).real();
1212  double Re_gV_over_gA = 1.0 - 4.0 * fabs(f.getCharge()) * Re_kappa * sW2();
1213  return ( 2.0 * Re_gV_over_gA / (1.0 + pow(Re_gV_over_gA, 2.0)));
1214 }
1215 
1216 double StandardModel::AFB(const Particle f) const
1217 {
1218  return (3.0 / 4.0 * A_f(leptons[ELECTRON]) * A_f(f));
1219 }
1220 
1222 {
1223  double Re_kappa = kappaZ_f(f).real();
1224  return ( Re_kappa * sW2());
1225 }
1226 
1227 double StandardModel::GammaZ(const Particle f) const
1228 {
1229  if (f.is("TOP"))
1230  return 0.0;
1231  double Gamma;
1232  if (!IsFlagNoApproximateGammaZ()) {
1233 
1234  if (FlagSMAux) {
1235 
1236 // New (Testing)
1237 
1238  /* SM contribution with the approximate formula */
1239  if (f.is("NEUTRINO_1") || f.is("NEUTRINO_2") || f.is("NEUTRINO_3"))
1240  Gamma = myApproximateFormulae->X_full("Gamma_nu");
1241  else if (f.is("ELECTRON") || f.is("MU"))
1242  Gamma = myApproximateFormulae->X_full("Gamma_e_mu");
1243  else if (f.is("TAU"))
1244  Gamma = myApproximateFormulae->X_full("Gamma_tau");
1245  else if (f.is("UP"))
1246  Gamma = myApproximateFormulae->X_full("Gamma_u");
1247  else if (f.is("CHARM"))
1248  Gamma = myApproximateFormulae->X_full("Gamma_c");
1249  else if (f.is("DOWN") || f.is("STRANGE"))
1250  Gamma = myApproximateFormulae->X_full("Gamma_d_s");
1251  else if (f.is("BOTTOM"))
1252  Gamma = myApproximateFormulae->X_full("Gamma_b");
1253  else
1254  throw std::runtime_error("Error in StandardModel::GammaZ()");
1255 
1256  } else {
1257 
1258 // Original
1259 
1260  /* SM contribution with the approximate formula */
1261  if (f.is("NEUTRINO_1") || f.is("NEUTRINO_2") || f.is("NEUTRINO_3"))
1262  Gamma = myApproximateFormulae->X_full_2_loop("Gamma_nu");
1263  else if (f.is("ELECTRON") || f.is("MU"))
1264  Gamma = myApproximateFormulae->X_full_2_loop("Gamma_e_mu");
1265  else if (f.is("TAU"))
1266  Gamma = myApproximateFormulae->X_full_2_loop("Gamma_tau");
1267  else if (f.is("UP"))
1268  Gamma = myApproximateFormulae->X_full_2_loop("Gamma_u");
1269  else if (f.is("CHARM"))
1270  Gamma = myApproximateFormulae->X_full_2_loop("Gamma_c");
1271  else if (f.is("DOWN") || f.is("STRANGE"))
1272  Gamma = myApproximateFormulae->X_full_2_loop("Gamma_d_s");
1273  else if (f.is("BOTTOM"))
1274  Gamma = myApproximateFormulae->X_full_2_loop("Gamma_b");
1275  else
1276  throw std::runtime_error("Error in StandardModel::GammaZ()");
1277 
1278  }
1279 
1280  } else {
1281  gslpp::complex myrhoZ_f = rhoZ_f(f);
1282  gslpp::complex gV_over_gA = gV_f(f) / gA_f(f);
1283  double G0 = GF * pow(Mz, 3.0) / 24.0 / sqrt(2.0) / M_PI;
1284  if (f.is("LEPTON")) {
1285  double myalphaMz = alphaMz();
1286  double Q = f.getCharge();
1287  double xl = pow(f.getMass() / Mz, 2.0);
1288  Gamma = G0 * myrhoZ_f.abs() * sqrt(1.0 - 4.0 * xl)
1289  * ((1.0 + 2.0 * xl)*(gV_over_gA.abs2() + 1.0) - 6.0 * xl)
1290  * (1.0 + 3.0 / 4.0 * myalphaMz / M_PI * pow(Q, 2.0));
1291  } else if (f.is("QUARK")) {
1292  Gamma = 3.0 * G0 * myrhoZ_f.abs()*(gV_over_gA.abs2() * RVq((QCD::quark) (f.getIndex() - 6)) + RAq((QCD::quark) (f.getIndex() - 6)));
1293 
1294  /* Nonfactorizable EW-QCD corrections */
1295  Gamma += Delta_EWQCD((QCD::quark) (f.getIndex() - 6));
1296  } else
1297  throw std::runtime_error("Error in StandardModel::GammaZ()");
1298  }
1299 
1300  return Gamma;
1301 }
1302 
1304 {
1306  + GammaZ(leptons[NEUTRINO_3]));
1307 }
1308 
1310 {
1311  double Gamma_had_tmp = 0.0;
1312 
1313  if (!IsFlagNoApproximateGammaZ()){
1314 
1315  if (FlagSMAux) {
1316 
1317 // New (Testing)
1318 
1319  /* SM contribution with the approximate formula */
1320  return myApproximateFormulae->X_full("Gamma_had");
1321 
1322  } else {
1323 
1324 // Original
1325 
1326  /* SM contribution with the approximate formula */
1327  return myApproximateFormulae->X_full_2_loop("Gamma_had");
1328 
1329  }
1330 
1331  } else {
1332 
1333  Gamma_had_tmp = GammaZ(quarks[UP]) + GammaZ(quarks[DOWN]) + GammaZ(quarks[CHARM])
1335 
1336  /* Singlet vector contribution (not included in the approximate formula) */
1337  double G0 = GF * pow(Mz, 3.0) / 24.0 / sqrt(2.0) / M_PI;
1338  Gamma_had_tmp += 4.0 * 3.0 * G0 * RVh();
1339 
1340  return Gamma_had_tmp;
1341  }
1342 }
1343 
1345 {
1346  if (!IsFlagNoApproximateGammaZ()){
1347 
1348  if (FlagSMAux) {
1349 
1350 // New (Testing)
1351 
1352  /* SM contribution with the approximate formula */
1353  return myApproximateFormulae->X_full("GammaZ");
1354 
1355  } else {
1356 
1357 // Original
1358 
1359  /* SM contribution with the approximate formula */
1360  return myApproximateFormulae->X_full_2_loop("GammaZ");
1361 
1362  }
1363 
1364  } else {
1365  return ( GammaZ(leptons[ELECTRON]) + GammaZ(leptons[MU]) + GammaZ(leptons[TAU])
1366  + Gamma_inv() + Gamma_had());
1367  }
1368 }
1369 
1371 {
1372  if (!IsFlagNoApproximateGammaZ()){
1373 
1374  if (FlagSMAux) {
1375 
1376 // New (Testing)
1377 
1378  /* SM contribution with the approximate formula */
1379  return (myApproximateFormulae->X_full("sigmaHadron")
1380  / GeVminus2_to_nb);
1381  } else {
1382 
1383 // Original
1384 
1385  /* SM contribution with the approximate formula */
1386  return (myApproximateFormulae->X_full_2_loop("sigmaHadron")
1387  / GeVminus2_to_nb);
1388  }
1389  } else {
1390  return (12.0 * M_PI * GammaZ(leptons[ELECTRON]) * Gamma_had()
1391  / Mz / Mz / Gamma_Z() / Gamma_Z());
1392  }
1393 }
1394 
1395 double StandardModel::R0_f(const Particle f) const
1396 {
1397 
1398  if (FlagSMAux) {
1399 
1400 // New (Testing)
1401 
1402  if (f.is("ELECTRON")) {
1404  /* SM contribution with the approximate formula */
1405  return (myApproximateFormulae->X_full("R0_electron"));
1406  else
1407  return (Gamma_had() / GammaZ(leptons[ELECTRON]));
1408  } else if (f.is("MU")) {
1410  /* SM contribution with the approximate formula */
1411  return (myApproximateFormulae->X_full("R0_muon"));
1412  else
1413  return (Gamma_had() / GammaZ(leptons[MU]));
1414  } else if (f.is("TAU")) {
1416  /* SM contribution with the approximate formula */
1417  return (myApproximateFormulae->X_full("R0_tau"));
1418  else
1419  return (Gamma_had() / GammaZ(leptons[TAU]));
1420  } else if (f.is("NEUTRINO_1")) {
1422  /* SM contribution with the approximate formula */
1423  return (myApproximateFormulae->X_full("R0_neutrino"));
1424  else
1425  return (GammaZ(leptons[NEUTRINO_1]) / Gamma_had());
1426  } else if (f.is("NEUTRINO_2")) {
1428  /* SM contribution with the approximate formula */
1429  return (myApproximateFormulae->X_full("R0_neutrino"));
1430  else
1431  return (GammaZ(leptons[NEUTRINO_2]) / Gamma_had());
1432  } else if (f.is("NEUTRINO_3")) {
1434  /* SM contribution with the approximate formula */
1435  return (myApproximateFormulae->X_full("R0_neutrino"));
1436  else
1437  return (GammaZ(leptons[NEUTRINO_3]) / Gamma_had());
1438  } else if (f.is("UP")) {
1440  /* SM contribution with the approximate formula */
1441  return (myApproximateFormulae->X_full("R0_up"));
1442  else
1443  return (GammaZ(quarks[UP]) / Gamma_had());
1444 
1445  } else if (f.is("STRANGE")) {
1447  /* SM contribution with the approximate formula */
1448  return (myApproximateFormulae->X_full("R0_strange"));
1449  else
1450  return (GammaZ(quarks[STRANGE]) / Gamma_had());
1451 
1452  } else if (f.is("CHARM")) {
1454  /* SM contribution with the approximate formula */
1455  return (myApproximateFormulae->X_full("R0_charm"));
1456  else
1457  return (GammaZ(quarks[CHARM]) / Gamma_had());
1458 
1459  } else if (f.is("BOTTOM")) {
1461  /* SM contribution with the approximate formula */
1462  return (myApproximateFormulae->X_full("R0_bottom"));
1463  else
1464  return (GammaZ(quarks[BOTTOM]) / Gamma_had());
1465 
1466  } else throw std::runtime_error("StandardModel::R0_f called with wrong argument");
1467 
1468  } else {
1469 
1470 // Original
1471 
1472  if (f.is("ELECTRON")) {
1474  /* SM contribution with the approximate formula */
1475  return (myApproximateFormulae->X_full_2_loop("R0_electron"));
1476  else
1477  return (Gamma_had() / GammaZ(leptons[ELECTRON]));
1478  } else if (f.is("MU")) {
1480  /* SM contribution with the approximate formula */
1481  return (myApproximateFormulae->X_full_2_loop("R0_muon"));
1482  else
1483  return (Gamma_had() / GammaZ(leptons[MU]));
1484  } else if (f.is("TAU")) {
1486  /* SM contribution with the approximate formula */
1487  return (myApproximateFormulae->X_full_2_loop("R0_tau"));
1488  else
1489  return (Gamma_had() / GammaZ(leptons[TAU]));
1490  } else if (f.is("NEUTRINO_1")) {
1492  /* SM contribution with the approximate formula */
1493  return (myApproximateFormulae->X_full_2_loop("R0_neutrino"));
1494  else
1495  return (GammaZ(leptons[NEUTRINO_1]) / Gamma_had());
1496  } else if (f.is("NEUTRINO_2")) {
1498  /* SM contribution with the approximate formula */
1499  return (myApproximateFormulae->X_full_2_loop("R0_neutrino"));
1500  else
1501  return (GammaZ(leptons[NEUTRINO_2]) / Gamma_had());
1502  } else if (f.is("NEUTRINO_3")) {
1504  /* SM contribution with the approximate formula */
1505  return (myApproximateFormulae->X_full_2_loop("R0_neutrino"));
1506  else
1507  return (GammaZ(leptons[NEUTRINO_3]) / Gamma_had());
1508  } else if (f.is("UP")) {
1510  /* SM contribution with the approximate formula */
1511  return (myApproximateFormulae->X_full_2_loop("R0_up"));
1512  else
1513  return (GammaZ(quarks[UP]) / Gamma_had());
1514 
1515  } else if (f.is("STRANGE")) {
1517  /* SM contribution with the approximate formula */
1518  return (myApproximateFormulae->X_full_2_loop("R0_strange"));
1519  else
1520  return (GammaZ(quarks[STRANGE]) / Gamma_had());
1521 
1522  } else if (f.is("CHARM")) {
1524  /* SM contribution with the approximate formula */
1525  return (myApproximateFormulae->X_full_2_loop("R0_charm"));
1526  else
1527  return (GammaZ(quarks[CHARM]) / Gamma_had());
1528 
1529  } else if (f.is("BOTTOM")) {
1531  /* SM contribution with the approximate formula */
1532  return (myApproximateFormulae->X_full_2_loop("R0_bottom"));
1533  else
1534  return (GammaZ(quarks[BOTTOM]) / Gamma_had());
1535 
1536  } else throw std::runtime_error("StandardModel::R0_f called with wrong argument");
1537 
1538  }
1539 }
1540 
1541 double StandardModel::R_inv() const
1542 {
1543  return (Gamma_inv() / GammaZ(leptons[ELECTRON]));
1544 
1545 }
1546 
1547 double StandardModel::N_nu() const
1548 {
1549  double Nnu = 0.0;
1550  double Gl = 0.0;
1551  double Rl = 0.0;
1552 
1553  // Don't assume lepton universality: average over lepton flavours
1555  Rl = (1.0/3.0) * ( R0_f(leptons[ELECTRON]) + R0_f(leptons[MU]) + R0_f(leptons[TAU]) );
1556 
1557  Nnu = sqrt( 12.0 * M_PI * Rl / Mz / Mz / sigma0_had() ) - Rl -3.0;
1558 
1559  Nnu = (Gl/Gamma_inv()) * Nnu;
1560 
1561  return Nnu;
1562 
1563 }
1564 
1565 
1567 
1569 {
1570  return ( gA_f(f)
1571  *(1.0 - 4.0 * fabs(f.getCharge())*(kappaZ_f(f)) * sW2()));
1572 }
1573 
1575 {
1576  return ( sqrt(rhoZ_f(f)) * f.getIsospin());
1577 }
1578 
1580 {
1581  if (f.getName().compare("TOP") == 0) return (gslpp::complex(0.0, 0.0, false));
1582  if (FlagRhoZ.compare("APPROXIMATEFORMULA") == 0)
1583  throw std::runtime_error("No approximate formula is available for rhoZ^f");
1584  else {
1585 
1587  if (useRhoZ_f_cache[f.getIndex()])
1588  return rhoZ_f_cache[f.getIndex()];
1589 
1590  double myMw = Mw();
1591 
1592  /* compute Delta rho */
1593  double DeltaRho[orders_EW_size];
1594  ComputeDeltaRho(myMw, DeltaRho);
1595 
1596  /* compute delta rho_rem^f */
1597  gslpp::complex deltaRho_remf[orders_EW_size];
1598  deltaRho_remf[EW1] = gslpp::complex(0.0, 0.0, false);
1599  deltaRho_remf[EW1QCD1] = gslpp::complex(0.0, 0.0, false);
1600  deltaRho_remf[EW1QCD2] = gslpp::complex(0.0, 0.0, false);
1601  deltaRho_remf[EW2] = gslpp::complex(0.0, 0.0, false);
1602  deltaRho_remf[EW2QCD1] = gslpp::complex(0.0, 0.0, false);
1603  deltaRho_remf[EW3] = gslpp::complex(0.0, 0.0, false);
1604  if (flag_order[EW1])
1605  deltaRho_remf[EW1] = myOneLoopEW->deltaRho_rem_f(f, myMw);
1606  if (flag_order[EW1QCD1])
1607 #ifdef WITHIMTWOLOOPQCD
1608  deltaRho_remf[EW1QCD1] = gslpp::complex(myTwoLoopQCD->deltaRho_rem_f(f, myMw).real(),
1609  myTwoLoopQCD->deltaRho_rem_f(f, myMw).imag(), false);
1610 #else
1611  deltaRho_remf[EW1QCD1] = gslpp::complex(myTwoLoopQCD->deltaRho_rem_f(f, myMw).real(), 0.0, false);
1612 #endif
1613  if (flag_order[EW1QCD2])
1614  deltaRho_remf[EW1QCD2] = gslpp::complex(myThreeLoopQCD->deltaRho_rem_f(f, myMw).real(), 0.0, false);
1615  if (flag_order[EW2])
1616  deltaRho_remf[EW2] = gslpp::complex(myTwoLoopEW->deltaRho_rem_f(f, myMw).real(), 0.0, false);
1617  if (flag_order[EW2QCD1])
1618  deltaRho_remf[EW2QCD1] = gslpp::complex(myThreeLoopEW2QCD->deltaRho_rem_f(f, myMw).real(), 0.0, false);
1619  if (flag_order[EW3])
1620  deltaRho_remf[EW3] = gslpp::complex(myThreeLoopEW->deltaRho_rem_f(f, myMw).real(), 0.0, false);
1621 
1622  /* compute Delta rbar_rem */
1623  double DeltaRbar_rem = 0.0;
1624  if (flag_order[EW1])
1625  DeltaRbar_rem = myOneLoopEW->DeltaRbar_rem(myMw);
1626 
1627  /* Re[rho_Z^f] with or without resummation */
1628  double deltaRho_rem_f_real[orders_EW_size];
1629  for (int j = 0; j < orders_EW_size; ++j)
1630  deltaRho_rem_f_real[j] = deltaRho_remf[j].real();
1631  double ReRhoZf = resumRhoZ(DeltaRho, deltaRho_rem_f_real, DeltaRbar_rem, f.is("BOTTOM"));
1632 
1633  /* Im[rho_Z^f] without resummation */
1634  double ImRhoZf = 0.0;
1635  for (int j = 0; j < orders_EW_size; ++j)
1636  ImRhoZf += deltaRho_remf[j].imag();
1637 
1638  rhoZ_f_cache[f.getIndex()] = gslpp::complex(ReRhoZf, ImRhoZf, false);
1639  useRhoZ_f_cache[f.getIndex()] = true;
1640  return (gslpp::complex(ReRhoZf, ImRhoZf, false));
1641  }
1642 }
1643 
1645 {
1646  if (f.is("TOP")) return (gslpp::complex(0.0, 0.0, false));
1647 
1649  if (useKappaZ_f_cache[f.getIndex()])
1650  return kappaZ_f_cache[f.getIndex()];
1651 
1652  double myMw = Mw();
1653 
1654  double ReKappaZf = 0.0, ImKappaZf = 0.0;
1655  if (FlagKappaZ.compare("APPROXIMATEFORMULA") == 0) {
1656 
1657 // Choose the correct formulae for the effective angle
1658  if (FlagSMAux && (f.is("BOTTOM")) ){
1659  ReKappaZf = myApproximateFormulae->sin2thetaEff_b_full() / sW2();
1660  } else if (FlagSMAux && (f.is("ELECTRON") || f.is("MUON") || f.is("TAU") ) ) {
1661  ReKappaZf = myApproximateFormulae->sin2thetaEff_l_full() / sW2();
1662  } else {
1663  ReKappaZf = myApproximateFormulae->sin2thetaEff(f) / sW2();
1664  }
1665 
1666  ImKappaZf = myOneLoopEW->deltaKappa_rem_f(f, myMw).imag();
1667 #ifdef WITHIMTWOLOOPQCD
1668  ImKappaZf += myTwoLoopQCD->deltaKappa_rem_f(f, myMw).imag();
1669 
1670  /* TEST */
1671  //ImKappaZf -= myCache->ale()*myCache->alsMz()/24.0/M_PI*(cW2() - sW2())/sW2()/sW2();
1672 #endif
1673  } else {
1674  /* compute Delta rho */
1675  double DeltaRho[orders_EW_size];
1676  ComputeDeltaRho(myMw, DeltaRho);
1677 
1678  /* compute delta kappa_rem^f */
1679  gslpp::complex deltaKappa_remf[orders_EW_size];
1680  deltaKappa_remf[EW1] = gslpp::complex(0.0, 0.0, false);
1681  deltaKappa_remf[EW1QCD1] = gslpp::complex(0.0, 0.0, false);
1682  deltaKappa_remf[EW1QCD2] = gslpp::complex(0.0, 0.0, false);
1683  deltaKappa_remf[EW2] = gslpp::complex(0.0, 0.0, false);
1684  deltaKappa_remf[EW2QCD1] = gslpp::complex(0.0, 0.0, false);
1685  deltaKappa_remf[EW3] = gslpp::complex(0.0, 0.0, false);
1686  if (flag_order[EW1])
1687  deltaKappa_remf[EW1] = myOneLoopEW->deltaKappa_rem_f(f, myMw);
1688  if (flag_order[EW1QCD1])
1689 #ifdef WITHIMTWOLOOPQCD
1690  deltaKappa_remf[EW1QCD1] = gslpp::complex(myTwoLoopQCD->deltaKappa_rem_f(f, myMw).real(),
1691  myTwoLoopQCD->deltaKappa_rem_f(f, myMw).imag(), false);
1692 #else
1693  deltaKappa_remf[EW1QCD1] = gslpp::complex(myTwoLoopQCD->deltaKappa_rem_f(f, myMw).real(), 0.0, false);
1694 #endif
1695  if (flag_order[EW1QCD2])
1696  deltaKappa_remf[EW1QCD2] = gslpp::complex(myThreeLoopQCD->deltaKappa_rem_f(f, myMw).real(), 0.0, false);
1697  if (flag_order[EW2])
1698  deltaKappa_remf[EW2] = gslpp::complex(myTwoLoopEW->deltaKappa_rem_f(f, myMw).real(), 0.0, false);
1699  if (flag_order[EW2QCD1])
1700  deltaKappa_remf[EW2QCD1] = gslpp::complex(myThreeLoopEW2QCD->deltaKappa_rem_f(f, myMw).real(), 0.0, false);
1701  if (flag_order[EW3])
1702  deltaKappa_remf[EW3] = gslpp::complex(myThreeLoopEW->deltaKappa_rem_f(f, myMw).real(), 0.0, false);
1703 
1704  /* compute Delta rbar_rem */
1705  double DeltaRbar_rem = 0.0;
1706  if (flag_order[EW1])
1707  DeltaRbar_rem = myOneLoopEW->DeltaRbar_rem(myMw);
1708 
1709  /* Re[kappa_Z^f] with or without resummation */
1710  double deltaKappa_rem_f_real[orders_EW_size];
1711  for (int j = 0; j < orders_EW_size; ++j)
1712  deltaKappa_rem_f_real[j] = deltaKappa_remf[j].real();
1713 
1714  ReKappaZf = resumKappaZ(DeltaRho, deltaKappa_rem_f_real, DeltaRbar_rem, f.is("BOTTOM"));
1715 
1716  /* O(alpha^2) correction to Re[kappa_Z^f] from the Z-gamma mixing */
1717  ReKappaZf += 35.0 * alphaMz() * alphaMz() / 18.0 / sW2()
1718  *(1.0 - 8.0 / 3.0 * ReKappaZf * sW2());
1719 
1720  /* Im[kappa_Z^f] without resummation */
1721  for (int j = 0; j < orders_EW_size; ++j)
1722  ImKappaZf += deltaKappa_remf[j].imag();
1723  }
1724 
1725  kappaZ_f_cache[f.getIndex()] = gslpp::complex(ReKappaZf, ImKappaZf, false);
1726  useKappaZ_f_cache[f.getIndex()] = true;
1727  return (gslpp::complex(ReKappaZf, ImKappaZf, false));
1728 }
1729 
1731 {
1732  Particle p1 = f, pe = leptons[ELECTRON];
1733 
1734  if (f.is("TOP") || f.is("ELECTRON")) return (gslpp::complex(0.0, 0.0, false));
1735 
1736  /* In the case of BOTTOM, the top contribution has to be subtracted.
1737  * The remaining contribution is the same as that for DOWN and STRANGE. */
1738  if (f.is("BOTTOM")) p1 = quarks[DOWN];
1739 
1740  double myMw = Mw();
1741  double cW2 = myMw * myMw / Mz / Mz, sW2 = 1.0 - cW2;
1742 
1743  gslpp::complex ul = (3.0 * myEWSMcache->v_f(pe, myMw) * myEWSMcache->v_f(pe, myMw)
1744  + myEWSMcache->a_f(pe) * myEWSMcache->a_f(pe)) / 4.0 / cW2 * myOneLoopEW->FZ(Mz*Mz, myMw)
1745  + myOneLoopEW->FW(Mz*Mz, pe, myMw);
1746  gslpp::complex uf = (3.0 * myEWSMcache->v_f(p1, myMw) * myEWSMcache->v_f(p1, myMw)
1747  + myEWSMcache->a_f(p1) * myEWSMcache->a_f(p1)) / 4.0 / cW2 * myOneLoopEW->FZ(Mz*Mz, myMw)
1748  + myOneLoopEW->FW(Mz*Mz, p1, myMw);
1749 
1750  gslpp::complex dRho = 2.0 * (uf - ul);
1751  dRho *= ale / 4.0 / M_PI / sW2;
1752  return dRho;
1753 }
1754 
1756 {
1757  Particle p1 = f, pe = leptons[ELECTRON];
1758 
1759  if (f.is("TOP") || f.is("ELECTRON")) return (gslpp::complex(0.0, 0.0, false));
1760 
1761  /* In the case of BOTTOM, the top contribution has to be subtracted.
1762  * The remaining contribution is the same as that for DOWN and STRANGE. */
1763  if (f.is("BOTTOM")) p1 = quarks[DOWN];
1764 
1765  double myMw = Mw();
1766  double cW2 = myMw * myMw / Mz / Mz, sW2 = 1.0 - cW2;
1767  gslpp::complex ul = (3.0 * myEWSMcache->v_f(pe, myMw) * myEWSMcache->v_f(pe, myMw)
1768  + myEWSMcache->a_f(pe) * myEWSMcache->a_f(pe)) / 4.0 / cW2 * myOneLoopEW->FZ(Mz*Mz, myMw)
1769  + myOneLoopEW->FW(Mz*Mz, pe, myMw);
1770  double deltal = myEWSMcache->delta_f(pe, myMw);
1771  gslpp::complex uf = (3.0 * myEWSMcache->v_f(p1, myMw) * myEWSMcache->v_f(p1, myMw)
1772  + myEWSMcache->a_f(p1) * myEWSMcache->a_f(p1)) / 4.0 / cW2 * myOneLoopEW->FZ(Mz*Mz, myMw)
1773  + myOneLoopEW->FW(Mz*Mz, p1, myMw);
1774  double deltaf = myEWSMcache->delta_f(p1, myMw);
1775 
1776  gslpp::complex dKappa = (deltaf * deltaf - deltal * deltal) / 4.0 / cW2 * myOneLoopEW->FZ(Mz*Mz, myMw)
1777  - uf + ul;
1778  dKappa *= ale / 4.0 / M_PI / sW2;
1779  return dKappa;
1780 }
1781 
1782 
1784 
1786 {
1787  double rhoZe = rhoZ_f(leptons[ELECTRON]).real();
1788  double DeltaRhoPrime = 2.0 * (sqrt(rhoZe) - 1.0);
1789 
1790  return DeltaRhoPrime;
1791 }
1792 
1794 {
1795  double rhoZe = rhoZ_f(leptons[ELECTRON]).real();
1796  double sin2thetaEff = kappaZ_f(leptons[ELECTRON]).real() * sW2();
1797  double DeltaRhoPrime = 2.0 * (sqrt(rhoZe) - 1.0);
1798  double DeltaKappaPrime = sin2thetaEff / s02() - 1.0;
1799  double DeltaRW = 1.0 - M_PI * alphaMz() / (sqrt(2.0) * GF * Mz * Mz * sW2() * cW2());
1800 
1801  return ( c02() * DeltaRhoPrime + s02() * DeltaRW / (c02() - s02())
1802  - 2.0 * s02() * DeltaKappaPrime);
1803 }
1804 
1806 {
1807  double rhoZe = rhoZ_f(leptons[ELECTRON]).real();
1808  double sin2thetaEff = kappaZ_f(leptons[ELECTRON]).real() * sW2();
1809  double DeltaRhoPrime = 2.0 * (sqrt(rhoZe) - 1.0);
1810  double DeltaKappaPrime = sin2thetaEff / s02() - 1.0;
1811 
1812  return ( c02() * DeltaRhoPrime + (c02() - s02()) * DeltaKappaPrime);
1813 }
1814 
1816 {
1817  /* epsilon_b from g_A^b
1818  * see Eq.(13) of IJMP A7, 1031 (1998) by Altarelli et al. */
1819  //double rhoZe = rhoZ_l_SM(StandardModel::ELECTRON).real();
1820  //double rhoZb = rhoZ_q_SM(QCD::BOTTOM).real();
1821  //double DeltaRhoPrime = 2.0*( sqrt(rhoZe) - 1.0 );
1822  //double eps1 = DeltaRhoPrime;
1823  //return ( - 1.0 + sqrt(rhoZb)/(1.0 + eps1/2.0) );
1824 
1825  /* epsilon_b from Re(g_V^b/g_A^b), i.e. Re(kappaZ_b)
1826  * see Eq.(13) of IJMP A7, 1031 (1998) by Altarelli et al. */
1828  gslpp::complex kappaZb = kappaZ_f(quarks[BOTTOM]);
1830  return ( kappaZe.real() / kappaZb.real() - 1.0);
1831  else
1832  return ( (kappaZe.real() + deltaKappaZ_f(quarks[BOTTOM]).real())
1833  / kappaZb.real() - 1.0);
1834 
1835  /* epsilon_b from Gamma_b via Eqs.(11), (12) and (16) of IJMP A7,
1836  * 1031 (1998) by Altarelli et al.
1837  * Note: mb has to be mb=4.7, since Eq.(16) were derived with this value.
1838  */
1839  //double als_Mz = Als(myCache->Mz(), FULLNNLO);
1840  //double delta_als = (als_Mz - 0.119)/M_PI;
1841  //double delta_alpha = (alphaMz() - 1.0/128.90)/myCache->ale();
1842  //double Gamma_b_Born = 0.3798*( 1.0 + delta_als - 0.42*delta_alpha);
1843  //double a = als_Mz/M_PI;
1844  //double RQCD = 1.0 + 1.2*a - 1.1*a*a - 13.0*a*a*a;
1845  //double mb = Mrun(myCache->Mz(), quarks[QCD::BOTTOM].getMass(), FULLNNLO);// This is wrong!
1846  //double mb = 4.7;
1847  //std::cout << "mb = " << mb << std::endl;
1848  //double beta = sqrt(1.0 - 4.0*mb*mb/myCache->Mz()/myCache->Mz());
1849  //double Nc = 3.0;
1850  //double factor = myCache->GF()*myCache->Mz()*myCache->Mz()*myCache->Mz()/6.0/M_PI/sqrt(2.0);
1851  //double Gamma_b = factor*beta*((3.0 - beta*beta)/2.0*gVq_SM(QCD::BOTTOM).abs2()
1852  // + beta*beta*gAq_SM(QCD::BOTTOM).abs2())
1853  // *Nc*RQCD*(1.0 + alphaMz()/12.0/M_PI);
1854  //return ( (Gamma_b/Gamma_b_Born - 1.0 - 1.42*epsilon1_SM()
1855  // + 0.54*epsilon3_SM() )/2.29 );
1856 }
1857 
1858 
1860 
1861 double StandardModel::resumMw(const double Mw_i, const double DeltaRho[orders_EW_size],
1862  const double DeltaR_rem[orders_EW_size]) const
1863 {
1864  if ((FlagMw.compare("APPROXIMATEFORMULA") == 0)
1865  || (DeltaR_rem[EW2QCD1] != 0.0)
1866  || (DeltaR_rem[EW3] != 0.0))
1867  throw std::runtime_error("Error in StandardModel::resumMw()");
1868 
1869  if (!flag_order[EW2] && FlagMw.compare("NORESUM") != 0)
1870  throw std::runtime_error("Error in StandardModel::resumMw()");
1871 
1872  double cW2_TMP = Mw_i * Mw_i / Mz / Mz;
1873  double sW2_TMP = 1.0 - cW2_TMP;
1874 
1875  double f_AlphaToGF, DeltaRho_sum = 0.0, DeltaRho_G = 0.0;
1876  if (FlagMw.compare("NORESUM") == 0) {
1877  for (int j = 0; j < orders_EW_size; ++j) {
1878  DeltaRho_sum += DeltaRho[(orders_EW) j];
1879  }
1880  } else {
1881  // conversion: alpha(0) --> G_F
1882  f_AlphaToGF = sqrt(2.0) * GF * pow(Mz, 2.0) * sW2_TMP * cW2_TMP / M_PI / ale;
1883  DeltaRho_sum = f_AlphaToGF * DeltaRho[EW1]
1884  + f_AlphaToGF * DeltaRho[EW1QCD1]
1885  + f_AlphaToGF * DeltaRho[EW1QCD2]
1886  + pow(f_AlphaToGF, 2.0) * DeltaRho[EW2]
1887  + pow(f_AlphaToGF, 2.0) * DeltaRho[EW2QCD1]
1888  + pow(f_AlphaToGF, 3.0) * DeltaRho[EW3];
1889  DeltaRho_G = f_AlphaToGF * DeltaRho[EW1];
1890  }
1891 
1892  double R;
1893  double DeltaR_rem_sum = 0.0;
1894  double DeltaR_EW1 = 0.0, DeltaR_EW2_rem = 0.0;
1895  if (FlagMw.compare("NORESUM") == 0) {
1896  for (int j = 0; j < orders_EW_size; ++j)
1897  DeltaR_rem_sum += DeltaR_rem[(orders_EW) j];
1898 
1899  // Full EW one-loop contribution (without the full DeltaAlphaL5q)
1900  DeltaR_EW1 = -cW2_TMP / sW2_TMP * DeltaRho[EW1] + DeltaR_rem[EW1];
1901 
1902  // Full EW two-loop contribution without reducible corrections
1903  DeltaR_EW2_rem = myApproximateFormulae->DeltaR_TwoLoopEW_rem(Mw_i);
1904 
1905  // subtract the EW two-loop contributions from DeltaRho_sum and DeltaR_rem_sum
1906  DeltaRho_sum -= DeltaRho[EW2];
1907  DeltaR_rem_sum -= DeltaR_rem[EW2];
1908 
1909  // R = 1 + Delta r, including the full EW two-loop contribution
1910  R = 1.0 + DeltaAlphaL5q() - cW2_TMP / sW2_TMP * DeltaRho_sum
1911  + DeltaR_rem_sum;
1912  R += DeltaAlphaL5q() * DeltaAlphaL5q() + 2.0 * DeltaAlphaL5q() * DeltaR_EW1
1913  + DeltaR_EW2_rem;
1914  } else if (FlagMw.compare("OMSI") == 0) {
1915  // R = 1/(1 - Delta r)
1916  R = 1.0 / (1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum)
1917  / (1.0 - DeltaAlphaL5q()
1918  - DeltaR_rem[EW1] - DeltaR_rem[EW1QCD1] - DeltaR_rem[EW2]);
1919  } else if (FlagMw.compare("INTERMEDIATE") == 0) {
1920  // R = 1/(1 - Delta r)
1921  R = 1.0 / ((1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum)
1922  *(1.0 - DeltaAlphaL5q() - DeltaR_rem[EW1])
1923  - DeltaR_rem[EW1QCD1] - DeltaR_rem[EW2]);
1924  } else if (FlagMw.compare("OMSII") == 0) {
1925  // R = 1/(1 - Delta r)
1926  R = 1.0 / ((1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum)*(1.0 - DeltaAlphaL5q())
1927  - (1.0 + cW2_TMP / sW2_TMP * DeltaRho_G) * DeltaR_rem[EW1]
1928  - DeltaR_rem[EW1QCD1] - DeltaR_rem[EW2]);
1929  } else
1930  throw std::runtime_error("Error in StandardModel::resumMw()");
1931 
1932  if (FlagMw.compare("NORESUM") == 0) {
1933  /* Mzbar and Mwbar are defined in the complex-pole scheme. */
1934 
1935  double tmp = 4.0 * M_PI * ale / sqrt(2.0) / GF / Mzbar() / Mzbar();
1936  if (tmp * R > 1.0) throw std::runtime_error("StandardModel::resumMw(): Negative (1-tmp*R)");
1937  double Mwbar = Mzbar() / sqrt(2.0) * sqrt(1.0 + sqrt(1.0 - tmp * R));
1938 
1939  return MwFromMwbar(Mwbar);
1940  } else {
1941  double tmp = 4.0 * M_PI * ale / sqrt(2.0) / GF / Mz / Mz;
1942  if (tmp * R > 1.0) throw std::runtime_error("StandardModel::resumMw(): Negative (1-tmp*R)");
1943 
1944  return (Mz / sqrt(2.0) * sqrt(1.0 + sqrt(1.0 - tmp * R)));
1945  }
1946 }
1947 
1948 double StandardModel::resumRhoZ(const double DeltaRho[orders_EW_size],
1949  const double deltaRho_rem[orders_EW_size],
1950  const double DeltaRbar_rem, const bool bool_Zbb) const
1951 {
1952  if ((FlagRhoZ.compare("APPROXIMATEFORMULA") == 0)
1953  || (deltaRho_rem[EW1QCD2] != 0.0)
1954  || (deltaRho_rem[EW2QCD1] != 0.0)
1955  || (deltaRho_rem[EW3] != 0.0))
1956  throw std::runtime_error("Error in StandardModel::resumRhoZ()");
1957 
1958  if (!flag_order[EW2] && FlagRhoZ.compare("NORESUM") != 0)
1959  throw std::runtime_error("Error in StandardModel::resumRhoZ()");
1960 
1961  double Mw_TMP = Mw();
1962  double cW2_TMP = cW2();
1963  double sW2_TMP = sW2();
1964 
1965  double f_AlphaToGF, DeltaRho_sum = 0.0, DeltaRho_G;
1966  double DeltaRbar_rem_G, deltaRho_rem_G, deltaRho_rem_G2;
1967  // conversion: alpha(0) --> G_F
1968  f_AlphaToGF = sqrt(2.0) * GF * pow(Mz, 2.0)
1969  * sW2_TMP * cW2_TMP / M_PI / ale;
1970  DeltaRho_sum = f_AlphaToGF * DeltaRho[EW1]
1971  + f_AlphaToGF * DeltaRho[EW1QCD1]
1972  + f_AlphaToGF * DeltaRho[EW1QCD2]
1973  + pow(f_AlphaToGF, 2.0) * DeltaRho[EW2]
1974  + pow(f_AlphaToGF, 2.0) * DeltaRho[EW2QCD1]
1975  + pow(f_AlphaToGF, 3.0) * DeltaRho[EW3];
1976  DeltaRho_G = f_AlphaToGF * DeltaRho[EW1];
1977  DeltaRbar_rem_G = f_AlphaToGF*DeltaRbar_rem;
1978  deltaRho_rem_G = f_AlphaToGF * (deltaRho_rem[EW1]
1979  + deltaRho_rem[EW1QCD1]);
1980  deltaRho_rem_G2 = pow(f_AlphaToGF, 2.0) * deltaRho_rem[EW2];
1981 
1982  /* Real parts */
1983  double rhoZ;
1984  if (!bool_Zbb) {
1985  if (FlagRhoZ.compare("OMSI") == 0) {
1986  rhoZ = (1.0 + deltaRho_rem_G + deltaRho_rem_G2)
1987  / (1.0 - DeltaRho_sum * (1.0 - DeltaRbar_rem_G));
1988  } else if (FlagRhoZ.compare("INTERMEDIATE") == 0) {
1989  rhoZ = (1.0 + deltaRho_rem_G)
1990  / (1.0 - DeltaRho_sum * (1.0 - DeltaRbar_rem_G))
1991  + deltaRho_rem_G2;
1992  } else if (FlagRhoZ.compare("NORESUM") == 0
1993  || FlagRhoZ.compare("OMSII") == 0) {
1994  rhoZ = 1.0 + DeltaRho_sum - DeltaRho_G * DeltaRbar_rem_G
1995  + DeltaRho_G * DeltaRho_G
1996  + deltaRho_rem_G * (1.0 + DeltaRho_G) + deltaRho_rem_G2;
1997  } else
1998  throw std::runtime_error("Error in StandardModel::resumRhoZ()");
1999  } else {
2000  /* Z to bb */
2001  double OnePlusTaub = 1.0 + taub();
2002  double OnePlusTaub2 = OnePlusTaub*OnePlusTaub;
2003  double rhoZbL;
2004  deltaRho_rem_G += f_AlphaToGF * ale / 4.0 / M_PI / sW2_TMP
2005  * pow(mtpole / Mw_TMP, 2.0);
2006  if (FlagRhoZ.compare("NORESUM") == 0) {
2007  rhoZ = (1.0 + DeltaRho_sum - DeltaRho_G * DeltaRbar_rem_G
2008  + DeltaRho_G * DeltaRho_G
2009  + deltaRho_rem_G * (1.0 + DeltaRho_G) + deltaRho_rem_G2)
2010  * OnePlusTaub2;
2011  } else if (FlagRhoZ.compare("OMSI") == 0) {
2012  rhoZbL = OnePlusTaub2 / (1.0 - DeltaRho_sum);
2013  rhoZ = rhoZbL / (1.0 - rhoZbL * deltaRho_rem_G);
2014  } else if (FlagRhoZ.compare("INTERMEDIATE") == 0) {
2015  rhoZbL = OnePlusTaub2 / (1.0 - DeltaRho_sum);
2016  rhoZ = rhoZbL * (1.0 + rhoZbL * deltaRho_rem_G);
2017  } else if (FlagRhoZ.compare("OMSII") == 0) {
2018  rhoZbL = OnePlusTaub2 / (1.0 - DeltaRho_sum);
2019  rhoZ = rhoZbL * (1.0 + deltaRho_rem_G);
2020  } else
2021  throw std::runtime_error("Error in StandardModel::resumRhoZ()");
2022  }
2023 
2024  return rhoZ;
2025 }
2026 
2027 double StandardModel::resumKappaZ(const double DeltaRho[orders_EW_size],
2028  const double deltaKappa_rem[orders_EW_size],
2029  const double DeltaRbar_rem, const bool bool_Zbb) const
2030 {
2031  if ((FlagKappaZ.compare("APPROXIMATEFORMULA") == 0)
2032  || (deltaKappa_rem[EW2QCD1] != 0.0)
2033  || (deltaKappa_rem[EW3] != 0.0))
2034  throw std::runtime_error("Error in StandardModel::resumKappaZ()");
2035 
2036  if (!flag_order[EW2] && FlagKappaZ.compare("NORESUM") != 0)
2037  throw std::runtime_error("Error in StandardModel::resumKappaZ()");
2038 
2039  double Mw_TMP = Mw();
2040  double cW2_TMP = cW2();
2041  double sW2_TMP = sW2();
2042 
2043  double f_AlphaToGF, DeltaRho_sum = 0.0, DeltaRho_G;
2044  double DeltaRbar_rem_G, deltaKappa_rem_G, deltaKappa_rem_G2;
2045  // conversion: alpha(0) --> G_F
2046  f_AlphaToGF = sqrt(2.0) * GF * pow(Mz, 2.0)
2047  * sW2_TMP * cW2_TMP / M_PI / ale;
2048  DeltaRho_sum = f_AlphaToGF * DeltaRho[EW1]
2049  + f_AlphaToGF * DeltaRho[EW1QCD1]
2050  + f_AlphaToGF * DeltaRho[EW1QCD2]
2051  + pow(f_AlphaToGF, 2.0) * DeltaRho[EW2]
2052  + pow(f_AlphaToGF, 2.0) * DeltaRho[EW2QCD1]
2053  + pow(f_AlphaToGF, 3.0) * DeltaRho[EW3];
2054  DeltaRho_G = f_AlphaToGF * DeltaRho[EW1];
2055  DeltaRbar_rem_G = f_AlphaToGF*DeltaRbar_rem;
2056  deltaKappa_rem_G = f_AlphaToGF * (deltaKappa_rem[EW1]
2057  + deltaKappa_rem[EW1QCD1]
2058  + deltaKappa_rem[EW1QCD2]);
2059  deltaKappa_rem_G2 = pow(f_AlphaToGF, 2.0) * deltaKappa_rem[EW2];
2060 
2061  /* Real parts */
2062  double kappaZ;
2063  if (!bool_Zbb) {
2064  if (FlagKappaZ.compare("OMSI") == 0) {
2065  kappaZ = (1.0 + deltaKappa_rem_G + deltaKappa_rem_G2)
2066  *(1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum * (1.0 - DeltaRbar_rem_G));
2067  } else if (FlagKappaZ.compare("INTERMEDIATE") == 0) {
2068  kappaZ = (1.0 + deltaKappa_rem_G)
2069  *(1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum * (1.0 - DeltaRbar_rem_G))
2070  + deltaKappa_rem_G2;
2071  } else if (FlagKappaZ.compare("NORESUM") == 0
2072  || FlagKappaZ.compare("OMSII") == 0) {
2073  kappaZ = 1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum
2074  - cW2_TMP / sW2_TMP * DeltaRho_G * DeltaRbar_rem_G
2075  + deltaKappa_rem_G * (1.0 + cW2_TMP / sW2_TMP * DeltaRho_G)
2076  + deltaKappa_rem_G2;
2077  } else
2078  throw std::runtime_error("Error in StandardModel::resumKappaZ()");
2079  } else {
2080  /* Z to bb */
2081  double OnePlusTaub = 1.0 + taub();
2082  double kappaZbL;
2083  deltaKappa_rem_G -= f_AlphaToGF * ale / 8.0 / M_PI / sW2_TMP
2084  * pow(mtpole / Mw_TMP, 2.0);
2085  if (FlagKappaZ.compare("NORESUM") == 0) {
2086  kappaZ = (1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum
2087  - cW2_TMP / sW2_TMP * DeltaRho_G * DeltaRbar_rem_G
2088  + deltaKappa_rem_G * (1.0 + cW2_TMP / sW2_TMP * DeltaRho_G)
2089  + deltaKappa_rem_G2) / OnePlusTaub;
2090  } else if (FlagKappaZ.compare("OMSI") == 0) {
2091  kappaZbL = (1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum) / OnePlusTaub;
2092  kappaZ = kappaZbL * (1.0 + deltaKappa_rem_G);
2093  } else if (FlagKappaZ.compare("INTERMEDIATE") == 0
2094  || FlagKappaZ.compare("OMSII") == 0) {
2095  kappaZbL = (1.0 + cW2_TMP / sW2_TMP * DeltaRho_sum) / OnePlusTaub;
2096  kappaZ = kappaZbL + deltaKappa_rem_G;
2097  } else
2098  throw std::runtime_error("Error in StandardModel::resumKappaZ()");
2099  }
2100 
2101  return kappaZ;
2102 }
2103 
2104 double StandardModel::taub() const
2105 {
2106  double taub_tmp = 0.0;
2107  double Xt = myEWSMcache->Xt_GF();
2108  if (flag_order[EW1])
2109  taub_tmp += -2.0 * Xt;
2110  if (flag_order[EW1QCD1])
2111  taub_tmp += 2.0 / 3.0 * M_PI * Xt * myEWSMcache->alsMt();
2112  if (flag_order[EW1QCD2])
2113  taub_tmp += 0.0;
2114  if (flag_order[EW2])
2115  taub_tmp += -2.0 * Xt * Xt * myTwoLoopEW->tau_2();
2116  if (flag_order[EW2QCD1])
2117  taub_tmp += 0.0;
2118  if (flag_order[EW3])
2119  taub_tmp += 0.0;
2120 
2121  return taub_tmp;
2122 }
2123 
2125 {
2126  switch (q) {
2127  case QCD::UP:
2128  case QCD::CHARM:
2129  return ( -0.000113);
2130  case QCD::TOP:
2131  return ( 0.0);
2132  case QCD::DOWN:
2133  case QCD::STRANGE:
2134  return ( -0.000160);
2135  case QCD::BOTTOM:
2136  return ( -0.000040);
2137  default:
2138  throw std::runtime_error("Error in StandardModel::Delta_EWQCD");
2139  }
2140 }
2141 
2142 double StandardModel::RVq(const QCD::quark q) const
2143 {
2144  if (q == QCD::TOP) return 0.0;
2145 
2146  double mcMz, mbMz;
2147  mcMz = myEWSMcache->mf(getQuarks(CHARM), Mz, FULLNNLO);
2148  mbMz = myEWSMcache->mf(getQuarks(BOTTOM), Mz, FULLNNLO);
2149  //mcMz = 0.56381685; /* for debug */
2150  //mbMz = 2.8194352; /* for debug */
2151 
2152  double MtPole = mtpole;
2153 
2154  /* electric charge squared */
2155  double Qf2 = pow(quarks[q].getCharge(), 2.0);
2156 
2157  /* s = Mz^2 */
2158  double s = Mz * Mz;
2159 
2160  /* products of the charm and bottom masses at Mz */
2161  double mcMz2 = mcMz*mcMz;
2162  double mbMz2 = mbMz*mbMz;
2163  double mqMz2, mqdash4;
2164  switch (q) {
2165  case QCD::CHARM:
2166  mqMz2 = mcMz*mcMz;
2167  mqdash4 = mbMz2*mbMz2;
2168  break;
2169  case QCD::BOTTOM:
2170  mqMz2 = mbMz*mbMz;
2171  mqdash4 = mcMz2*mcMz2;
2172  break;
2173  default:
2174  mqMz2 = 0.0;
2175  mqdash4 = 0.0;
2176  break;
2177  }
2178 
2179  /* Logarithms */
2180  //double log_t = log(pow(quarks[TOP].getMass(),2.0)/s);
2181  double log_t = log(MtPole * MtPole / s); // the pole mass
2182  double log_c = log(mcMz2 / s);
2183  double log_b = log(mbMz2 / s);
2184  double log_q;
2185  switch (q) {
2186  case QCD::CHARM:
2187  case QCD::BOTTOM:
2188  log_q = log(mqMz2 / s);
2189  break;
2190  default:
2191  log_q = 0.0;
2192  break;
2193  }
2194 
2195  /* the active number of flavour */
2196  double nf = 5.0;
2197 
2198  /* zeta functions */
2199  double zeta2 = getMyEWSMcache()->getZeta2();
2200  double zeta3 = getMyEWSMcache()->getZeta3();
2201  //double zeta4 = getMyCache()->GetZeta4();
2202  double zeta5 = getMyEWSMcache()->getZeta5();
2203 
2204  /* massless non-singlet corrections */
2205  double C02 = 365.0 / 24.0 - 11.0 * zeta3 + (-11.0 / 12.0 + 2.0 / 3.0 * zeta3) * nf;
2206  double C03 = 87029.0 / 288.0 - 121.0 / 8.0 * zeta2 - 1103.0 / 4.0 * zeta3
2207  + 275.0 / 6.0 * zeta5
2208  + (-7847.0 / 216.0 + 11.0 / 6.0 * zeta2 + 262.0 / 9.0 * zeta3
2209  - 25.0 / 9.0 * zeta5) * nf
2210  + (151.0 / 162.0 - zeta2 / 18.0 - 19.0 / 27.0 * zeta3) * nf*nf;
2211  double C04 = -156.61 + 18.77 * nf - 0.7974 * nf * nf + 0.0215 * nf * nf*nf;
2212  //std::cout << "TEST: C02 = " << C02 << std::endl;// TEST (should be 1.40923)
2213  //std::cout << "TEST: C03 = " << C03 << std::endl;// TEST (should be -12.7671)
2214  //std::cout << "TEST: C04 = " << C04 << std::endl;// TEST (should be -80.0075)
2215 
2216  /* quadratic massive corrections */
2217  double C23 = -80.0 + 60.0 * zeta3 + (32.0 / 9.0 - 8.0 / 3.0 * zeta3) * nf;
2218  double C21V = 12.0;
2219  double C22V = 253.0 / 2.0 - 13.0 / 3.0 * nf;
2220  double C23V = 2522.0 - 855.0 / 2.0 * zeta2 + 310.0 / 3.0 * zeta3 - 5225.0 / 6.0 * zeta5
2221  + (-4942.0 / 27.0 + 34.0 * zeta2 - 394.0 / 27.0 * zeta3
2222  + 1045.0 / 27.0 * zeta5) * nf
2223  + (125.0 / 54.0 - 2.0 / 3.0 * zeta2) * nf*nf;
2224 
2225  /* quartic massive corrections */
2226  double C42 = 13.0 / 3.0 - 4.0 * zeta3;
2227  double C40V = -6.0;
2228  double C41V = -22.0;
2229  double C42V = -3029.0 / 12.0 + 162.0 * zeta2 + 112.0 * zeta3
2230  + (143.0 / 18.0 - 4.0 * zeta2 - 8.0 / 3.0 * zeta3) * nf;
2231  double C42VL = -11.0 / 2.0 + nf / 3.0;
2232 
2233  /* power suppressed top-mass correction */
2234  //double xt = s/pow(quarks[TOP].getMass(),2.0);
2235  double xt = s / MtPole / MtPole; // the pole mass
2236  double C2t = xt * (44.0 / 675.0 - 2.0 / 135.0 * (-log_t));
2237 
2238  /* rescaled strong coupling constant */
2239  double AlsMzPi = AlsMz / M_PI;
2240  double AlsMzPi2 = AlsMzPi*AlsMzPi;
2241  double AlsMzPi3 = AlsMzPi2*AlsMzPi;
2242  double AlsMzPi4 = AlsMzPi3*AlsMzPi;
2243 
2244  /* electromagnetic coupling at Mz */
2245  double alpMz = alphaMz();
2246 
2247  /* radiator function to the vector current */
2248  double RVf;
2249  RVf = 1.0 + 3.0 / 4.0 * Qf2 * alpMz / M_PI + AlsMzPi - Qf2 / 4.0 * alpMz / M_PI * AlsMzPi
2250  + (C02 + C2t) * AlsMzPi2 + C03 * AlsMzPi3 + C04 * AlsMzPi4
2251  + (mcMz2 + mbMz2) / s * C23 * AlsMzPi3
2252  + mqMz2 / s * (C21V * AlsMzPi + C22V * AlsMzPi2 + C23V * AlsMzPi3)
2253  + mcMz2 * mcMz2 / s / s * (C42 - log_c) * AlsMzPi2
2254  + mbMz2 * mbMz2 / s / s * (C42 - log_b) * AlsMzPi2
2255  + mqMz2 * mqMz2 / s / s * (C40V + C41V * AlsMzPi + (C42V + C42VL * log_q) * AlsMzPi2)
2256  + 12.0 * mqdash4 / s / s * AlsMzPi2
2257  - mqMz2 * mqMz2 * mqMz2 / s / s / s
2258  * (8.0 + 16.0 / 27.0 * (155.0 + 6.0 * log_q) * AlsMzPi);
2259  return RVf;
2260 }
2261 
2262 double StandardModel::RAq(const QCD::quark q) const
2263 {
2264  if (q == QCD::TOP) return 0.0;
2265 
2266  double mcMz, mbMz;
2267  mcMz = myEWSMcache->mf(getQuarks(CHARM), Mz, FULLNNLO);
2268  mbMz = myEWSMcache->mf(getQuarks(BOTTOM), Mz, FULLNNLO);
2269  //mcMz = 0.56381685; /* for debug */
2270  //mbMz = 2.8194352; /* for debug */
2271 
2272  double MtPole = mtpole;
2273 
2274  /* z-component of isospin */
2275  double I3q = quarks[q].getIsospin();
2276  /* electric charge squared */
2277  double Qf2 = pow(quarks[q].getCharge(), 2.0);
2278 
2279  /* s = Mz^2 */
2280  double s = Mz * Mz;
2281 
2282  /* products of the charm and bottom masses at Mz */
2283  double mcMz2 = mcMz*mcMz;
2284  double mbMz2 = mbMz*mbMz;
2285  double mqMz2, mqdash4;
2286  switch (q) {
2287  case QCD::CHARM:
2288  mqMz2 = mcMz*mcMz;
2289  mqdash4 = mbMz2*mbMz2;
2290  break;
2291  case QCD::BOTTOM:
2292  mqMz2 = mbMz*mbMz;
2293  mqdash4 = mcMz2*mcMz2;
2294  break;
2295  default:
2296  mqMz2 = 0.0;
2297  mqdash4 = 0.0;
2298  break;
2299  }
2300 
2301  /* Logarithms */
2302  //double log_t = log(pow(quarks[TOP].getMass(),2.0)/s);
2303  double log_t = log(MtPole * MtPole / s); // the pole mass
2304  double log_c = log(mcMz2 / s);
2305  double log_b = log(mbMz2 / s);
2306  double log_q;
2307  switch (q) {
2308  case QCD::CHARM:
2309  case QCD::BOTTOM:
2310  log_q = log(mqMz2 / s);
2311  break;
2312  default:
2313  log_q = 0.0;
2314  break;
2315  }
2316 
2317  /* the active number of flavour */
2318  double nf = 5.0;
2319 
2320  /* zeta functions */
2321  double zeta2 = getMyEWSMcache()->getZeta2();
2322  double zeta3 = getMyEWSMcache()->getZeta3();
2323  double zeta4 = getMyEWSMcache()->getZeta4();
2324  double zeta5 = getMyEWSMcache()->getZeta5();
2325 
2326  /* massless non-singlet corrections */
2327  double C02 = 365.0 / 24.0 - 11.0 * zeta3 + (-11.0 / 12.0 + 2.0 / 3.0 * zeta3) * nf;
2328  double C03 = 87029.0 / 288.0 - 121.0 / 8.0 * zeta2 - 1103.0 / 4.0 * zeta3
2329  + 275.0 / 6.0 * zeta5
2330  + (-7847.0 / 216.0 + 11.0 / 6.0 * zeta2 + 262.0 / 9.0 * zeta3
2331  - 25.0 / 9.0 * zeta5) * nf
2332  + (151.0 / 162.0 - zeta2 / 18.0 - 19.0 / 27.0 * zeta3) * nf*nf;
2333  double C04 = -156.61 + 18.77 * nf - 0.7974 * nf * nf + 0.0215 * nf * nf*nf;
2334  //std::cout << "TEST: C02 = " << C02 << std::endl;// TEST (should be 1.40923)
2335  //std::cout << "TEST: C03 = " << C03 << std::endl;// TEST (should be -12.7671)
2336  //std::cout << "TEST: C04 = " << C04 << std::endl;// TEST (should be -80.0075)
2337 
2338  /* quadratic massive corrections */
2339  double C23 = -80.0 + 60.0 * zeta3 + (32.0 / 9.0 - 8.0 / 3.0 * zeta3) * nf;
2340  double C20A = -6.0;
2341  double C21A = -22.0;
2342  double C22A = -8221.0 / 24.0 + 57.0 * zeta2 + 117.0 * zeta3
2343  + (151.0 / 12.0 - 2.0 * zeta2 - 4.0 * zeta3) * nf;
2344  double C23A = -4544045.0 / 864.0 + 1340.0 * zeta2 + 118915.0 / 36.0 * zeta3
2345  - 127.0 * zeta5
2346  + (71621.0 / 162.0 - 209.0 / 2.0 * zeta2 - 216.0 * zeta3
2347  + 5.0 * zeta4 + 55.0 * zeta5) * nf
2348  + (-13171.0 / 1944.0 + 16.0 / 9.0 * zeta2 + 26.0 / 9.0 * zeta3) * nf*nf;
2349 
2350  /* quartic massive corrections */
2351  double C42 = 13.0 / 3.0 - 4.0 * zeta3;
2352  double C40A = 6.0;
2353  double C41A = 10.0;
2354  double C42A = 3389.0 / 12.0 - 162.0 * zeta2 - 220.0 * zeta3
2355  + (-41.0 / 6.0 + 4.0 * zeta2 + 16.0 / 3.0 * zeta3) * nf;
2356  double C42AL = 77.0 / 2.0 - 7.0 / 3.0 * nf;
2357 
2358  /* power suppressed top-mass correction */
2359  //double xt = s/pow(quarks[TOP].getMass(),2.0);
2360  double xt = s / MtPole / MtPole; // the pole mass
2361  double C2t = xt * (44.0 / 675.0 - 2.0 / 135.0 * (-log_t));
2362 
2363  /* singlet axial-vector corrections */
2364  double I2 = -37.0 / 12.0 + (-log_t) + 7.0 / 81.0 * xt + 0.0132 * xt*xt;
2365  double I3 = -5075.0 / 216.0 + 23.0 / 6.0 * zeta2 + zeta3 + 67.0 / 18.0 * (-log_t)
2366  + 23.0 / 12.0 * log_t*log_t;
2367  double I4 = 49.0309 - 17.6637 * (-log_t) + 14.6597 * log_t * log_t
2368  + 3.6736 * (-log_t * log_t * log_t);
2369 
2370  /* rescaled strong coupling constant */
2371  double AlsMzPi = AlsMz / M_PI;
2372  double AlsMzPi2 = AlsMzPi*AlsMzPi;
2373  double AlsMzPi3 = AlsMzPi2*AlsMzPi;
2374  double AlsMzPi4 = AlsMzPi3*AlsMzPi;
2375 
2376  /* electromagnetic coupling at Mz */
2377  double alpMz = alphaMz();
2378 
2379  /* radiator function to the axial-vector current */
2380  double RAf;
2381  RAf = 1.0 + 3.0 / 4.0 * Qf2 * alpMz / M_PI + AlsMzPi - Qf2 / 4.0 * alpMz / M_PI * AlsMzPi
2382  + (C02 + C2t - 2.0 * I3q * I2) * AlsMzPi2
2383  + (C03 - 2.0 * I3q * I3) * AlsMzPi3
2384  + (C04 - 2.0 * I3q * I4) * AlsMzPi4
2385  + (mcMz2 + mbMz2) / s * C23 * AlsMzPi3
2386  + mqMz2 / s * (C20A + C21A * AlsMzPi + C22A * AlsMzPi2
2387  + 6.0 * (3.0 + log_t) * AlsMzPi2 + C23A * AlsMzPi3)
2388  //- 10.0*mqMz2/pow(quarks[TOP].getMass(),2.0)
2389  - 10.0 * mqMz2 / MtPole / MtPole // the pole mass
2390  * (8.0 / 81.0 + log_t / 54.0) * AlsMzPi2
2391  + mcMz2 * mcMz2 / s / s * (C42 - log_c) * AlsMzPi2
2392  + mbMz2 * mbMz2 / s / s * (C42 - log_b) * AlsMzPi2
2393  + mqMz2 * mqMz2 / s / s * (C40A + C41A * AlsMzPi
2394  + (C42A + C42AL * log_q) * AlsMzPi2)
2395  - 12.0 * mqdash4 / s / s*AlsMzPi2;
2396  return RAf;
2397 }
2398 
2399 double StandardModel::RVh() const
2400 {
2401  /* rescaled strong coupling constant */
2402  double AlsMzPi = AlsMz / M_PI;
2403  double AlsMzPi2 = AlsMzPi*AlsMzPi;
2404  double AlsMzPi3 = AlsMzPi2*AlsMzPi;
2405  double AlsMzPi4 = AlsMzPi3*AlsMzPi;
2406 
2407  gslpp::complex gV_sum(0.0, 0.0);
2408  gslpp::complex gV_q;
2409  for (int q = 0; q < 6; q++) {
2410  gV_q = gV_f(QCD::quarks[(QCD::quark)q]);
2411  if (q == (int) (QCD::TOP))
2412  gV_q = 0.0;
2413  gV_sum += gV_q;
2414  }
2415 
2416  // singlet vector corrections
2417  return ( gV_sum.abs2()*(-0.4132 * AlsMzPi3 - 4.9841 * AlsMzPi4));
2418 }
2419 
2420 /* BEGIN: REMOVE FROM THE PACKAGE */
2422 //LEP2 Observables
2423 
2424 
2425 double StandardModel::LEP2sigmaMu(const double s) const
2426 {
2427  gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
2428  double relerr = 1.e-8;
2429  double abserr = 1.e-20;
2430 
2431  if(s == 130.*130.){
2432 
2433  if (!flagLEP2[ISR]){
2435  } else {
2437  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2438  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2439  }
2441  }
2442 
2443  if (flagLEP2[WeakBox]) {
2445  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2446  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2447  }
2448  double sigma_box = average;
2449  SMresult_cache += sigma_box;
2450  }
2451  } else if (s == 136.*136.) {
2452  if (!flagLEP2[ISR]){
2454  } else {
2456  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2457  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2458  }
2460  }
2461 
2462  if (flagLEP2[WeakBox]) {
2464  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2465  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2466  }
2467  double sigma_box = average;
2468  SMresult_cache += sigma_box;
2469  }
2470  } else if (s == 161.*161.){
2471  if (!flagLEP2[ISR])
2473  else {
2475  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2476  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2477  }
2479  }
2480 
2481  if (flagLEP2[WeakBox]) {
2483  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2484  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2485  }
2486  double sigma_box = average;
2487  SMresult_cache += sigma_box;
2488  }
2489  } else if (s == 172.*172.) {
2490  if (!flagLEP2[ISR])
2492  else {
2494  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2495  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2496  }
2498  }
2499 
2500  if (flagLEP2[WeakBox]) {
2502  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2503  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2504  }
2505  double sigma_box = average;
2506  SMresult_cache += sigma_box;
2507  }
2508  } else if (s == 183.*183.) {
2509  if (!flagLEP2[ISR])
2511  else {
2513  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2514  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2515  }
2517  }
2518 
2519  if (flagLEP2[WeakBox]) {
2521  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2522  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2523  }
2524  double sigma_box = average;
2525  SMresult_cache += sigma_box;
2526  }
2527  } else if (s == 189.*189.) {
2528  if (!flagLEP2[ISR])
2530  else {
2532  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2533  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2534  }
2536  }
2537 
2538  if (flagLEP2[WeakBox]) {
2540  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2541  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2542  }
2543  double sigma_box = average;
2544  SMresult_cache += sigma_box;
2545  }
2546  } else if (s == 192.*192.) {
2547  if (!flagLEP2[ISR])
2549  else {
2551  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2552  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2553  }
2555  }
2556 
2557  if (flagLEP2[WeakBox]) {
2559  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2560  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2561  }
2562  double sigma_box = average;
2563  SMresult_cache += sigma_box;
2564  }
2565  } else if (s == 196.*196.) {
2566  if (!flagLEP2[ISR])
2568  else {
2570  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2571  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2572  }
2574  }
2575 
2576  if (flagLEP2[WeakBox]) {
2578  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2579  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2580  }
2581  double sigma_box = average;
2582  SMresult_cache += sigma_box;
2583  }
2584  } else if (s == 200.*200.) {
2585  if (!flagLEP2[ISR])
2587  else {
2589  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2590  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2591  }
2593  }
2594 
2595  if (flagLEP2[WeakBox]) {
2597  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2598  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2599  }
2600  double sigma_box = average;
2601  SMresult_cache += sigma_box;
2602  }
2603  } else if (s == 202.*202.) {
2604  if (!flagLEP2[ISR])
2606  else {
2608  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2609  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2610  }
2612  }
2613 
2614  if (flagLEP2[WeakBox]) {
2616  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2617  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2618  }
2619  double sigma_box = average;
2620  SMresult_cache += sigma_box;
2621  }
2622  } else if (s == 205.*205.) {
2623  if (!flagLEP2[ISR])
2625  else {
2627  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2628  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2629  }
2631  }
2632 
2633  if (flagLEP2[WeakBox]) {
2635  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2636  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2637  }
2638  double sigma_box = average;
2639  SMresult_cache += sigma_box;
2640  }
2641  } else if (s == 207.*207.) {
2642  if (!flagLEP2[ISR])
2644  else {
2646  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2647  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2648  }
2650  }
2651 
2652  if (flagLEP2[WeakBox]) {
2654  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2655  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2656  }
2657  double sigma_box = average;
2658  SMresult_cache += sigma_box;
2659  }
2660  } else {
2661  throw std::runtime_error("ERROR: wrong LEP2 energy in StandardModel::LEP2AFBmu!");
2662  }
2663 
2664 
2665  double sigma_mu = SMresult_cache;
2666 
2667  gsl_set_error_handler(old_handler);
2668 
2669  return sigma_mu;
2670 
2671 }
2672 
2673 
2674 double StandardModel::LEP2sigmaTau(const double s) const
2675 {
2676 
2677  gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
2678  double relerr = 1.e-7;
2679  double abserr = 1.e-17;
2680 
2681  if(s == 130.*130.){
2682 
2683  if (!flagLEP2[ISR]){
2685  } else {
2687  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2688  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2689  }
2691  }
2692 
2693  if (flagLEP2[WeakBox]) {
2695  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2696  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2697  }
2698  double sigma_box = average;
2699  SMresult_cache += sigma_box;
2700  }
2701  } else if (s == 136.*136.) {
2702  if (!flagLEP2[ISR]){
2704  } else {
2706  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2707  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2708  }
2710  }
2711 
2712  if (flagLEP2[WeakBox]) {
2714  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2715  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2716  }
2717  double sigma_box = average;
2718  SMresult_cache += sigma_box;
2719  }
2720  } else if (s == 161.*161.){
2721  if (!flagLEP2[ISR])
2723  else {
2725  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2726  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2727  }
2729  }
2730 
2731  if (flagLEP2[WeakBox]) {
2733  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2734  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2735  }
2736  double sigma_box = average;
2737  SMresult_cache += sigma_box;
2738  }
2739  } else if (s == 172.*172.) {
2740  if (!flagLEP2[ISR])
2742  else {
2744  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2745  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2746  }
2748  }
2749 
2750  if (flagLEP2[WeakBox]) {
2752  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2753  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2754  }
2755  double sigma_box = average;
2756  SMresult_cache += sigma_box;
2757  }
2758  } else if (s == 183.*183.) {
2759  if (!flagLEP2[ISR])
2761  else {
2763  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2764  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2765  }
2767  }
2768 
2769  if (flagLEP2[WeakBox]) {
2771  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2772  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2773  }
2774  double sigma_box = average;
2775  SMresult_cache += sigma_box;
2776  }
2777  } else if (s == 189.*189.) {
2778  if (!flagLEP2[ISR])
2780  else {
2782  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2783  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2784  }
2786  }
2787 
2788  if (flagLEP2[WeakBox]) {
2790  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2791  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2792  }
2793  double sigma_box = average;
2794  SMresult_cache += sigma_box;
2795  }
2796  } else if (s == 192.*192.) {
2797  if (!flagLEP2[ISR])
2799  else {
2801  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2802  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2803  }
2805  }
2806 
2807  if (flagLEP2[WeakBox]) {
2809  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2810  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2811  }
2812  double sigma_box = average;
2813  SMresult_cache += sigma_box;
2814  }
2815  } else if (s == 196.*196.) {
2816  if (!flagLEP2[ISR])
2818  else {
2820  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2821  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2822  }
2824  }
2825 
2826  if (flagLEP2[WeakBox]) {
2828  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2829  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2830  }
2831  double sigma_box = average;
2832  SMresult_cache += sigma_box;
2833  }
2834  } else if (s == 200.*200.) {
2835  if (!flagLEP2[ISR])
2837  else {
2839  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2840  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2841  }
2843  }
2844 
2845  if (flagLEP2[WeakBox]) {
2847  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2848  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2849  }
2850  double sigma_box = average;
2851  SMresult_cache += sigma_box;
2852  }
2853  } else if (s == 202.*202.) {
2854  if (!flagLEP2[ISR])
2856  else {
2858  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2859  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2860  }
2862  }
2863 
2864  if (flagLEP2[WeakBox]) {
2866  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2867  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2868  }
2869  double sigma_box = average;
2870  SMresult_cache += sigma_box;
2871  }
2872  } else if (s == 205.*205.) {
2873  if (!flagLEP2[ISR])
2875  else {
2877  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2878  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2879  }
2881  }
2882 
2883  if (flagLEP2[WeakBox]) {
2885  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2886  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2887  }
2888  double sigma_box = average;
2889  SMresult_cache += sigma_box;
2890  }
2891  } else if (s == 207.*207.) {
2892  if (!flagLEP2[ISR])
2894  else {
2896  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2897  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2898  }
2900  }
2901 
2902  if (flagLEP2[WeakBox]) {
2904  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2905  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2906  }
2907  double sigma_box = average;
2908  SMresult_cache += sigma_box;
2909  }
2910  } else {
2911  throw std::runtime_error("ERROR: wrong LEP2 energy in StandardModel::LEP2sigmaTau!");
2912  }
2913 
2914 
2915  double sigma_tau = SMresult_cache;
2916 
2917  gsl_set_error_handler(old_handler);
2918 
2919 
2920  return sigma_tau;
2921 }
2922 
2923 
2924 double StandardModel::LEP2sigmaCharm(const double s) const
2925 {
2926  gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
2927  double relerr = 1.e-8;
2928  double abserr = 1.e-20;
2929 
2930  if(s == 133.*133.){
2931 
2932  if (!flagLEP2[ISR]){
2934  } else {
2936  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2937  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2938  }
2940  }
2941 
2942  if (flagLEP2[WeakBox]) {
2944  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2945  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2946  }
2947  double sigma_box = average;
2948  SMresult_cache += sigma_box;
2949  }
2950  } else if (s == 167.*167.){
2951  if (!flagLEP2[ISR])
2953  else {
2955  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2956  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2957  }
2959  }
2960 
2961  if (flagLEP2[WeakBox]) {
2963  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2964  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2965  }
2966  double sigma_box = average;
2967  SMresult_cache += sigma_box;
2968  }
2969  } else if (s == 183.*183.) {
2970  if (!flagLEP2[ISR])
2972  else {
2974  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2975  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2976  }
2978  }
2979 
2980  if (flagLEP2[WeakBox]) {
2982  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2983  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2984  }
2985  double sigma_box = average;
2986  SMresult_cache += sigma_box;
2987  }
2988  } else if (s == 189.*189.) {
2989  if (!flagLEP2[ISR])
2991  else {
2993  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
2994  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
2995  }
2997  }
2998 
2999  if (flagLEP2[WeakBox]) {
3001  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3002  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3003  }
3004  double sigma_box = average;
3005  SMresult_cache += sigma_box;
3006  }
3007  } else if (s == 192.*192.) {
3008  if (!flagLEP2[ISR])
3010  else {
3012  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3013  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3014  }
3016  }
3017 
3018  if (flagLEP2[WeakBox]) {
3020  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3021  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3022  }
3023  double sigma_box = average;
3024  SMresult_cache += sigma_box;
3025  }
3026  } else if (s == 196.*196.) {
3027  if (!flagLEP2[ISR])
3029  else {
3031  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3032  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3033  }
3035  }
3036 
3037  if (flagLEP2[WeakBox]) {
3039  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3040  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3041  }
3042  double sigma_box = average;
3043  SMresult_cache += sigma_box;
3044  }
3045  } else if (s == 200.*200.) {
3046  if (!flagLEP2[ISR])
3048  else {
3050  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3051  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3052  }
3054  }
3055 
3056  if (flagLEP2[WeakBox]) {
3058  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3059  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3060  }
3061  double sigma_box = average;
3062  SMresult_cache += sigma_box;
3063  }
3064  } else if (s == 202.*202.) {
3065  if (!flagLEP2[ISR])
3067  else {
3069  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3070  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3071  }
3073  }
3074 
3075  if (flagLEP2[WeakBox]) {
3077  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3078  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3079  }
3080  double sigma_box = average;
3081  SMresult_cache += sigma_box;
3082  }
3083  } else if (s == 205.*205.) {
3084  if (!flagLEP2[ISR])
3086  else {
3088  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3089  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3090  }
3092  }
3093 
3094  if (flagLEP2[WeakBox]) {
3096  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3097  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3098  }
3099  double sigma_box = average;
3100  SMresult_cache += sigma_box;
3101  }
3102  } else if (s == 207.*207.) {
3103  if (!flagLEP2[ISR])
3105  else {
3107  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3108  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3109  }
3111  }
3112 
3113  if (flagLEP2[WeakBox]) {
3115  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3116  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3117  }
3118  double sigma_box = average;
3119  SMresult_cache += sigma_box;
3120  }
3121  } else {
3122  throw std::runtime_error("ERROR: wrong LEP2 energy in StandardModel::LEP2sigmaCharm!");
3123  }
3124 
3125 
3126  double sigma_mu = SMresult_cache;
3127 
3128  gsl_set_error_handler(old_handler);
3129 
3130  return sigma_mu;
3131 
3132 }
3133 
3134 
3135 double StandardModel::LEP2sigmaBottom(const double s) const
3136 {
3137  gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
3138  double relerr = 1.e-8;
3139  double abserr = 1.e-20;
3140 
3141  if(s == 133.*133.){
3142 
3143  if (!flagLEP2[ISR]){
3145  } else {
3147  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3148  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3149  }
3151  }
3152 
3153  if (flagLEP2[WeakBox]) {
3155  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3156  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3157  }
3158  double sigma_box = average;
3159  SMresult_cache += sigma_box;
3160  }
3161  } else if (s == 167.*167.){
3162  if (!flagLEP2[ISR])
3164  else {
3166  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3167  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3168  }
3170  }
3171 
3172  if (flagLEP2[WeakBox]) {
3174  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3175  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3176  }
3177  double sigma_box = average;
3178  SMresult_cache += sigma_box;
3179  }
3180  } else if (s == 183.*183.) {
3181  if (!flagLEP2[ISR])
3183  else {
3185  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3186  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3187  }
3189  }
3190 
3191  if (flagLEP2[WeakBox]) {
3193  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3194  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3195  }
3196  double sigma_box = average;
3197  SMresult_cache += sigma_box;
3198  }
3199  } else if (s == 189.*189.) {
3200  if (!flagLEP2[ISR])
3202  else {
3204  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3205  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3206  }
3208  }
3209 
3210  if (flagLEP2[WeakBox]) {
3212  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3213  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3214  }
3215  double sigma_box = average;
3216  SMresult_cache += sigma_box;
3217  }
3218  } else if (s == 192.*192.) {
3219  if (!flagLEP2[ISR])
3221  else {
3223  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3224  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3225  }
3227  }
3228 
3229  if (flagLEP2[WeakBox]) {
3231  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3232  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3233  }
3234  double sigma_box = average;
3235  SMresult_cache += sigma_box;
3236  }
3237  } else if (s == 196.*196.) {
3238  if (!flagLEP2[ISR])
3240  else {
3242  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3243  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3244  }
3246  }
3247 
3248  if (flagLEP2[WeakBox]) {
3250  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3251  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3252  }
3253  double sigma_box = average;
3254  SMresult_cache += sigma_box;
3255  }
3256  } else if (s == 200.*200.) {
3257  if (!flagLEP2[ISR])
3259  else {
3261  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3262  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3263  }
3265  }
3266 
3267  if (flagLEP2[WeakBox]) {
3269  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3270  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3271  }
3272  double sigma_box = average;
3273  SMresult_cache += sigma_box;
3274  }
3275  } else if (s == 202.*202.) {
3276  if (!flagLEP2[ISR])
3278  else {
3280  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3281  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3282  }
3284  }
3285 
3286  if (flagLEP2[WeakBox]) {
3288  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3289  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3290  }
3291  double sigma_box = average;
3292  SMresult_cache += sigma_box;
3293  }
3294  } else if (s == 205.*205.) {
3295  if (!flagLEP2[ISR])
3297  else {
3299  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3300  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3301  }
3303  }
3304 
3305  if (flagLEP2[WeakBox]) {
3307  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3308  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3309  }
3310  double sigma_box = average;
3311  SMresult_cache += sigma_box;
3312  }
3313  } else if (s == 207.*207.) {
3314  if (!flagLEP2[ISR])
3316  else {
3318  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3319  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3320  }
3322  }
3323 
3324  if (flagLEP2[WeakBox]) {
3326  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3327  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3328  }
3329  double sigma_box = average;
3330  SMresult_cache += sigma_box;
3331  }
3332  } else {
3333  throw std::runtime_error("ERROR: wrong LEP2 energy in StandardModel::LEP2sigmaBottom!");
3334  }
3335 
3336 
3337  double sigma_mu = SMresult_cache;
3338 
3339  gsl_set_error_handler(old_handler);
3340 
3341  return sigma_mu;
3342 
3343 }
3344 
3345 
3346 double StandardModel::LEP2sigmaHadron(const double s) const
3347 {
3348  gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
3349  double relerr = 1.e-8;
3350  double abserr = 1.e-20;
3351 
3352  if(s == 130.*130.){
3353 
3354  if (!flagLEP2[ISR]){
3360  } else {
3361 
3363  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3364  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3365  }
3367 
3369  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3370  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3371  }
3373 
3375  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3376  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3377  }
3379 
3381  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3382  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3383  }
3385 
3387  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3388  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3389  }
3391 
3392  }
3393 
3394  if (flagLEP2[WeakBox]) {
3396  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3397  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3398  }
3399  double sigma_box = average;
3400 
3402  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3403  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3404  }
3405  sigma_box += average;
3406 
3408  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3409  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3410  }
3411  sigma_box += average;
3412 
3414  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3415  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3416  }
3417  sigma_box += average;
3418 
3420  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3421  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3422  }
3423  sigma_box += average;
3424  SMresult_cache += sigma_box;
3425  }
3426  } else if (s == 133.*133.) {
3427  if (!flagLEP2[ISR]){
3433  } else {
3434 
3436  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3437  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3438  }
3440 
3442  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3443  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3444  }
3446 
3448  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3449  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3450  }
3452 
3454  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3455  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3456  }
3458 
3460  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3461  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3462  }
3464  }
3465 
3466  if (flagLEP2[WeakBox]) {
3468  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3469  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3470  }
3471  double sigma_box = average;
3472 
3474  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3475  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3476  }
3477  sigma_box += average;
3478 
3480  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3481  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3482  }
3483  sigma_box += average;
3484 
3486  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3487  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3488  }
3489  sigma_box += average;
3490 
3492  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3493  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3494  }
3495  sigma_box += average;
3496  SMresult_cache += sigma_box;
3497  }
3498  } else if (s == 136.*136.) {
3499  if (!flagLEP2[ISR]){
3505  } else {
3506 
3508  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3509  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3510  }
3512 
3514  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3515  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3516  }
3518 
3520  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3521  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3522  }
3524 
3526  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3527  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3528  }
3530 
3532  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3533  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3534  }
3536  }
3537 
3538  if (flagLEP2[WeakBox]) {
3540  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3541  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3542  }
3543  double sigma_box = average;
3544 
3546  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3547  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3548  }
3549  sigma_box += average;
3550 
3552  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3553  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3554  }
3555  sigma_box += average;
3556 
3558  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3559  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3560  }
3561  sigma_box += average;
3562 
3564  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3565  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3566  }
3567  sigma_box += average;
3568  SMresult_cache += sigma_box;
3569  }
3570  } else if (s == 161.*161.){
3571  if (!flagLEP2[ISR]){
3577  } else {
3578 
3580  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3581  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3582  }
3584 
3586  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3587  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3588  }
3590 
3592  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, 1.e-12, 1.e-6, 100, w_GSL1, &average, &error) != 0){
3593  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3594  }
3596 
3598  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 200, w_GSL1, &average, &error) != 0){
3599  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3600  }
3602 
3604  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3605  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3606  }
3608  }
3609 
3610  if (flagLEP2[WeakBox]) {
3612  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3613  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3614  }
3615  double sigma_box = average;
3616 
3618  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3619  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3620  }
3621  sigma_box += average;
3622 
3624  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3625  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3626  }
3627  sigma_box += average;
3628 
3630  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3631  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3632  }
3633  sigma_box += average;
3634 
3636  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3637  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3638  }
3639  sigma_box += average;
3640  SMresult_cache += sigma_box;
3641  }
3642  } else if (s == 167.*167.) {
3643  if (!flagLEP2[ISR]){
3649  } else {
3650 
3652  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3653  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3654  }
3655 
3657 
3659  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, 1.e-15, 1.e-9, 200, w_GSL1, &average, &error) != 0){
3660  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3661  }
3663 
3665  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, 1.e-15, 1.e-9, 200, w_GSL1, &average, &error) != 0){
3666  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3667  }
3669 
3671  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, 1.e-15, 1.e-9, 200, w_GSL1, &average, &error) != 0){
3672  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3673  }
3675 
3677  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, 1.e-15, 1.e-9, 200, w_GSL1, &average, &error) != 0){
3678  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3679  }
3681  }
3682 
3683  if (flagLEP2[WeakBox]) {
3685  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3686  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3687  }
3688  double sigma_box = average;
3689 
3691  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3692  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3693  }
3694  sigma_box += average;
3695 
3697  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3698  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3699  }
3700  sigma_box += average;
3701 
3703  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3704  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3705  }
3706  sigma_box += average;
3707 
3709  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3710  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3711  }
3712  sigma_box += average;
3713  SMresult_cache += sigma_box;
3714  }
3715  } else if (s == 172.*172.) {
3716  if (!flagLEP2[ISR]){
3722  } else {
3723 
3725  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3726  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3727  }
3729 
3731  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3732  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3733  }
3735 
3737  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3738  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3739  }
3741 
3743  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3744  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3745  }
3747 
3749  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3750  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3751  }
3752  SMresult_cache += average;
3753  }
3754 
3755  if (flagLEP2[WeakBox]) {
3757  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3758  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3759  }
3760  double sigma_box = average;
3761 
3763  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3764  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3765  }
3766  sigma_box += average;
3767 
3769  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3770  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3771  }
3772  sigma_box += average;
3773 
3775  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3776  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3777  }
3778  sigma_box += average;
3779 
3781  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3782  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3783  }
3784  sigma_box += average;
3785  SMresult_cache += sigma_box;
3786  }
3787  } else if (s == 183.*183.) {
3788  if (!flagLEP2[ISR]){
3794  } else {
3795 
3797  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3798  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3799  }
3801 
3803  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3804  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3805  }
3807 
3809  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3810  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3811  }
3813 
3815  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3816  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3817  }
3819 
3821  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3822  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3823  }
3825  }
3826 
3827  if (flagLEP2[WeakBox]) {
3829  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3830  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3831  }
3832  double sigma_box = average;
3833 
3835  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3836  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3837  }
3838  sigma_box += average;
3839 
3841  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3842  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3843  }
3844  sigma_box += average;
3845 
3847  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3848  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3849  }
3850  sigma_box += average;
3851 
3853  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3854  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3855  }
3856  sigma_box += average;
3857  SMresult_cache += sigma_box;
3858  }
3859  } else if (s == 189.*189.) {
3860  if (!flagLEP2[ISR]){
3866  } else {
3867 
3869  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3870  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3871  }
3873 
3875  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3876  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3877  }
3879 
3881  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3882  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3883  }
3885 
3887  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3888  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3889  }
3891 
3893  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3894  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3895  }
3897  }
3898 
3899  if (flagLEP2[WeakBox]) {
3901  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3902  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3903  }
3904  double sigma_box = average;
3905 
3907  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3908  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3909  }
3910  sigma_box += average;
3911 
3913  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3914  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3915  }
3916  sigma_box += average;
3917 
3919  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3920  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3921  }
3922  sigma_box += average;
3923 
3925  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3926  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3927  }
3928  sigma_box += average;
3929  SMresult_cache += sigma_box;
3930  }
3931  } else if (s == 192.*192.) {
3932  if (!flagLEP2[ISR]){
3938  } else {
3939 
3941  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3942  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3943  }
3945 
3947  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3948  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3949  }
3951 
3953 
3954  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3955  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3956  }
3958 
3960 
3961  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3962  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3963  }
3965 
3967  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3968  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3969  }
3971  }
3972 
3973  if (flagLEP2[WeakBox]) {
3975  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3976  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3977  }
3978  double sigma_box = average;
3979 
3981  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3982  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3983  }
3984  sigma_box += average;
3985 
3987  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3988  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3989  }
3990  sigma_box += average;
3991 
3993  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
3994  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
3995  }
3996  sigma_box += average;
3997 
3999  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4000  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4001  }
4002  sigma_box += average;
4003  SMresult_cache += sigma_box;
4004  }
4005  } else if (s == 196.*196.) {
4006  if (!flagLEP2[ISR]){
4012  } else {
4013 
4015  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4016  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4017  }
4019 
4021  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4022  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4023  }
4025 
4027  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4028  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4029  }
4031 
4033 
4034  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4035  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4036  }
4038 
4040  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4041  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4042  }
4044  }
4045 
4046  if (flagLEP2[WeakBox]) {
4048  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4049  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4050  }
4051  double sigma_box = average;
4052 
4054  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4055  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4056  }
4057  sigma_box += average;
4058 
4060  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4061  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4062  }
4063  sigma_box += average;
4064 
4066  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4067  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4068  }
4069  sigma_box += average;
4070 
4072  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4073  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4074  }
4075  sigma_box += average;
4076  SMresult_cache += sigma_box;
4077  }
4078  } else if (s == 200.*200.) {
4079  if (!flagLEP2[ISR]){
4085  } else {
4086 
4088  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4089  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4090  }
4092 
4094  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4095  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4096  }
4098 
4100  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4101  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4102  }
4104 
4106  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4107  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4108  }
4110 
4112  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4113  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4114  }
4116  }
4117 
4118  if (flagLEP2[WeakBox]) {
4120  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4121  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4122  }
4123  double sigma_box = average;
4124 
4126  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4127  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4128  }
4129  sigma_box += average;
4130 
4132  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4133  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4134  }
4135  sigma_box += average;
4136 
4138  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4139  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4140  }
4141  sigma_box += average;
4142 
4144  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4145  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4146  }
4147  sigma_box += average;
4148  SMresult_cache += sigma_box;
4149  }
4150  } else if (s == 202.*202.) {
4151  if (!flagLEP2[ISR]){
4157  } else {
4158 
4160 
4161 
4162 
4163  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4164  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4165  }
4167 
4169 
4170 
4171 
4172  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4173  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4174  }
4176 
4178 
4179 
4180 
4181  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4182  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4183  }
4185 
4187 
4188 
4189 
4190  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4191  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4192  }
4194 
4196 
4197 
4198 
4199  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4200  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4201  }
4203  }
4204 
4205  if (flagLEP2[WeakBox]) {
4207 
4208 
4209 
4210  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4211  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4212  }
4213  double sigma_box = average;
4214 
4216 
4217 
4218 
4219  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4220  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4221  }
4222  sigma_box += average;
4223 
4225 
4226 
4227 
4228  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4229  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4230  }
4231  sigma_box += average;
4232 
4234 
4235 
4236 
4237  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4238  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4239  }
4240  sigma_box += average;
4241 
4243 
4244 
4245 
4246  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4247  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4248  }
4249  sigma_box += average;
4250  SMresult_cache += sigma_box;
4251  }
4252  } else if (s == 205.*205.) {
4253  if (!flagLEP2[ISR]){
4259  } else {
4260 
4262 
4263 
4264 
4265  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4266  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4267  }
4269 
4271 
4272 
4273 
4274  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4275  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4276  }
4278 
4280 
4281 
4282 
4283  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4284  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4285  }
4287 
4289 
4290 
4291 
4292  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4293  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4294  }
4296 
4298 
4299 
4300 
4301  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4302  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4303  }
4305  }
4306 
4307  if (flagLEP2[WeakBox]) {
4309 
4310 
4311 
4312  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4313  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4314  }
4315  double sigma_box = average;
4316 
4318 
4319 
4320 
4321  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4322  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4323  }
4324  sigma_box += average;
4325 
4327 
4328 
4329 
4330  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4331  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4332  }
4333  sigma_box += average;
4334 
4336 
4337 
4338 
4339  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4340  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4341  }
4342  sigma_box += average;
4343 
4345 
4346 
4347 
4348  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4349  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4350  }
4351  sigma_box += average;
4352  SMresult_cache += sigma_box;
4353  }
4354  } else if (s == 207.*207.) {
4355  if (!flagLEP2[ISR]){
4361  } else {
4362 
4364 
4365 
4366 
4367  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4368  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4369  }
4371 
4373 
4374 
4375 
4376  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4377  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4378  }
4380 
4382 
4383 
4384 
4385  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4386  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4387  }
4389 
4391 
4392 
4393 
4394  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4395  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4396  }
4398 
4400 
4401 
4402 
4403  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4404  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4405  }
4407  }
4408 
4409  if (flagLEP2[WeakBox]) {
4411 
4412 
4413 
4414  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4415  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4416  }
4417  double sigma_box = average;
4418 
4420 
4421 
4422 
4423  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4424  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4425  }
4426  sigma_box += average;
4427 
4429 
4430 
4431 
4432  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4433  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4434  }
4435  sigma_box += average;
4436 
4438 
4439 
4440 
4441  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4442  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4443  }
4444  sigma_box += average;
4445 
4447 
4448 
4449 
4450  if (gsl_integration_qags(&f_GSL, -1., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4451  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4452  }
4453  sigma_box += average;
4454  SMresult_cache += sigma_box;
4455  }
4456  } else {
4457  throw std::runtime_error("ERROR: wrong LEP2 energy in StandardModel::LEP2sigmaHadron!");
4458  }
4459 
4460 
4461  double sigma_had = SMresult_cache;
4462 
4463  gsl_set_error_handler(old_handler);
4464 
4465  return sigma_had;
4466 
4467 }
4468 
4469 
4470 double StandardModel::LEP2AFBbottom(const double s) const
4471 {
4472 
4473  bSigmaForAFB = true;
4474  gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
4475  double relerr = 1.e-7;
4476  double abserr = 1.e-17;
4477 
4478  if(s == 133.*133.){
4479  double AFB_noBox, sigma = 0.0;
4480  if (!flagLEP2[ISR])
4481  AFB_noBox = AFB_NoISR_q(QCD::quark(BOTTOM),s);
4482  else {
4484  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4485  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4486  }
4487  double numerator = average; // interval
4488 
4489 
4490  sigma = LEP2sigmaBottom(s);
4491 
4492  AFB_noBox = numerator/sigma;
4493  }
4494  SMresult_cache = AFB_noBox;
4495 
4496  if (flagLEP2[WeakBox]) {
4497  // numerator
4499  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4500  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4501  }
4502  double sigma_box_F = average; // interval
4504  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4505  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4506  }
4507  double sigma_box_B = average; // interval
4508 
4509  // denominator
4510  if (!flagLEP2[ISR]) {
4511 
4512  sigma = LEP2sigmaBottom(s);
4513  }
4514 
4515  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
4516  }
4517  } else if (s == 167.*167.){
4518  double AFB_noBox, sigma = 0.0;
4519  if (!flagLEP2[ISR])
4520  AFB_noBox = AFB_NoISR_q(QCD::quark(BOTTOM),s);
4521  else {
4523  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4524  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4525  }
4526  double numerator = average; // interval
4527 
4528 
4529  sigma = LEP2sigmaBottom(s);
4530 
4531  AFB_noBox = numerator/sigma;
4532  }
4533  SMresult_cache = AFB_noBox;
4534 
4535  if (flagLEP2[WeakBox]) {
4536  // numerator
4538  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4539  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4540  }
4541  double sigma_box_F = average; // interval
4543  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4544  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4545  }
4546  double sigma_box_B = average; // interval
4547 
4548  // denominator
4549  if (!flagLEP2[ISR]) {
4550 
4551  sigma = LEP2sigmaBottom(s);
4552  }
4553 
4554  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
4555  }
4556  } else if (s == 183.*183.) {
4557  double AFB_noBox, sigma = 0.0;
4558  if (!flagLEP2[ISR])
4559  AFB_noBox = AFB_NoISR_q(QCD::quark(BOTTOM),s);
4560  else {
4562  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4563  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4564  }
4565  double numerator = average; // interval
4566 
4567 
4568  sigma = LEP2sigmaBottom(s);
4569 
4570  AFB_noBox = numerator/sigma;
4571  }
4572  SMresult_cache = AFB_noBox;
4573 
4574  if (flagLEP2[WeakBox]) {
4575  // numerator
4577  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4578  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4579  }
4580  double sigma_box_F = average; // interval
4582  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4583  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4584  }
4585  double sigma_box_B = average; // interval
4586 
4587  // denominator
4588  if (!flagLEP2[ISR]) {
4589 
4590  sigma = LEP2sigmaBottom(s);
4591  }
4592 
4593  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
4594  }
4595  } else if (s == 189.*189.) {
4596  double AFB_noBox, sigma = 0.0;
4597  if (!flagLEP2[ISR])
4598  AFB_noBox = AFB_NoISR_q(QCD::quark(BOTTOM),s);
4599  else {
4601  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4602  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4603  }
4604  double numerator = average; // interval
4605 
4606 
4607  sigma = LEP2sigmaBottom(s);
4608 
4609  AFB_noBox = numerator/sigma;
4610  }
4611  SMresult_cache = AFB_noBox;
4612 
4613  if (flagLEP2[WeakBox]) {
4614  // numerator
4616  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4617  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4618  }
4619  double sigma_box_F = average; // interval
4621  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4622  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4623  }
4624  double sigma_box_B = average; // interval
4625 
4626  // denominator
4627  if (!flagLEP2[ISR]) {
4628 
4629  sigma = LEP2sigmaBottom(s);
4630  }
4631 
4632  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
4633  }
4634  } else if (s == 192.*192.) {
4635  double AFB_noBox, sigma = 0.0;
4636  if (!flagLEP2[ISR])
4637  AFB_noBox = AFB_NoISR_q(QCD::quark(BOTTOM),s);
4638  else {
4640  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4641  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4642  }
4643  double numerator = average; // interval
4644 
4645 
4646  sigma = LEP2sigmaBottom(s);
4647 
4648  AFB_noBox = numerator/sigma;
4649  }
4650  SMresult_cache = AFB_noBox;
4651 
4652  if (flagLEP2[WeakBox]) {
4653  // numerator
4655  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4656  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4657  }
4658  double sigma_box_F = average; // interval
4660  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4661  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4662  }
4663  double sigma_box_B = average; // interval
4664 
4665  // denominator
4666  if (!flagLEP2[ISR]) {
4667 
4668  sigma = LEP2sigmaBottom(s);
4669  }
4670 
4671  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
4672  }
4673  } else if (s == 196.*196.) {
4674  double AFB_noBox, sigma = 0.0;
4675  if (!flagLEP2[ISR])
4676  AFB_noBox = AFB_NoISR_q(QCD::quark(BOTTOM),s);
4677  else {
4679  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4680  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4681  }
4682  double numerator = average; // interval
4683 
4684 
4685  sigma = LEP2sigmaBottom(s);
4686 
4687  AFB_noBox = numerator/sigma;
4688  }
4689  SMresult_cache = AFB_noBox;
4690 
4691  if (flagLEP2[WeakBox]) {
4692  // numerator
4694  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4695  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4696  }
4697  double sigma_box_F = average; // interval
4699  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4700  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4701  }
4702  double sigma_box_B = average; // interval
4703 
4704  // denominator
4705  if (!flagLEP2[ISR]) {
4706 
4707  sigma = LEP2sigmaBottom(s);
4708  }
4709 
4710  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
4711  }
4712  } else if (s == 200.*200.) {
4713  double AFB_noBox, sigma = 0.0;
4714  if (!flagLEP2[ISR])
4715  AFB_noBox = AFB_NoISR_q(QCD::quark(BOTTOM),s);
4716  else {
4718  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4719  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4720  }
4721  double numerator = average; // interval
4722 
4723 
4724  sigma = LEP2sigmaBottom(s);
4725 
4726  AFB_noBox = numerator/sigma;
4727  }
4728  SMresult_cache = AFB_noBox;
4729 
4730  if (flagLEP2[WeakBox]) {
4731  // numerator
4733  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4734  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4735  }
4736  double sigma_box_F = average; // interval
4738  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4739  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4740  }
4741  double sigma_box_B = average; // interval
4742 
4743  // denominator
4744  if (!flagLEP2[ISR]) {
4745 
4746  sigma = LEP2sigmaBottom(s);
4747  }
4748 
4749  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
4750  }
4751  } else if (s == 202.*202.) {
4752  double AFB_noBox, sigma = 0.0;
4753  if (!flagLEP2[ISR])
4754  AFB_noBox = AFB_NoISR_q(QCD::quark(BOTTOM),s);
4755  else {
4757  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4758  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4759  }
4760  double numerator = average; // interval
4761 
4762 
4763  sigma = LEP2sigmaBottom(s);
4764 
4765  AFB_noBox = numerator/sigma;
4766  }
4767  SMresult_cache = AFB_noBox;
4768 
4769  if (flagLEP2[WeakBox]) {
4770  // numerator
4772  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4773  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4774  }
4775  double sigma_box_F = average; // interval
4777  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4778  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4779  }
4780  double sigma_box_B = average; // interval
4781 
4782  // denominator
4783  if (!flagLEP2[ISR]) {
4784 
4785  sigma = LEP2sigmaBottom(s);
4786  }
4787 
4788  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
4789  }
4790  } else if (s == 205.*205.) {
4791  double AFB_noBox, sigma = 0.0;
4792  if (!flagLEP2[ISR])
4793  AFB_noBox = AFB_NoISR_q(QCD::quark(BOTTOM),s);
4794  else {
4796  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4797  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4798  }
4799  double numerator = average; // interval
4800 
4801 
4802  sigma = LEP2sigmaBottom(s);
4803 
4804  AFB_noBox = numerator/sigma;
4805  }
4806  SMresult_cache = AFB_noBox;
4807 
4808  if (flagLEP2[WeakBox]) {
4809  // numerator
4811  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4812  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4813  }
4814  double sigma_box_F = average; // interval
4816  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4817  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4818  }
4819  double sigma_box_B = average; // interval
4820 
4821  // denominator
4822  if (!flagLEP2[ISR]) {
4823 
4824  sigma = LEP2sigmaBottom(s);
4825  }
4826 
4827  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
4828  }
4829  } else if (s == 207.*207.) {
4830  double AFB_noBox, sigma = 0.0;
4831  if (!flagLEP2[ISR])
4832  AFB_noBox = AFB_NoISR_q(QCD::quark(BOTTOM),s);
4833  else {
4835  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4836  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4837  }
4838  double numerator = average; // interval
4839 
4840 
4841  sigma = LEP2sigmaBottom(s);
4842 
4843  AFB_noBox = numerator/sigma;
4844  }
4845  SMresult_cache = AFB_noBox;
4846 
4847  if (flagLEP2[WeakBox]) {
4848  // numerator
4850  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4851  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4852  }
4853  double sigma_box_F = average; // interval
4855  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4856  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4857  }
4858  double sigma_box_B = average; // interval
4859 
4860  // denominator
4861  if (!flagLEP2[ISR]) {
4862 
4863  sigma = LEP2sigmaBottom(s);
4864  }
4865 
4866  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
4867  }
4868  } else {
4869  throw std::runtime_error("ERROR: wrong LEP2 energy in StandardModel::LEP2AFBbottom!");
4870  }
4871 
4872 
4873  double AFBbottom = SMresult_cache;
4874 
4875  gsl_set_error_handler(old_handler);
4876  bSigmaForAFB = false;
4877  return AFBbottom;
4878 
4879 }
4880 
4881 
4882 double StandardModel::LEP2AFBcharm(const double s) const
4883 {
4884 
4885  bSigmaForAFB = true;
4886  gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
4887  double relerr = 1.e-7;
4888  double abserr = 1.e-17;
4889 
4890  if(s == 133.*133.){
4891  double AFB_noBox, sigma = 0.0;
4892  if (!flagLEP2[ISR])
4893  AFB_noBox = AFB_NoISR_q(QCD::quark(CHARM),s);
4894  else {
4896  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4897  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4898  }
4899  double numerator = average; // interval
4900 
4901 
4902  sigma = LEP2sigmaCharm(s);
4903 
4904  AFB_noBox = numerator/sigma;
4905  }
4906  SMresult_cache = AFB_noBox;
4907 
4908  if (flagLEP2[WeakBox]) {
4909  // numerator
4911  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4912  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4913  }
4914  double sigma_box_F = average; // interval
4916  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4917  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4918  }
4919  double sigma_box_B = average; // interval
4920 
4921  // denominator
4922  if (!flagLEP2[ISR]) {
4923 
4924  sigma = LEP2sigmaCharm(s);
4925  }
4926 
4927  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
4928  }
4929  } else if (s == 167.*167.){
4930  double AFB_noBox, sigma = 0.0;
4931  if (!flagLEP2[ISR])
4932  AFB_noBox = AFB_NoISR_q(QCD::quark(CHARM),s);
4933  else {
4935  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4936  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4937  }
4938  double numerator = average; // interval
4939 
4940 
4941  sigma = LEP2sigmaCharm(s);
4942 
4943  AFB_noBox = numerator/sigma;
4944  }
4945  SMresult_cache = AFB_noBox;
4946 
4947  if (flagLEP2[WeakBox]) {
4948  // numerator
4950  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4951  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4952  }
4953  double sigma_box_F = average; // interval
4955  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4956  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4957  }
4958  double sigma_box_B = average; // interval
4959 
4960  // denominator
4961  if (!flagLEP2[ISR]) {
4962 
4963  sigma = LEP2sigmaCharm(s);
4964  }
4965 
4966  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
4967  }
4968  } else if (s == 183.*183.) {
4969  double AFB_noBox, sigma = 0.0;
4970  if (!flagLEP2[ISR])
4971  AFB_noBox = AFB_NoISR_q(QCD::quark(CHARM),s);
4972  else {
4974  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4975  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4976  }
4977  double numerator = average; // interval
4978 
4979 
4980  sigma = LEP2sigmaCharm(s);
4981 
4982  AFB_noBox = numerator/sigma;
4983  }
4984  SMresult_cache = AFB_noBox;
4985 
4986  if (flagLEP2[WeakBox]) {
4987  // numerator
4989  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4990  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4991  }
4992  double sigma_box_F = average; // interval
4994  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
4995  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
4996  }
4997  double sigma_box_B = average; // interval
4998 
4999  // denominator
5000  if (!flagLEP2[ISR]) {
5001 
5002  sigma = LEP2sigmaCharm(s);
5003  }
5004 
5005  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5006  }
5007  } else if (s == 189.*189.) {
5008  double AFB_noBox, sigma = 0.0;
5009  if (!flagLEP2[ISR])
5010  AFB_noBox = AFB_NoISR_q(QCD::quark(CHARM),s);
5011  else {
5013  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5014  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5015  }
5016  double numerator = average; // interval
5017 
5018 
5019  sigma = LEP2sigmaCharm(s);
5020 
5021  AFB_noBox = numerator/sigma;
5022  }
5023  SMresult_cache = AFB_noBox;
5024 
5025  if (flagLEP2[WeakBox]) {
5026  // numerator
5028  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5029  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5030  }
5031  double sigma_box_F = average; // interval
5033  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5034  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5035  }
5036  double sigma_box_B = average; // interval
5037 
5038  // denominator
5039  if (!flagLEP2[ISR]) {
5040 
5041  sigma = LEP2sigmaCharm(s);
5042  }
5043 
5044  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5045  }
5046  } else if (s == 192.*192.) {
5047  double AFB_noBox, sigma = 0.0;
5048  if (!flagLEP2[ISR])
5049  AFB_noBox = AFB_NoISR_q(QCD::quark(CHARM),s);
5050  else {
5052  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5053  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5054  }
5055  double numerator = average; // interval
5056 
5057 
5058  sigma = LEP2sigmaCharm(s);
5059 
5060  AFB_noBox = numerator/sigma;
5061  }
5062  SMresult_cache = AFB_noBox;
5063 
5064  if (flagLEP2[WeakBox]) {
5065  // numerator
5067  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5068  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5069  }
5070  double sigma_box_F = average; // interval
5072  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5073  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5074  }
5075  double sigma_box_B = average; // interval
5076 
5077  // denominator
5078  if (!flagLEP2[ISR]) {
5079 
5080  sigma = LEP2sigmaCharm(s);
5081  }
5082 
5083  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5084  }
5085  } else if (s == 196.*196.) {
5086  double AFB_noBox, sigma = 0.0;
5087  if (!flagLEP2[ISR])
5088  AFB_noBox = AFB_NoISR_q(QCD::quark(CHARM),s);
5089  else {
5091  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5092  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5093  }
5094  double numerator = average; // interval
5095 
5096 
5097  sigma = LEP2sigmaCharm(s);
5098 
5099  AFB_noBox = numerator/sigma;
5100  }
5101  SMresult_cache = AFB_noBox;
5102 
5103  if (flagLEP2[WeakBox]) {
5104  // numerator
5106  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5107  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5108  }
5109  double sigma_box_F = average; // interval
5111  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5112  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5113  }
5114  double sigma_box_B = average; // interval
5115 
5116  // denominator
5117  if (!flagLEP2[ISR]) {
5118 
5119  sigma = LEP2sigmaCharm(s);
5120  }
5121 
5122  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5123  }
5124  } else if (s == 200.*200.) {
5125  double AFB_noBox, sigma = 0.0;
5126  if (!flagLEP2[ISR])
5127  AFB_noBox = AFB_NoISR_q(QCD::quark(CHARM),s);
5128  else {
5130  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5131  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5132  }
5133  double numerator = average; // interval
5134 
5135 
5136  sigma = LEP2sigmaCharm(s);
5137 
5138  AFB_noBox = numerator/sigma;
5139  }
5140  SMresult_cache = AFB_noBox;
5141 
5142  if (flagLEP2[WeakBox]) {
5143  // numerator
5145  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5146  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5147  }
5148  double sigma_box_F = average; // interval
5150  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5151  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5152  }
5153  double sigma_box_B = average; // interval
5154 
5155  // denominator
5156  if (!flagLEP2[ISR]) {
5157 
5158  sigma = LEP2sigmaCharm(s);
5159  }
5160 
5161  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5162  }
5163  } else if (s == 202.*202.) {
5164  double AFB_noBox, sigma = 0.0;
5165  if (!flagLEP2[ISR])
5166  AFB_noBox = AFB_NoISR_q(QCD::quark(CHARM),s);
5167  else {
5169  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5170  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5171  }
5172  double numerator = average; // interval
5173 
5174 
5175  sigma = LEP2sigmaCharm(s);
5176 
5177  AFB_noBox = numerator/sigma;
5178  }
5179  SMresult_cache = AFB_noBox;
5180 
5181  if (flagLEP2[WeakBox]) {
5182  // numerator
5184  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5185  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5186  }
5187  double sigma_box_F = average; // interval
5189  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5190  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5191  }
5192  double sigma_box_B = average; // interval
5193 
5194  // denominator
5195  if (!flagLEP2[ISR]) {
5196 
5197  sigma = LEP2sigmaCharm(s);
5198  }
5199 
5200  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5201  }
5202  } else if (s == 205.*205.) {
5203  double AFB_noBox, sigma = 0.0;
5204  if (!flagLEP2[ISR])
5205  AFB_noBox = AFB_NoISR_q(QCD::quark(CHARM),s);
5206  else {
5208  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5209  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5210  }
5211  double numerator = average; // interval
5212 
5213 
5214  sigma = LEP2sigmaCharm(s);
5215 
5216  AFB_noBox = numerator/sigma;
5217  }
5218  SMresult_cache = AFB_noBox;
5219 
5220  if (flagLEP2[WeakBox]) {
5221  // numerator
5223  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5224  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5225  }
5226  double sigma_box_F = average; // interval
5228  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5229  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5230  }
5231  double sigma_box_B = average; // interval
5232 
5233  // denominator
5234  if (!flagLEP2[ISR]) {
5235 
5236  sigma = LEP2sigmaCharm(s);
5237  }
5238 
5239  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5240  }
5241  } else if (s == 207.*207.) {
5242  double AFB_noBox, sigma = 0.0;
5243  if (!flagLEP2[ISR])
5244  AFB_noBox = AFB_NoISR_q(QCD::quark(CHARM),s);
5245  else {
5247  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5248  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5249  }
5250  double numerator = average; // interval
5251 
5252 
5253  sigma = LEP2sigmaCharm(s);
5254 
5255  AFB_noBox = numerator/sigma;
5256  }
5257  SMresult_cache = AFB_noBox;
5258 
5259  if (flagLEP2[WeakBox]) {
5260  // numerator
5262  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5263  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5264  }
5265  double sigma_box_F = average; // interval
5267  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5268  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5269  }
5270  double sigma_box_B = average; // interval
5271 
5272  // denominator
5273  if (!flagLEP2[ISR]) {
5274 
5275  sigma = LEP2sigmaCharm(s);
5276  }
5277 
5278  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5279  }
5280  } else {
5281  throw std::runtime_error("ERROR: wrong LEP2 energy in StandardModel::LEP2AFBcharm!");
5282  }
5283 
5284 
5285  double AFBcharm = SMresult_cache;
5286 
5287  gsl_set_error_handler(old_handler);
5288  bSigmaForAFB = false;
5289  return AFBcharm;
5290 
5291 }
5292 
5293 
5294 double StandardModel::LEP2AFBmu(const double s) const
5295 {
5296 
5297  bSigmaForAFB = true;
5298  gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
5299  double relerr = 1.e-7;
5300  double abserr = 1.e-17;
5301 
5302  if(s == 130.*130.){
5303  double AFB_noBox, sigma = 0.0;
5304  if (!flagLEP2[ISR])
5305  AFB_noBox = AFB_NoISR_l(QCD::lepton(MU),s);
5306  else {
5308  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5309  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5310  }
5311  double numerator = average; // interval
5312 
5313 
5314  sigma = LEP2sigmaMu(s);
5315 
5316  AFB_noBox = numerator/sigma;
5317  }
5318  SMresult_cache = AFB_noBox;
5319 
5320  if (flagLEP2[WeakBox]) {
5321  // numerator
5323  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5324  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5325  }
5326  double sigma_box_F = average; // interval
5328  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5329  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5330  }
5331  double sigma_box_B = average; // interval
5332 
5333  // denominator
5334  if (!flagLEP2[ISR]) {
5335 
5336  sigma = LEP2sigmaMu(s);
5337  }
5338 
5339  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5340  }
5341  } else if (s == 136.*136.){
5342  double AFB_noBox, sigma = 0.0;
5343  if (!flagLEP2[ISR])
5344  AFB_noBox = AFB_NoISR_l(QCD::lepton(MU),s);
5345  else {
5347  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5348  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5349  }
5350  double numerator = average; // interval
5351 
5352 
5353  sigma = LEP2sigmaMu(s);
5354 
5355  AFB_noBox = numerator/sigma;
5356  }
5357  SMresult_cache = AFB_noBox;
5358 
5359  if (flagLEP2[WeakBox]) {
5360  // numerator
5362  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5363  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5364  }
5365  double sigma_box_F = average; // interval
5367  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5368  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5369  }
5370  double sigma_box_B = average; // interval
5371 
5372  // denominator
5373  if (!flagLEP2[ISR]) {
5374 
5375  sigma = LEP2sigmaMu(s);
5376  }
5377 
5378  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5379  }
5380  } else if (s == 161.*161.){
5381  double AFB_noBox, sigma = 0.0;
5382  if (!flagLEP2[ISR])
5383  AFB_noBox = AFB_NoISR_l(QCD::lepton(MU),s);
5384  else {
5386  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5387  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5388  }
5389  double numerator = average; // interval
5390 
5391 
5392  sigma = LEP2sigmaMu(s);
5393 
5394  AFB_noBox = numerator/sigma;
5395  }
5396  SMresult_cache = AFB_noBox;
5397 
5398  if (flagLEP2[WeakBox]) {
5399  // numerator
5401  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5402  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5403  }
5404  double sigma_box_F = average; // interval
5406  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5407  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5408  }
5409  double sigma_box_B = average; // interval
5410 
5411  // denominator
5412  if (!flagLEP2[ISR]) {
5413 
5414  sigma = LEP2sigmaMu(s);
5415  }
5416 
5417  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5418  }
5419  } else if (s == 172.*172.){
5420  double AFB_noBox, sigma = 0.0;
5421  if (!flagLEP2[ISR])
5422  AFB_noBox = AFB_NoISR_l(QCD::lepton(MU),s);
5423  else {
5425  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5426  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5427  }
5428  double numerator = average; // interval
5429 
5430 
5431  sigma = LEP2sigmaMu(s);
5432 
5433  AFB_noBox = numerator/sigma;
5434  }
5435  SMresult_cache = AFB_noBox;
5436 
5437  if (flagLEP2[WeakBox]) {
5438  // numerator
5440  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5441  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5442  }
5443  double sigma_box_F = average; // interval
5445  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5446  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5447  }
5448  double sigma_box_B = average; // interval
5449 
5450  // denominator
5451  if (!flagLEP2[ISR]) {
5452 
5453  sigma = LEP2sigmaMu(s);
5454  }
5455 
5456  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5457  }
5458  } else if (s == 183.*183.) {
5459  double AFB_noBox, sigma = 0.0;
5460  if (!flagLEP2[ISR])
5461  AFB_noBox = AFB_NoISR_l(QCD::lepton(MU),s);
5462  else {
5464  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5465  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5466  }
5467  double numerator = average; // interval
5468 
5469 
5470  sigma = LEP2sigmaMu(s);
5471 
5472  AFB_noBox = numerator/sigma;
5473  }
5474  SMresult_cache = AFB_noBox;
5475 
5476  if (flagLEP2[WeakBox]) {
5477  // numerator
5479  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5480  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5481  }
5482  double sigma_box_F = average; // interval
5484  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5485  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5486  }
5487  double sigma_box_B = average; // interval
5488 
5489  // denominator
5490  if (!flagLEP2[ISR]) {
5491 
5492  sigma = LEP2sigmaMu(s);
5493  }
5494 
5495  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5496  }
5497  } else if (s == 189.*189.) {
5498  double AFB_noBox, sigma = 0.0;
5499  if (!flagLEP2[ISR])
5500  AFB_noBox = AFB_NoISR_l(QCD::lepton(MU),s);
5501  else {
5503  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5504  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5505  }
5506  double numerator = average; // interval
5507 
5508 
5509  sigma = LEP2sigmaMu(s);
5510 
5511  AFB_noBox = numerator/sigma;
5512  }
5513  SMresult_cache = AFB_noBox;
5514 
5515  if (flagLEP2[WeakBox]) {
5516  // numerator
5518  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5519  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5520  }
5521  double sigma_box_F = average; // interval
5523  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5524  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5525  }
5526  double sigma_box_B = average; // interval
5527 
5528  // denominator
5529  if (!flagLEP2[ISR]) {
5530 
5531  sigma = LEP2sigmaMu(s);
5532  }
5533 
5534  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5535  }
5536  } else if (s == 192.*192.) {
5537  double AFB_noBox, sigma = 0.0;
5538  if (!flagLEP2[ISR])
5539  AFB_noBox = AFB_NoISR_l(QCD::lepton(MU),s);
5540  else {
5542  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5543  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5544  }
5545  double numerator = average; // interval
5546 
5547 
5548  sigma = LEP2sigmaMu(s);
5549 
5550  AFB_noBox = numerator/sigma;
5551  }
5552  SMresult_cache = AFB_noBox;
5553 
5554  if (flagLEP2[WeakBox]) {
5555  // numerator
5557  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5558  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5559  }
5560  double sigma_box_F = average; // interval
5562  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5563  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5564  }
5565  double sigma_box_B = average; // interval
5566 
5567  // denominator
5568  if (!flagLEP2[ISR]) {
5569 
5570  sigma = LEP2sigmaMu(s);
5571  }
5572 
5573  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5574  }
5575  } else if (s == 196.*196.) {
5576  double AFB_noBox, sigma = 0.0;
5577  if (!flagLEP2[ISR])
5578  AFB_noBox = AFB_NoISR_l(QCD::lepton(MU),s);
5579  else {
5581  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5582  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5583  }
5584  double numerator = average; // interval
5585 
5586 
5587  sigma = LEP2sigmaMu(s);
5588 
5589  AFB_noBox = numerator/sigma;
5590  }
5591  SMresult_cache = AFB_noBox;
5592 
5593  if (flagLEP2[WeakBox]) {
5594  // numerator
5596  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5597  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5598  }
5599  double sigma_box_F = average; // interval
5601  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5602  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5603  }
5604  double sigma_box_B = average; // interval
5605 
5606  // denominator
5607  if (!flagLEP2[ISR]) {
5608 
5609  sigma = LEP2sigmaMu(s);
5610  }
5611 
5612  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5613  }
5614  } else if (s == 200.*200.) {
5615  double AFB_noBox, sigma = 0.0;
5616  if (!flagLEP2[ISR])
5617  AFB_noBox = AFB_NoISR_l(QCD::lepton(MU),s);
5618  else {
5620  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5621  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5622  }
5623  double numerator = average; // interval
5624 
5625 
5626  sigma = LEP2sigmaMu(s);
5627 
5628  AFB_noBox = numerator/sigma;
5629  }
5630  SMresult_cache = AFB_noBox;
5631 
5632  if (flagLEP2[WeakBox]) {
5633  // numerator
5635  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5636  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5637  }
5638  double sigma_box_F = average; // interval
5640  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5641  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5642  }
5643  double sigma_box_B = average; // interval
5644 
5645  // denominator
5646  if (!flagLEP2[ISR]) {
5647 
5648  sigma = LEP2sigmaMu(s);
5649  }
5650 
5651  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5652  }
5653  } else if (s == 202.*202.) {
5654  double AFB_noBox, sigma = 0.0;
5655  if (!flagLEP2[ISR])
5656  AFB_noBox = AFB_NoISR_l(QCD::lepton(MU),s);
5657  else {
5659  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5660  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5661  }
5662  double numerator = average; // interval
5663 
5664 
5665  sigma = LEP2sigmaMu(s);
5666 
5667  AFB_noBox = numerator/sigma;
5668  }
5669  SMresult_cache = AFB_noBox;
5670 
5671  if (flagLEP2[WeakBox]) {
5672  // numerator
5674  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5675  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5676  }
5677  double sigma_box_F = average; // interval
5679  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5680  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5681  }
5682  double sigma_box_B = average; // interval
5683 
5684  // denominator
5685  if (!flagLEP2[ISR]) {
5686 
5687  sigma = LEP2sigmaMu(s);
5688  }
5689 
5690  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5691  }
5692  } else if (s == 205.*205.) {
5693  double AFB_noBox, sigma = 0.0;
5694  if (!flagLEP2[ISR])
5695  AFB_noBox = AFB_NoISR_l(QCD::lepton(MU),s);
5696  else {
5698  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5699  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5700  }
5701  double numerator = average; // interval
5702 
5703 
5704  sigma = LEP2sigmaMu(s);
5705 
5706  AFB_noBox = numerator/sigma;
5707  }
5708  SMresult_cache = AFB_noBox;
5709 
5710  if (flagLEP2[WeakBox]) {
5711  // numerator
5713  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5714  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5715  }
5716  double sigma_box_F = average; // interval
5718  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5719  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5720  }
5721  double sigma_box_B = average; // interval
5722 
5723  // denominator
5724  if (!flagLEP2[ISR]) {
5725 
5726  sigma = LEP2sigmaMu(s);
5727  }
5728 
5729  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5730  }
5731  } else if (s == 207.*207.) {
5732  double AFB_noBox, sigma = 0.0;
5733  if (!flagLEP2[ISR])
5734  AFB_noBox = AFB_NoISR_l(QCD::lepton(MU),s);
5735  else {
5737  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5738  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5739  }
5740  double numerator = average; // interval
5741 
5742 
5743  sigma = LEP2sigmaMu(s);
5744 
5745  AFB_noBox = numerator/sigma;
5746  }
5747  SMresult_cache = AFB_noBox;
5748 
5749  if (flagLEP2[WeakBox]) {
5750  // numerator
5752  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5753  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5754  }
5755  double sigma_box_F = average; // interval
5757  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5758  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5759  }
5760  double sigma_box_B = average; // interval
5761 
5762  // denominator
5763  if (!flagLEP2[ISR]) {
5764 
5765  sigma = LEP2sigmaMu(s);
5766  }
5767 
5768  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5769  }
5770  } else {
5771  throw std::runtime_error("ERROR: wrong LEP2 energy in StandardModel::AFBmu!");
5772  }
5773 
5774 
5775  double AFBmu = SMresult_cache;
5776 
5777  gsl_set_error_handler(old_handler);
5778  bSigmaForAFB = false;
5779  return AFBmu;
5780 
5781 }
5782 
5783 
5784 double StandardModel::LEP2AFBtau(const double s) const
5785 {
5786 
5787  bSigmaForAFB = true;
5788  gsl_error_handler_t * old_handler = gsl_set_error_handler_off();
5789  double relerr = 1.e-7;
5790  double abserr = 1.e-17;
5791 
5792  if(s == 130.*130.){
5793  double AFB_noBox, sigma = 0.0;
5794  if (!flagLEP2[ISR])
5795  AFB_noBox = AFB_NoISR_l(QCD::lepton(TAU),s);
5796  else {
5798  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5799  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5800  }
5801  double numerator = average; // interval
5802 
5803 
5804  sigma = LEP2sigmaTau(s);
5805 
5806  AFB_noBox = numerator/sigma;
5807  }
5808  SMresult_cache = AFB_noBox;
5809 
5810  if (flagLEP2[WeakBox]) {
5811  // numerator
5813  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5814  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5815  }
5816  double sigma_box_F = average; // interval
5818  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5819  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5820  }
5821  double sigma_box_B = average; // interval
5822 
5823  // denominator
5824  if (!flagLEP2[ISR]) {
5825 
5826  sigma = LEP2sigmaTau(s);
5827  }
5828 
5829  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5830  }
5831  } else if (s == 136.*136.){
5832  double AFB_noBox, sigma = 0.0;
5833  if (!flagLEP2[ISR])
5834  AFB_noBox = AFB_NoISR_l(QCD::lepton(TAU),s);
5835  else {
5837  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5838  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5839  }
5840  double numerator = average; // interval
5841 
5842 
5843  sigma = LEP2sigmaTau(s);
5844 
5845  AFB_noBox = numerator/sigma;
5846  }
5847  SMresult_cache = AFB_noBox;
5848 
5849  if (flagLEP2[WeakBox]) {
5850  // numerator
5852  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5853  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5854  }
5855  double sigma_box_F = average; // interval
5857  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5858  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5859  }
5860  double sigma_box_B = average; // interval
5861 
5862  // denominator
5863  if (!flagLEP2[ISR]) {
5864 
5865  sigma = LEP2sigmaTau(s);
5866  }
5867 
5868  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5869  }
5870  } else if (s == 161.*161.){
5871  double AFB_noBox, sigma = 0.0;
5872  if (!flagLEP2[ISR])
5873  AFB_noBox = AFB_NoISR_l(QCD::lepton(TAU),s);
5874  else {
5876  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5877  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5878  }
5879  double numerator = average; // interval
5880 
5881 
5882  sigma = LEP2sigmaTau(s);
5883 
5884  AFB_noBox = numerator/sigma;
5885  }
5886  SMresult_cache = AFB_noBox;
5887 
5888  if (flagLEP2[WeakBox]) {
5889  // numerator
5891  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5892  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5893  }
5894  double sigma_box_F = average; // interval
5896  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5897  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5898  }
5899  double sigma_box_B = average; // interval
5900 
5901  // denominator
5902  if (!flagLEP2[ISR]) {
5903 
5904  sigma = LEP2sigmaTau(s);
5905  }
5906 
5907  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5908  }
5909  } else if (s == 172.*172.){
5910  double AFB_noBox, sigma = 0.0;
5911  if (!flagLEP2[ISR])
5912  AFB_noBox = AFB_NoISR_l(QCD::lepton(TAU),s);
5913  else {
5915  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5916  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5917  }
5918  double numerator = average; // interval
5919 
5920 
5921  sigma = LEP2sigmaTau(s);
5922 
5923  AFB_noBox = numerator/sigma;
5924  }
5925  SMresult_cache = AFB_noBox;
5926 
5927  if (flagLEP2[WeakBox]) {
5928  // numerator
5930  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5931  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5932  }
5933  double sigma_box_F = average; // interval
5935  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5936  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5937  }
5938  double sigma_box_B = average; // interval
5939 
5940  // denominator
5941  if (!flagLEP2[ISR]) {
5942 
5943  sigma = LEP2sigmaTau(s);
5944  }
5945 
5946  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5947  }
5948  } else if (s == 183.*183.) {
5949  double AFB_noBox, sigma = 0.0;
5950  if (!flagLEP2[ISR])
5951  AFB_noBox = AFB_NoISR_l(QCD::lepton(TAU),s);
5952  else {
5954  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5955  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5956  }
5957  double numerator = average; // interval
5958 
5959 
5960  sigma = LEP2sigmaTau(s);
5961 
5962  AFB_noBox = numerator/sigma;
5963  }
5964  SMresult_cache = AFB_noBox;
5965 
5966  if (flagLEP2[WeakBox]) {
5967  // numerator
5969  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5970  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5971  }
5972  double sigma_box_F = average; // interval
5974  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5975  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5976  }
5977  double sigma_box_B = average; // interval
5978 
5979  // denominator
5980  if (!flagLEP2[ISR]) {
5981 
5982  sigma = LEP2sigmaTau(s);
5983  }
5984 
5985  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
5986  }
5987  } else if (s == 189.*189.) {
5988  double AFB_noBox, sigma = 0.0;
5989  if (!flagLEP2[ISR])
5990  AFB_noBox = AFB_NoISR_l(QCD::lepton(TAU),s);
5991  else {
5993  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
5994  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
5995  }
5996  double numerator = average; // interval
5997 
5998 
5999  sigma = LEP2sigmaTau(s);
6000 
6001  AFB_noBox = numerator/sigma;
6002  }
6003  SMresult_cache = AFB_noBox;
6004 
6005  if (flagLEP2[WeakBox]) {
6006  // numerator
6008  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
6009  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
6010  }
6011  double sigma_box_F = average; // interval
6013  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
6014  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
6015  }
6016  double sigma_box_B = average; // interval
6017 
6018  // denominator
6019  if (!flagLEP2[ISR]) {
6020 
6021  sigma = LEP2sigmaTau(s);
6022  }
6023 
6024  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
6025  }
6026  } else if (s == 192.*192.) {
6027  double AFB_noBox, sigma = 0.0;
6028  if (!flagLEP2[ISR])
6029  AFB_noBox = AFB_NoISR_l(QCD::lepton(TAU),s);
6030  else {
6032  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
6033  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
6034  }
6035  double numerator = average; // interval
6036 
6037 
6038  sigma = LEP2sigmaTau(s);
6039 
6040  AFB_noBox = numerator/sigma;
6041  }
6042  SMresult_cache = AFB_noBox;
6043 
6044  if (flagLEP2[WeakBox]) {
6045  // numerator
6047  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
6048  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
6049  }
6050  double sigma_box_F = average; // interval
6052  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
6053  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
6054  }
6055  double sigma_box_B = average; // interval
6056 
6057  // denominator
6058  if (!flagLEP2[ISR]) {
6059 
6060  sigma = LEP2sigmaTau(s);
6061  }
6062 
6063  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
6064  }
6065  } else if (s == 196.*196.) {
6066  double AFB_noBox, sigma = 0.0;
6067  if (!flagLEP2[ISR])
6068  AFB_noBox = AFB_NoISR_l(QCD::lepton(TAU),s);
6069  else {
6071  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
6072  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
6073  }
6074  double numerator = average; // interval
6075 
6076 
6077  sigma = LEP2sigmaTau(s);
6078 
6079  AFB_noBox = numerator/sigma;
6080  }
6081  SMresult_cache = AFB_noBox;
6082 
6083  if (flagLEP2[WeakBox]) {
6084  // numerator
6086  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
6087  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
6088  }
6089  double sigma_box_F = average; // interval
6091  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
6092  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
6093  }
6094  double sigma_box_B = average; // interval
6095 
6096  // denominator
6097  if (!flagLEP2[ISR]) {
6098 
6099  sigma = LEP2sigmaTau(s);
6100  }
6101 
6102  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
6103  }
6104  } else if (s == 200.*200.) {
6105  double AFB_noBox, sigma = 0.0;
6106  if (!flagLEP2[ISR])
6107  AFB_noBox = AFB_NoISR_l(QCD::lepton(TAU),s);
6108  else {
6110  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
6111  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
6112  }
6113  double numerator = average; // interval
6114 
6115 
6116  sigma = LEP2sigmaTau(s);
6117 
6118  AFB_noBox = numerator/sigma;
6119  }
6120  SMresult_cache = AFB_noBox;
6121 
6122  if (flagLEP2[WeakBox]) {
6123  // numerator
6125  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
6126  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
6127  }
6128  double sigma_box_F = average; // interval
6130  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
6131  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
6132  }
6133  double sigma_box_B = average; // interval
6134 
6135  // denominator
6136  if (!flagLEP2[ISR]) {
6137 
6138  sigma = LEP2sigmaTau(s);
6139  }
6140 
6141  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
6142  }
6143  } else if (s == 202.*202.) {
6144  double AFB_noBox, sigma = 0.0;
6145  if (!flagLEP2[ISR])
6146  AFB_noBox = AFB_NoISR_l(QCD::lepton(TAU),s);
6147  else {
6149  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
6150  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
6151  }
6152  double numerator = average; // interval
6153 
6154 
6155  sigma = LEP2sigmaTau(s);
6156 
6157  AFB_noBox = numerator/sigma;
6158  }
6159  SMresult_cache = AFB_noBox;
6160 
6161  if (flagLEP2[WeakBox]) {
6162  // numerator
6164  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
6165  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
6166  }
6167  double sigma_box_F = average; // interval
6169  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
6170  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
6171  }
6172  double sigma_box_B = average; // interval
6173 
6174  // denominator
6175  if (!flagLEP2[ISR]) {
6176 
6177  sigma = LEP2sigmaTau(s);
6178  }
6179 
6180  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
6181  }
6182  } else if (s == 205.*205.) {
6183  double AFB_noBox, sigma = 0.0;
6184  if (!flagLEP2[ISR])
6185  AFB_noBox = AFB_NoISR_l(QCD::lepton(TAU),s);
6186  else {
6188  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
6189  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
6190  }
6191  double numerator = average; // interval
6192 
6193 
6194  sigma = LEP2sigmaTau(s);
6195 
6196  AFB_noBox = numerator/sigma;
6197  }
6198  SMresult_cache = AFB_noBox;
6199 
6200  if (flagLEP2[WeakBox]) {
6201  // numerator
6203  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
6204  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
6205  }
6206  double sigma_box_F = average; // interval
6208  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
6209  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
6210  }
6211  double sigma_box_B = average; // interval
6212 
6213  // denominator
6214  if (!flagLEP2[ISR]) {
6215 
6216  sigma = LEP2sigmaTau(s);
6217  }
6218 
6219  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
6220  }
6221  } else if (s == 207.*207.) {
6222  double AFB_noBox, sigma = 0.0;
6223  if (!flagLEP2[ISR])
6224  AFB_noBox = AFB_NoISR_l(QCD::lepton(TAU),s);
6225  else {
6227  if (gsl_integration_qags(&f_GSL, 0., 1.-0.85*0.85, abserr, relerr, 100, w_GSL1, &average, &error) != 0){
6228  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
6229  }
6230  double numerator = average; // interval
6231 
6232 
6233  sigma = LEP2sigmaTau(s);
6234 
6235  AFB_noBox = numerator/sigma;
6236  }
6237  SMresult_cache = AFB_noBox;
6238 
6239  if (flagLEP2[WeakBox]) {
6240  // numerator
6242  if (gsl_integration_qags(&f_GSL, 0., 1., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
6243  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
6244  }
6245  double sigma_box_F = average; // interval
6247  if (gsl_integration_qags(&f_GSL, -1., 0., abserr, relerr, 100, w_GSL1, &average, &error) != 0){
6248  SMresult_cache = std::numeric_limits<double>::quiet_NaN();
6249  }
6250  double sigma_box_B = average; // interval
6251 
6252  // denominator
6253  if (!flagLEP2[ISR]) {
6254 
6255  sigma = LEP2sigmaTau(s);
6256  }
6257 
6258  SMresult_cache += (sigma_box_F - sigma_box_B)/sigma;
6259  }
6260  } else {
6261  throw std::runtime_error("ERROR: wrong LEP2 energy in StandardModel::LEP2AFBtau!");
6262  }
6263 
6264 
6265  double AFBtau = SMresult_cache;
6266 
6267  gsl_set_error_handler(old_handler);
6268  bSigmaForAFB = false;
6269  return AFBtau;
6270 
6271 }
6272 
6273 
6274 double StandardModel::LEP2Rbottom(const double s) const
6275 {
6276 
6277  double sigma_b = LEP2sigmaBottom(s);
6278  double sigma_had = LEP2sigmaHadron(s);
6279  SMresult_cache = sigma_b / sigma_had;
6280  double R_bottom = SMresult_cache;
6281 
6282  return R_bottom;
6283 }
6284 
6285 
6286 double StandardModel::LEP2Rcharm(const double s) const
6287 {
6288 
6289  double sigma_c = LEP2sigmaCharm(s);
6290  double sigma_had = LEP2sigmaHadron(s);
6291  SMresult_cache = sigma_c / sigma_had;
6292  double R_charm = SMresult_cache;
6293 
6294  return R_charm;
6295 }
6296 
6297 
6298 double StandardModel::sigma_NoISR_l(const QCD::lepton l_flavor, const double s) const
6299 {
6300  double ml = getLeptons(l_flavor).getMass();
6301  double l_charge = getLeptons(l_flavor).getCharge();
6302  double sigma = myTwoFermionsLEP2->sigma_l(l_flavor, ml, s, Mw(), Gamma_Z(), flagLEP2[Weak]);
6303 
6304  if (!bSigmaForAFB && flagLEP2[QEDFSR])
6305  sigma *= myTwoFermionsLEP2->QED_FSR_forSigma(s, l_charge);
6306 
6307  return sigma;
6308 }
6309 
6310 double StandardModel::sigma_NoISR_q(const QCD::quark q_flavor, const double s) const
6311 {
6312  double mq = m_q(q_flavor, sqrt(s));
6313  double q_charge = getQuarks(q_flavor).getCharge();
6314  double sigma = myTwoFermionsLEP2->sigma_q(q_flavor, mq, s, Mw(), Gamma_Z(), flagLEP2[Weak]);
6315 
6316  if (!bSigmaForAFB && flagLEP2[QEDFSR])
6317  sigma *= myTwoFermionsLEP2->QED_FSR_forSigma(s, q_charge);
6318 
6319  if (!bSigmaForAFB && flagLEP2[QCDFSR])
6320  sigma *= myTwoFermionsLEP2->QCD_FSR_forSigma(s);
6321 
6322  return sigma;
6323 }
6324 
6325 double StandardModel::AFB_NoISR_l(const QCD::lepton l_flavor, const double s) const
6326 {
6327  double ml = getLeptons(l_flavor).getMass();
6328  double AFB = myTwoFermionsLEP2->AFB_l(l_flavor, ml, s, Mw(), Gamma_Z(), flagLEP2[Weak]);
6329 
6330  return AFB;
6331 }
6332 
6333 double StandardModel::AFB_NoISR_q(const QCD::quark q_flavor, const double s) const
6334 {
6335  double mq = m_q(q_flavor, sqrt(s));
6336  double AFB = myTwoFermionsLEP2->AFB_q(q_flavor, mq, s, Mw(), Gamma_Z(), flagLEP2[Weak]);
6337 
6338  if (flagLEP2[QCDFSR])
6339  AFB *= myTwoFermionsLEP2->QCD_FSR_forAFB(q_flavor, mq, s);
6340 
6341  return AFB;
6342 }
6343 
6344 double StandardModel::Integrand_sigmaWithISR_l(double x, const QCD::lepton l_flavor, const double s) const
6345 {
6346  double sprime = (1.0 - x)*s;
6347  double ml = getLeptons(l_flavor).getMass();
6348  double l_charge = getLeptons(l_flavor).getCharge();
6349  double sigma = myTwoFermionsLEP2->sigma_l(l_flavor, ml, sprime, Mw(), Gamma_Z(),
6350  flagLEP2[Weak]);
6351  double H = myTwoFermionsLEP2->H_ISR(x, s);
6352 
6353  if (!bSigmaForAFB && flagLEP2[QEDFSR])
6354  sigma *= myTwoFermionsLEP2->QED_FSR_forSigma(sprime, l_charge);
6355 
6356  return ( H*sigma );
6357 }
6358 
6360 {
6361  double s = 130. * 130.;
6362  return (Integrand_sigmaWithISR_l(x, QCD::lepton(MU), s));
6363 }
6364 
6366 {
6367  double s = 136. * 136.;
6368  return (Integrand_sigmaWithISR_l(x, QCD::lepton(MU), s));
6369 }
6370 
6372 {
6373  double s = 161. * 161.;
6374  return (Integrand_sigmaWithISR_l(x, QCD::lepton(MU), s));
6375 }
6376 
6378 {
6379  double s = 172. * 172.;
6380  return (Integrand_sigmaWithISR_l(x, QCD::lepton(MU), s));
6381 }
6382 
6384 {
6385  double s = 183. * 183.;
6386  return (Integrand_sigmaWithISR_l(x, QCD::lepton(MU), s));
6387 }
6388 
6390 {
6391  double s = 189. * 189.;
6392  return (Integrand_sigmaWithISR_l(x, QCD::lepton(MU), s));
6393 }
6394 
6396 {
6397  double s = 192. * 192.;
6398  return (Integrand_sigmaWithISR_l(x, QCD::lepton(MU), s));
6399 }
6400 
6402 {
6403  double s = 196. * 196.;
6404  return (Integrand_sigmaWithISR_l(x, QCD::lepton(MU), s));
6405 }
6406 
6408 {
6409  double s = 200. * 200.;
6410  return (Integrand_sigmaWithISR_l(x, QCD::lepton(MU), s));
6411 }
6412 
6414 {
6415  double s = 202. * 202.;
6416  return (Integrand_sigmaWithISR_l(x, QCD::lepton(MU), s));
6417 }
6418 
6420 {
6421  double s = 205. * 205.;
6422  return (Integrand_sigmaWithISR_l(x, QCD::lepton(MU), s));
6423 }
6424 
6426 {
6427  double s = 207. * 207.;
6428  return (Integrand_sigmaWithISR_l(x, QCD::lepton(MU), s));
6429 }
6430 
6431 
6433 {
6434  double s = 130. * 130.;
6435  return (Integrand_sigmaWithISR_l(x, QCD::lepton(TAU), s));
6436 }
6437 
6439 {
6440  double s = 136. * 136.;
6441  return (Integrand_sigmaWithISR_l(x, QCD::lepton(TAU), s));
6442 }
6443 
6445 {
6446  double s = 161. * 161.;
6447  return (Integrand_sigmaWithISR_l(x, QCD::lepton(TAU), s));
6448 }
6449 
6451 {
6452  double s = 172. * 172.;
6453  return (Integrand_sigmaWithISR_l(x, QCD::lepton(TAU), s));
6454 }
6455 
6457 {
6458  double s = 183. * 183.;
6459  return (Integrand_sigmaWithISR_l(x, QCD::lepton(TAU), s));
6460 }
6461 
6463 {
6464  double s = 189. * 189.;
6465  return (Integrand_sigmaWithISR_l(x, QCD::lepton(TAU), s));
6466 }
6467 
6469 {
6470  double s = 192. * 192.;
6471  return (Integrand_sigmaWithISR_l(x, QCD::lepton(TAU), s));
6472 }
6473 
6475 {
6476  double s = 196. * 196.;
6477  return (Integrand_sigmaWithISR_l(x, QCD::lepton(TAU), s));
6478 }
6479 
6481 {
6482  double s = 200. * 200.;
6483  return (Integrand_sigmaWithISR_l(x, QCD::lepton(TAU), s));
6484 }
6485 
6487 {
6488  double s = 202. * 202.;
6489  return (Integrand_sigmaWithISR_l(x, QCD::lepton(TAU), s));
6490 }
6491 
6493 {
6494  double s = 205. * 205.;
6495  return (Integrand_sigmaWithISR_l(x, QCD::lepton(TAU), s));
6496 }
6497 
6499 {
6500  double s = 207. * 207.;
6501  return (Integrand_sigmaWithISR_l(x, QCD::lepton(TAU), s));
6502 }
6503 
6504 double StandardModel::Integrand_sigmaWithISR_q(double x, const QCD::quark q_flavor, const double s) const
6505 {
6506  double sprime = (1.0 - x)*s;
6507  double mq = m_q(q_flavor, sqrt(s));
6508  double q_charge = getQuarks(q_flavor).getCharge();
6509  double sigma = myTwoFermionsLEP2->sigma_q(q_flavor, mq, sprime, Mw(), Gamma_Z(),
6510  flagLEP2[Weak]);
6511  double H = myTwoFermionsLEP2->H_ISR(x, s);
6512 
6513  if (!bSigmaForAFB && flagLEP2[QEDFSR])
6514  sigma *= myTwoFermionsLEP2->QED_FSR_forSigma(sprime, q_charge);
6515 
6516  if (!bSigmaForAFB && flagLEP2[QCDFSR])
6517  sigma *= myTwoFermionsLEP2->QCD_FSR_forSigma(sprime);
6518 
6519  return ( H*sigma );
6520 }
6521 
6522 
6523 
6524 
6525 //up
6526 
6527 
6529 {
6530  double s = 130. * 130.;
6531  return (Integrand_sigmaWithISR_q(x, QCD::quark(UP), s));
6532 }
6533 
6535 {
6536  double s = 133. * 133.;
6537  return (Integrand_sigmaWithISR_q(x, QCD::quark(UP), s));
6538 }
6539 
6541 {
6542  double s = 136. * 136.;
6543  return (Integrand_sigmaWithISR_q(x, QCD::quark(UP), s));
6544 }
6545 
6547 {
6548  double s = 161. * 161.;
6549  return (Integrand_sigmaWithISR_q(x, QCD::quark(UP), s));
6550 }
6551 
6553 {
6554  double s = 167. * 167.;
6555  return (Integrand_sigmaWithISR_q(x, QCD::quark(UP), s));
6556 }
6557 
6559 {
6560  double s = 172. * 172.;
6561  return (Integrand_sigmaWithISR_q(x, QCD::quark(UP), s));
6562 }
6563 
6565 {
6566  double s = 183. * 183.;
6567  return (Integrand_sigmaWithISR_q(x, QCD::quark(UP), s));
6568 }
6569 
6571 {
6572  double s = 189. * 189.;
6573  return (Integrand_sigmaWithISR_q(x, QCD::quark(UP), s));
6574 }
6575 
6577 {
6578  double s = 192. * 192.;
6579  return (Integrand_sigmaWithISR_q(x, QCD::quark(UP), s));
6580 }
6581 
6583 {
6584  double s = 196. * 196.;
6585  return (Integrand_sigmaWithISR_q(x, QCD::quark(UP), s));
6586 }
6587 
6589 {
6590  double s = 200. * 200.;
6591  return (Integrand_sigmaWithISR_q(x, QCD::quark(UP), s));
6592 }
6593 
6595 {
6596  double s = 202. * 202.;
6597  return (Integrand_sigmaWithISR_q(x, QCD::quark(UP), s));
6598 }
6599 
6601 {
6602  double s = 205. * 205.;
6603  return (Integrand_sigmaWithISR_q(x, QCD::quark(UP), s));
6604 }
6605 
6607 {
6608  double s = 207. * 207.;
6609  return (Integrand_sigmaWithISR_q(x, QCD::quark(UP), s));
6610 }
6611 
6612 
6613 //down
6614 
6616 {
6617  double s = 130. * 130.;
6618  return (Integrand_sigmaWithISR_q(x, QCD::quark(DOWN), s));
6619 }
6620 
6622 {
6623  double s = 133. * 133.;
6624  return (Integrand_sigmaWithISR_q(x, QCD::quark(DOWN), s));
6625 }
6626 
6627 
6629 {
6630  double s = 136. * 136.;
6631  return (Integrand_sigmaWithISR_q(x, QCD::quark(DOWN), s));
6632 }
6633 
6635 {
6636  double s = 161. * 161.;
6637  return (Integrand_sigmaWithISR_q(x, QCD::quark(DOWN), s));
6638 }
6639 
6641 {
6642  double s = 167. * 167.;
6643  return (Integrand_sigmaWithISR_q(x, QCD::quark(DOWN), s));
6644 }
6645 
6647 {
6648  double s = 172. * 172.;
6649  return (Integrand_sigmaWithISR_q(x, QCD::quark(DOWN), s));
6650 }
6651 
6653 {
6654  double s = 183. * 183.;
6655  return (Integrand_sigmaWithISR_q(x, QCD::quark(DOWN), s));
6656 }
6657 
6659 {
6660  double s = 189. * 189.;
6661  return (Integrand_sigmaWithISR_q(x, QCD::quark(DOWN), s));
6662 }
6663 
6665 {
6666  double s = 192. * 192.;
6667  return (Integrand_sigmaWithISR_q(x, QCD::quark(DOWN), s));
6668 }
6669 
6671 {
6672  double s = 196. * 196.;
6673  return (Integrand_sigmaWithISR_q(x, QCD::quark(DOWN), s));
6674 }
6675 
6677 {
6678  double s = 200. * 200.;
6679  return (Integrand_sigmaWithISR_q(x, QCD::quark(DOWN), s));
6680 }
6681 
6683 {
6684  double s = 202. * 202.;
6685  return (Integrand_sigmaWithISR_q(x, QCD::quark(DOWN), s));
6686 }
6687 
6689 {
6690  double s = 205. * 205.;
6691  return (Integrand_sigmaWithISR_q(x, QCD::quark(DOWN), s));
6692 }
6693 
6695 {
6696  double s = 207. * 207.;
6697  return (Integrand_sigmaWithISR_q(x, QCD::quark(DOWN), s));
6698 }
6699 
6700 
6701 //charm
6702 
6703 
6705 {
6706  double s = 130. * 130.;
6707  return (Integrand_sigmaWithISR_q(x, QCD::quark(CHARM), s));
6708 }
6709 
6711 {
6712  double s = 133. * 133.;
6713  return (Integrand_sigmaWithISR_q(x, QCD::quark(CHARM), s));
6714 }
6715 
6717 {
6718  double s = 136. * 136.;
6719  return (Integrand_sigmaWithISR_q(x, QCD::quark(CHARM), s));
6720 }
6721 
6723 {
6724  double s = 161. * 161.;
6725  return (Integrand_sigmaWithISR_q(x, QCD::quark(CHARM), s));
6726 }
6727 
6729 {
6730  double s = 167. * 167.;
6731  return (Integrand_sigmaWithISR_q(x, QCD::quark(CHARM), s));
6732 }
6733 
6735 {
6736  double s = 172. * 172.;
6737  return (Integrand_sigmaWithISR_q(x, QCD::quark(CHARM), s));
6738 }
6739 
6741 {
6742  double s = 183. * 183.;
6743  return (Integrand_sigmaWithISR_q(x, QCD::quark(CHARM), s));
6744 }
6745 
6747 {
6748  double s = 189. * 189.;
6749  return (Integrand_sigmaWithISR_q(x, QCD::quark(CHARM), s));
6750 }
6751 
6753 {
6754  double s = 192. * 192.;
6755  return (Integrand_sigmaWithISR_q(x, QCD::quark(CHARM), s));
6756 }
6757 
6759 {
6760  double s = 196. * 196.;
6761  return (Integrand_sigmaWithISR_q(x, QCD::quark(CHARM), s));
6762 }
6763 
6765 {
6766  double s = 200. * 200.;
6767  return (Integrand_sigmaWithISR_q(x, QCD::quark(CHARM), s));
6768 }
6769 
6771 {
6772  double s = 202. * 202.;
6773  return (Integrand_sigmaWithISR_q(x, QCD::quark(CHARM), s));
6774 }
6775 
6777 {
6778  double s = 205. * 205.;
6779  return (Integrand_sigmaWithISR_q(x, QCD::quark(CHARM), s));
6780 }
6781 
6783 {
6784  double s = 207. * 207.;
6785  return (Integrand_sigmaWithISR_q(x, QCD::quark(CHARM), s));
6786 }
6787 
6788 
6789 //strange
6790 
6791 
6793 {
6794  double s = 130. * 130.;
6795  return (Integrand_sigmaWithISR_q(x, QCD::quark(STRANGE), s));
6796 }
6797 
6799 {
6800  double s = 133. * 133.;
6801  return (Integrand_sigmaWithISR_q(x, QCD::quark(STRANGE), s));
6802 }
6803 
6805 {
6806  double s = 136. * 136.;
6807  return (Integrand_sigmaWithISR_q(x, QCD::quark(STRANGE), s));
6808 }
6809 
6811 {
6812  double s = 161. * 161.;
6813  return (Integrand_sigmaWithISR_q(x, QCD::quark(STRANGE), s));
6814 }
6815 
6817 {
6818  double s = 167. * 167.;
6819  return (Integrand_sigmaWithISR_q(x, QCD::quark(STRANGE), s));
6820 }
6821 
6823 {
6824  double s = 172. * 172.;
6825  return (Integrand_sigmaWithISR_q(x, QCD::quark(STRANGE), s));
6826 }
6827 
6829 {
6830  double s = 183. * 183.;
6831  return (Integrand_sigmaWithISR_q(x, QCD::quark(STRANGE), s));
6832 }
6833 
6835 {
6836  double s = 189. * 189.;
6837  return (Integrand_sigmaWithISR_q(x, QCD::quark(STRANGE), s));
6838 }
6839 
6841 {
6842  double s = 192. * 192.;
6843  return (Integrand_sigmaWithISR_q(x, QCD::quark(STRANGE), s));
6844 }
6845 
6847 {
6848  double s = 196. * 196.;
6849  return (Integrand_sigmaWithISR_q(x, QCD::quark(STRANGE), s));
6850 }
6851 
6853 {
6854  double s = 200. * 200.;
6855  return (Integrand_sigmaWithISR_q(x, QCD::quark(STRANGE), s));
6856 }
6857 
6859 {
6860  double s = 202. * 202.;
6861  return (Integrand_sigmaWithISR_q(x, QCD::quark(STRANGE), s));
6862 }
6863 
6865 {
6866  double s = 205. * 205.;
6867  return (Integrand_sigmaWithISR_q(x, QCD::quark(STRANGE), s));
6868 }
6869 
6871 {
6872  double s = 207. * 207.;
6873  return (Integrand_sigmaWithISR_q(x, QCD::quark(STRANGE), s));
6874 }
6875 
6876 
6877 //bottom
6878 
6879 
6881 {
6882  double s = 130. * 130.;
6883  return (Integrand_sigmaWithISR_q(x, QCD::quark(BOTTOM), s));
6884 }
6885 
6887 {
6888  double s = 133. * 133.;
6889  return (Integrand_sigmaWithISR_q(x, QCD::quark(BOTTOM), s));
6890 }
6891 
6893 {
6894  double s = 136. * 136.;
6895  return (Integrand_sigmaWithISR_q(x, QCD::quark(BOTTOM), s));
6896 }
6897 
6899 {
6900  double s = 161. * 161.;
6901  return (Integrand_sigmaWithISR_q(x, QCD::quark(BOTTOM), s));
6902 }
6903 
6905 {
6906  double s = 167. * 167.;
6907  return (Integrand_sigmaWithISR_q(x, QCD::quark(BOTTOM), s));
6908 }
6909 
6911 {
6912  double s = 172. * 172.;
6913  return (Integrand_sigmaWithISR_q(x, QCD::quark(BOTTOM), s));
6914 }
6915 
6917 {
6918  double s = 183. * 183.;
6919  return (Integrand_sigmaWithISR_q(x, QCD::quark(BOTTOM), s));
6920 }
6921 
6923 {
6924  double s = 189. * 189.;
6925  return (Integrand_sigmaWithISR_q(x, QCD::quark(BOTTOM), s));
6926 }
6927 
6929 {
6930  double s = 192. * 192.;
6931  return (Integrand_sigmaWithISR_q(x, QCD::quark(BOTTOM), s));
6932 }
6933 
6935 {
6936  double s = 196. * 196.;
6937  return (Integrand_sigmaWithISR_q(x, QCD::quark(BOTTOM), s));
6938 }
6939 
6941 {
6942  double s = 200. * 200.;
6943  return (Integrand_sigmaWithISR_q(x, QCD::quark(BOTTOM), s));
6944 }
6945 
6947 {
6948  double s = 202. * 202.;
6949  return (Integrand_sigmaWithISR_q(x, QCD::quark(BOTTOM), s));
6950 }
6951 
6953 {
6954  double s = 205. * 205.;
6955  return (Integrand_sigmaWithISR_q(x, QCD::quark(BOTTOM), s));
6956 }
6957 
6959 {
6960  double s = 207. * 207.;
6961  return (Integrand_sigmaWithISR_q(x, QCD::quark(BOTTOM), s));
6962 }
6963 
6964 
6965 
6966 
6967 
6968 double StandardModel::Integrand_dsigmaBox_l(double cosTheta, const QCD::lepton l_flavor, const double s) const
6969 {
6970  double ml = getLeptons(l_flavor).getMass();
6971  return ( myTwoFermionsLEP2->dsigma_l_box(l_flavor, ml, s, cosTheta, Mw(), Gamma_Z()) );
6972 }
6973 
6975 {
6976  double s = 130. * 130.;
6977  return (Integrand_dsigmaBox_l(x, QCD::lepton(MU), s));
6978 }
6979 
6981 {
6982  double s = 136. * 136.;
6983  return (Integrand_dsigmaBox_l(x, QCD::lepton(MU), s));
6984 }
6985 
6987 {
6988  double s = 161. * 161.;
6989  return (Integrand_dsigmaBox_l(x, QCD::lepton(MU), s));
6990 }
6991 
6993 {
6994  double s = 172. * 172.;
6995  return (Integrand_dsigmaBox_l(x, QCD::lepton(MU), s));
6996 }
6997 
6999 {
7000  double s = 183. * 183.;
7001  return (Integrand_dsigmaBox_l(x, QCD::lepton(MU), s));
7002 }
7003 
7005 {
7006  double s = 189. * 189.;
7007  return (Integrand_dsigmaBox_l(x, QCD::lepton(MU), s));
7008 }
7009 
7011 {
7012  double s = 192. * 192.;
7013  return (Integrand_dsigmaBox_l(x, QCD::lepton(MU), s));
7014 }
7015 
7017 {
7018  double s = 196. * 196.;
7019  return (Integrand_dsigmaBox_l(x, QCD::lepton(MU), s));
7020 }
7021 
7023 {
7024  double s = 200. * 200.;
7025  return (Integrand_dsigmaBox_l(x, QCD::lepton(MU), s));
7026 }
7027 
7029 {
7030  double s = 202. * 202.;
7031  return (Integrand_dsigmaBox_l(x, QCD::lepton(MU), s));
7032 }
7033 
7035 {
7036  double s = 205. * 205.;
7037  return (Integrand_dsigmaBox_l(x, QCD::lepton(MU), s));
7038 }
7039 
7041 {
7042  double s = 207. * 207.;
7043  return (Integrand_dsigmaBox_l(x, QCD::lepton(MU), s));
7044 }
7045 
7046 
7047 
7048 
7049 
7051 {
7052  double s = 130. * 130.;
7053  return (Integrand_dsigmaBox_l(x, QCD::lepton(TAU), s));
7054 }
7055 
7057 {
7058  double s = 136. * 136.;
7059  return (Integrand_dsigmaBox_l(x, QCD::lepton(TAU), s));
7060 }
7061 
7063 {
7064  double s = 161. * 161.;
7065  return (Integrand_dsigmaBox_l(x, QCD::lepton(TAU), s));
7066 }
7067 
7069 {
7070  double s = 172. * 172.;
7071  return (Integrand_dsigmaBox_l(x, QCD::lepton(TAU), s));
7072 }
7073 
7075 {
7076  double s = 183. * 183.;
7077  return (Integrand_dsigmaBox_l(x, QCD::lepton(TAU), s));
7078 }
7079 
7081 {
7082  double s = 189. * 189.;
7083  return (Integrand_dsigmaBox_l(x, QCD::lepton(TAU), s));
7084 }
7085 
7087 {
7088  double s = 192. * 192.;
7089  return (Integrand_dsigmaBox_l(x, QCD::lepton(TAU), s));
7090 }
7091 
7093 {
7094  double s = 196. * 196.;
7095  return (Integrand_dsigmaBox_l(x, QCD::lepton(TAU), s));
7096 }
7097 
7099 {
7100  double s = 200. * 200.;
7101  return (Integrand_dsigmaBox_l(x, QCD::lepton(TAU), s));
7102 }
7103 
7105 {
7106  double s = 202. * 202.;
7107  return (Integrand_dsigmaBox_l(x, QCD::lepton(TAU), s));
7108 }
7109 
7111 {
7112  double s = 205. * 205.;
7113  return (Integrand_dsigmaBox_l(x, QCD::lepton(TAU), s));
7114 }
7115 
7117 {
7118  double s = 207. * 207.;
7119  return (Integrand_dsigmaBox_l(x, QCD::lepton(TAU), s));
7120 }
7121 
7122 
7123 
7124 
7125 
7126 
7127 double StandardModel::Integrand_dsigmaBox_q(double cosTheta, const QCD::quark q_flavor, const double s) const
7128 {
7129  double mq = m_q(q_flavor, sqrt(s));
7130  return ( myTwoFermionsLEP2->dsigma_q_box(q_flavor, mq, s, cosTheta, Mw(), Gamma_Z()) );
7131 }
7132 
7133 
7134 
7135 
7136 //up
7137 
7138 
7140 {
7141  double s = 130. * 130.;
7142  return (Integrand_dsigmaBox_q(x, QCD::quark(UP), s));
7143 }
7144 
7146 {
7147  double s = 133. * 133.;
7148  return (Integrand_dsigmaBox_q(x, QCD::quark(UP), s));
7149 }
7150 
7152 {
7153  double s = 136. * 136.;
7154  return (Integrand_dsigmaBox_q(x, QCD::quark(UP), s));
7155 }
7156 
7158 {
7159  double s = 161. * 161.;
7160  return (Integrand_dsigmaBox_q(x, QCD::quark(UP), s));
7161 }
7162 
7164 {
7165  double s = 167. * 167.;
7166  return (Integrand_dsigmaBox_q(x, QCD::quark(UP), s));
7167 }
7168 
7170 {
7171  double s = 172. * 172.;
7172  return (Integrand_dsigmaBox_q(x, QCD::quark(UP), s));
7173 }
7174 
7176 {
7177  double s = 183. * 183.;
7178  return (Integrand_dsigmaBox_q(x, QCD::quark(UP), s));
7179 }
7180 
7182 {
7183  double s = 189. * 189.;
7184  return (Integrand_dsigmaBox_q(x, QCD::quark(UP), s));
7185 }
7186 
7188 {
7189  double s = 192. * 192.;
7190  return (Integrand_dsigmaBox_q(x, QCD::quark(UP), s));
7191 }
7192 
7194 {
7195  double s = 196. * 196.;
7196  return (Integrand_dsigmaBox_q(x, QCD::quark(UP), s));
7197 }
7198 
7200 {
7201  double s = 200. * 200.;
7202  return (Integrand_dsigmaBox_q(x, QCD::quark(UP), s));
7203 }
7204 
7206 {
7207  double s = 202. * 202.;
7208  return (Integrand_dsigmaBox_q(x, QCD::quark(UP), s));
7209 }
7210 
7212 {
7213  double s = 205. * 205.;
7214  return (Integrand_dsigmaBox_q(x, QCD::quark(UP), s));
7215 }
7216 
7218 {
7219  double s = 207. * 207.;
7220  return (Integrand_dsigmaBox_q(x, QCD::quark(UP), s));
7221 }
7222 
7223 
7224 //down
7225 
7227 {
7228  double s = 130. * 130.;
7229  return (Integrand_dsigmaBox_q(x, QCD::quark(DOWN), s));
7230 }
7231 
7233 {
7234  double s = 133. * 133.;
7235  return (Integrand_dsigmaBox_q(x, QCD::quark(DOWN), s));
7236 }
7237 
7239 {
7240  double s = 136. * 136.;
7241  return (Integrand_dsigmaBox_q(x, QCD::quark(DOWN), s));
7242 }
7243 
7245 {
7246  double s = 161. * 161.;
7247  return (Integrand_dsigmaBox_q(x, QCD::quark(DOWN), s));
7248 }
7249 
7251 {
7252  double s = 167. * 167.;
7253  return (Integrand_dsigmaBox_q(x, QCD::quark(DOWN), s));
7254 }
7255 
7257 {
7258  double s = 172. * 172.;
7259  return (Integrand_dsigmaBox_q(x, QCD::quark(DOWN), s));
7260 }
7261 
7263 {
7264  double s = 183. * 183.;
7265  return (Integrand_dsigmaBox_q(x, QCD::quark(DOWN), s));
7266 }
7267 
7269 {
7270  double s = 189. * 189.;
7271  return (Integrand_dsigmaBox_q(x, QCD::quark(DOWN), s));
7272 }
7273 
7275 {
7276  double s = 192. * 192.;
7277  return (Integrand_dsigmaBox_q(x, QCD::quark(DOWN), s));
7278 }
7279 
7281 {
7282  double s = 196. * 196.;
7283  return (Integrand_dsigmaBox_q(x, QCD::quark(DOWN), s));
7284 }
7285 
7287 {
7288  double s = 200. * 200.;
7289  return (Integrand_dsigmaBox_q(x, QCD::quark(DOWN), s));
7290 }
7291 
7293 {
7294  double s = 202. * 202.;
7295  return (Integrand_dsigmaBox_q(x, QCD::quark(DOWN), s));
7296 }
7297 
7299 {
7300  double s = 205. * 205.;
7301  return (Integrand_dsigmaBox_q(x, QCD::quark(DOWN), s));
7302 }
7303 
7305 {
7306  double s = 207. * 207.;
7307  return (Integrand_dsigmaBox_q(x, QCD::quark(DOWN), s));
7308 }
7309 
7310 
7311 //charm
7312 
7313 
7315 {
7316  double s = 130. * 130.;
7317  return (Integrand_dsigmaBox_q(x, QCD::quark(CHARM), s));
7318 }
7319 
7321 {
7322  double s = 133. * 133.;
7323  return (Integrand_dsigmaBox_q(x, QCD::quark(CHARM), s));
7324 }
7325 
7327 {
7328  double s = 136. * 136.;
7329  return (Integrand_dsigmaBox_q(x, QCD::quark(CHARM), s));
7330 }
7331 
7333 {
7334  double s = 161. * 161.;
7335  return (Integrand_dsigmaBox_q(x, QCD::quark(CHARM), s));
7336 }
7337 
7339 {
7340  double s = 167. * 167.;
7341  return (Integrand_dsigmaBox_q(x, QCD::quark(CHARM), s));
7342 }
7343 
7345 {
7346  double s = 172. * 172.;
7347  return (Integrand_dsigmaBox_q(x, QCD::quark(CHARM), s));
7348 }
7349 
7351 {
7352  double s = 183. * 183.;
7353  return (Integrand_dsigmaBox_q(x, QCD::quark(CHARM), s));
7354 }
7355 
7357 {
7358  double s = 189. * 189.;
7359  return (Integrand_dsigmaBox_q(x, QCD::quark(CHARM), s));
7360 }
7361 
7363 {
7364  double s = 192. * 192.;
7365  return (Integrand_dsigmaBox_q(x, QCD::quark(CHARM), s));
7366 }
7367 
7369 {
7370  double s = 196. * 196.;
7371  return (Integrand_dsigmaBox_q(x, QCD::quark(CHARM), s));
7372 }
7373 
7375 {
7376  double s = 200. * 200.;
7377  return (Integrand_dsigmaBox_q(x, QCD::quark(CHARM), s));
7378 }
7379 
7381 {
7382  double s = 202. * 202.;
7383  return (Integrand_dsigmaBox_q(x, QCD::quark(CHARM), s));
7384 }
7385 
7387 {
7388  double s = 205. * 205.;
7389  return (Integrand_dsigmaBox_q(x, QCD::quark(CHARM), s));
7390 }
7391 
7393 {
7394  double s = 207. * 207.;
7395  return (Integrand_dsigmaBox_q(x, QCD::quark(CHARM), s));
7396 }
7397 
7398 
7399 //strange
7400 
7401 
7403 {
7404  double s = 130. * 130.;
7405  return (Integrand_dsigmaBox_q(x, QCD::quark(STRANGE), s));
7406 }
7407 
7409 {
7410  double s = 133. * 133.;
7411  return (Integrand_dsigmaBox_q(x, QCD::quark(STRANGE), s));
7412 }
7413 
7415 {
7416  double s = 136. * 136.;
7417  return (Integrand_dsigmaBox_q(x, QCD::quark(STRANGE), s));
7418 }
7419 
7421 {
7422  double s = 161. * 161.;
7423  return (Integrand_dsigmaBox_q(x, QCD::quark(STRANGE), s));
7424 }
7425 
7427 {
7428  double s = 167. * 167.;
7429  return (Integrand_dsigmaBox_q(x, QCD::quark(STRANGE), s));
7430 }
7431 
7432 
7433 
7435 {
7436  double s = 172. * 172.;
7437  return (Integrand_dsigmaBox_q(x, QCD::quark(STRANGE), s));
7438 }
7439 
7441 {
7442  double s = 183. * 183.;
7443  return (Integrand_dsigmaBox_q(x, QCD::quark(STRANGE), s));
7444 }
7445 
7447 {
7448  double s = 189. * 189.;
7449  return (Integrand_dsigmaBox_q(x, QCD::quark(STRANGE), s));
7450 }
7451 
7453 {
7454  double s = 192. * 192.;
7455  return (Integrand_dsigmaBox_q(x, QCD::quark(STRANGE), s));
7456 }
7457 
7459 {
7460  double s = 196. * 196.;
7461  return (Integrand_dsigmaBox_q(x, QCD::quark(STRANGE), s));
7462 }
7463 
7465 {
7466  double s = 200. * 200.;
7467  return (Integrand_dsigmaBox_q(x, QCD::quark(STRANGE), s));
7468 }
7469 
7471 {
7472  double s = 202. * 202.;
7473  return (Integrand_dsigmaBox_q(x, QCD::quark(STRANGE), s));
7474 }
7475 
7477 {
7478  double s = 205. * 205.;
7479  return (Integrand_dsigmaBox_q(x, QCD::quark(STRANGE), s));
7480 }
7481 
7483 {
7484  double s = 207. * 207.;
7485  return (Integrand_dsigmaBox_q(x, QCD::quark(STRANGE), s));
7486 }
7487 
7488 
7489 //bottom
7490 
7491 
7493 {
7494  double s = 130. * 130.;
7495  return (Integrand_dsigmaBox_q(x, QCD::quark(BOTTOM), s));
7496 }
7497 
7499 {
7500  double s = 133. * 133.;
7501  return (Integrand_dsigmaBox_q(x, QCD::quark(BOTTOM), s));
7502 }
7503 
7505 {
7506  double s = 136. * 136.;
7507  return (Integrand_dsigmaBox_q(x, QCD::quark(BOTTOM), s));
7508 }
7509 
7511 {
7512  double s = 161. * 161.;
7513  return (Integrand_dsigmaBox_q(x, QCD::quark(BOTTOM), s));
7514 }
7515 
7517 {
7518  double s = 167. * 167.;
7519  return (Integrand_dsigmaBox_q(x, QCD::quark(BOTTOM), s));
7520 }
7521 
7523 {
7524  double s = 172. * 172.;
7525  return (Integrand_dsigmaBox_q(x, QCD::quark(BOTTOM), s));
7526 }
7527 
7529 {
7530  double s = 183. * 183.;
7531  return (Integrand_dsigmaBox_q(x, QCD::quark(BOTTOM), s));
7532 }
7533 
7535 {
7536  double s = 189. * 189.;
7537  return (Integrand_dsigmaBox_q(x, QCD::quark(BOTTOM), s));
7538 }
7539 
7541 {
7542  double s = 192. * 192.;
7543  return (Integrand_dsigmaBox_q(x, QCD::quark(BOTTOM), s));
7544 }
7545 
7547 {
7548  double s = 196. * 196.;
7549  return (Integrand_dsigmaBox_q(x, QCD::quark(BOTTOM), s));
7550 }
7551 
7553 {
7554  double s = 200. * 200.;
7555  return (Integrand_dsigmaBox_q(x, QCD::quark(BOTTOM), s));
7556 }
7557 
7559 {
7560  double s = 202. * 202.;
7561  return (Integrand_dsigmaBox_q(x, QCD::quark(BOTTOM), s));
7562 }
7563 
7565 {
7566  double s = 205. * 205.;
7567  return (Integrand_dsigmaBox_q(x, QCD::quark(BOTTOM), s));
7568 }
7569 
7571 {
7572  double s = 207. * 207.;
7573  return (Integrand_dsigmaBox_q(x, QCD::quark(BOTTOM), s));
7574 }
7575 
7576 
7577 
7578 
7579 
7580 
7581 
7582 
7583 
7584 
7585 
7586 
7587 
7588 double StandardModel::Integrand_AFBnumeratorWithISR_l(double x, const QCD::lepton l_flavor, const double s) const
7589 {
7590  double sprime = (1.0 - x)*s;
7591  double Ncf = 1.0;
7592  double ml = getLeptons(l_flavor).getMass();
7593  double G3prime = myTwoFermionsLEP2->G_3prime_l(l_flavor, ml, sprime, Mw(), Gamma_Z(),flagLEP2[Weak]);
7594  double H = myTwoFermionsLEP2->H_ISR_FB(x, s);
7595 
7596  return ( M_PI*ale*ale*Ncf*H*G3prime/sprime );
7597 }
7598 
7599 
7601 {
7602  double s = 130. * 130.;
7604 }
7605 
7607 {
7608  double s = 136. * 136.;
7610 }
7611 
7613 {
7614  double s = 161. * 161.;
7616 }
7617 
7619 {
7620  double s = 172. * 172.;
7622 }
7623 
7625 {
7626  double s = 183. * 183.;
7628 }
7629 
7631 {
7632  double s = 189. * 189.;
7634 }
7635 
7637 {
7638  double s = 192. * 192.;
7640 }
7641 
7643 {
7644  double s = 196. * 196.;
7646 }
7647 
7649 {
7650  double s = 200. * 200.;
7652 }
7653 
7655 {
7656  double s = 202. * 202.;
7658 }
7659 
7661 {
7662  double s = 205. * 205.;
7664 }
7665 
7667 {
7668  double s = 207. * 207.;
7670 }
7671 
7672 
7674 {
7675  double s = 130. * 130.;
7677 }
7678 
7680 {
7681  double s = 136. * 136.;
7683 }
7684 
7686 {
7687  double s = 161. * 161.;
7689 }
7690 
7692 {
7693  double s = 172. * 172.;
7695 }
7696 
7698 {
7699  double s = 183. * 183.;
7701 }
7702 
7704 {
7705  double s = 189. * 189.;
7707 }
7708 
7710 {
7711  double s = 192. * 192.;
7713 }
7714 
7716 {
7717  double s = 196. * 196.;
7719 }
7720 
7722 {
7723  double s = 200. * 200.;
7725 }
7726 
7728 {
7729  double s = 202. * 202.;
7731 }
7732 
7734 {
7735  double s = 205. * 205.;
7737 }
7738 
7740 {
7741  double s = 207. * 207.;
7743 }
7744 
7745 
7746 
7747 double StandardModel::Integrand_AFBnumeratorWithISR_q(double x, const QCD::quark q_flavor, const double s) const
7748 {
7749  double sprime = (1.0 - x)*s;
7750  double Ncf = 3.0;
7751  double mq = m_q(q_flavor, sqrt(s));
7752  double G3prime = myTwoFermionsLEP2->G_3prime_q(q_flavor, mq, sprime, Mw(), Gamma_Z(),flagLEP2[Weak]);
7753  double H = myTwoFermionsLEP2->H_ISR_FB(x, s);
7754 
7755  if (flagLEP2[QCDFSR])
7756  G3prime *= myTwoFermionsLEP2->QCD_FSR_forAFB(q_flavor, mq, sprime);
7757 
7758  return ( M_PI*ale*ale*Ncf*H*G3prime/sprime );
7759 }
7760 
7761 
7763 {
7764  double s = 133. * 133.;
7766 }
7767 
7769 {
7770  double s = 167. * 167.;
7772 }
7773 
7775 {
7776  double s = 172. * 172.;
7778 }
7779 
7781 {
7782  double s = 183. * 183.;
7784 }
7785 
7787 {
7788  double s = 189. * 189.;
7790 }
7791 
7793 {
7794  double s = 192. * 192.;
7796 }
7797 
7799 {
7800  double s = 196. * 196.;
7802 }
7803 
7805 {
7806  double s = 200. * 200.;
7808 }
7809 
7811 {
7812  double s = 202. * 202.;
7814 }
7815 
7817 {
7818  double s = 205. * 205.;
7820 }
7821 
7823 {
7824  double s = 207. * 207.;
7826 }
7827 
7828 
7829 
7830 
7832 {
7833  double s = 133. * 133.;
7835 }
7836 
7838 {
7839  double s = 167. * 167.;
7841 }
7842 
7844 {
7845  double s = 172. * 172.;
7847 }
7848 
7850 {
7851  double s = 183. * 183.;
7853 }
7854 
7856 {
7857  double s = 189. * 189.;
7859 }
7860 
7862 {
7863  double s = 192. * 192.;
7865 }
7866 
7868 {
7869  double s = 196. * 196.;
7871 }
7872 
7874 {
7875  double s = 200. * 200.;
7877 }
7878 
7880 {
7881  double s = 202. * 202.;
7883 }
7884 
7886 {
7887  double s = 205. * 205.;
7889 }
7890 
7892 {
7893  double s = 207. * 207.;
7895 }
7896 /* END: REMOVE FROM THE PACKAGE */
StandardModel::getIntegrand_sigmaWithISR_down136
double getIntegrand_sigmaWithISR_down136(double x) const
Definition: StandardModel.cpp:6628
QCD::TAU
Definition: QCD.h:316
StandardModel::delR0c
double delR0c
The theoretical uncertainty in , denoted as .
Definition: StandardModel.h:2566
StandardModel::getIntegrand_dsigmaBox_charm192
double getIntegrand_dsigmaBox_charm192(double x) const
Definition: StandardModel.cpp:7362
StandardModel::getIntegrand_dsigmaBox_bottom189
double getIntegrand_dsigmaBox_bottom189(double x) const
Definition: StandardModel.cpp:7534
StandardModel::m_q
double m_q(const QCD::quark q, const double mu, const orders order=FULLNLO) const
Definition: StandardModel.h:2635
EWSMThreeLoopEW::DeltaR_rem
double DeltaR_rem(const double Mw_i) const
Remainder contribution of to , denoted as .
Definition: EWSMThreeLoopEW.cpp:109
StandardModel::Integrand_sigmaWithISR_l
double Integrand_sigmaWithISR_l(double x, const QCD::lepton l_flavor, const double s) const
Definition: StandardModel.cpp:6344
EWSMThreeLoopEW::DeltaAlpha_l
double DeltaAlpha_l(const double s) const
Leptonic contribution of to the electromagnetic coupling , denoted as .
Definition: EWSMThreeLoopEW.cpp:19
StandardModel::getIntegrand_sigmaWithISR_strange200
double getIntegrand_sigmaWithISR_strange200(double x) const
Definition: StandardModel.cpp:6852
StandardModel::getIntegrand_dsigmaBox_mu172
double getIntegrand_dsigmaBox_mu172(double x) const
Definition: StandardModel.cpp:6992
StandardModel::getIntegrand_dsigmaBox_down207
double getIntegrand_dsigmaBox_down207(double x) const
Definition: StandardModel.cpp:7304
StandardModel::getIntegrand_sigmaWithISR_bottom202
double getIntegrand_sigmaWithISR_bottom202(double x) const
Definition: StandardModel.cpp:6946
StandardModel::getIntegrand_sigmaWithISR_strange189
double getIntegrand_sigmaWithISR_strange189(double x) const
Definition: StandardModel.cpp:6834
StandardModel::Mw_cache
double Mw_cache
A cache of the value of .
Definition: StandardModel.h:3146
StandardModel::getIntegrand_dsigmaBox_mu192
double getIntegrand_dsigmaBox_mu192(double x) const
Definition: StandardModel.cpp:7010
StandardModel::FlagWithoutNonUniversalVC
bool FlagWithoutNonUniversalVC
A boolean for the model flag WithoutNonUniversalVC.
Definition: StandardModel.h:3130
QCD::NEUTRINO_3
Definition: QCD.h:315
StandardModel::~StandardModel
virtual ~StandardModel()
The default destructor.
Definition: StandardModel.cpp:141
StandardModel::getIntegrand_sigmaWithISR_charm207
double getIntegrand_sigmaWithISR_charm207(double x) const
Definition: StandardModel.cpp:6782
StandardModel::Gamma_inv
virtual double Gamma_inv() const
The invisible partial decay width of the boson, .
Definition: StandardModel.cpp:1303
StandardModel::EW2
Two-loop of .
Definition: StandardModel.h:499
StandardModel::rhoZ_f
virtual gslpp::complex rhoZ_f(const Particle f) const
The effective leptonic neutral-current coupling in the SM.
Definition: StandardModel.cpp:1579
StandardModel::taub
double taub() const
Top-mass corrections to the vertex, denoted by .
Definition: StandardModel.cpp:2104
StandardModel::setParameter
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of StandardModel.
Definition: StandardModel.cpp:257
StandardModel::getIntegrand_AFBnumeratorWithISR_tau189
double getIntegrand_AFBnumeratorWithISR_tau189(double x) const
Definition: StandardModel.cpp:7703
StandardModel::getIntegrand_dsigmaBox_up133
double getIntegrand_dsigmaBox_up133(double x) const
Definition: StandardModel.cpp:7145
EWSMApproximateFormulae::X_full
double X_full(const std::string observable) const
, , , , , , , , , , , or .
Definition: EWSMApproximateFormulae.cpp:1169
StandardModel::Integrand_sigmaWithISR_q
double Integrand_sigmaWithISR_q(double x, const QCD::quark q_flavor, const double s) const
Definition: StandardModel.cpp:6504
StandardModel::v
virtual double v() const
The Higgs vacuum expectation value.
Definition: StandardModel.cpp:943
StandardModel::NSMvars
static const int NSMvars
The number of the model parameters in StandardModel.
Definition: StandardModel.h:508
StandardModel::getIntegrand_sigmaWithISR_tau207
double getIntegrand_sigmaWithISR_tau207(double x) const
Definition: StandardModel.cpp:6498
StandardModel::delSin2th_q
double delSin2th_q
The theoretical uncertainty in , denoted as .
Definition: StandardModel.h:2561
StandardModel::getIntegrand_sigmaWithISR_charm130
double getIntegrand_sigmaWithISR_charm130(double x) const
Definition: StandardModel.cpp:6704
StandardModel::getIntegrand_dsigmaBox_mu183
double getIntegrand_dsigmaBox_mu183(double x) const
Definition: StandardModel.cpp:6998
StandardModel::getIntegrand_AFBnumeratorWithISR_bottom189
double getIntegrand_AFBnumeratorWithISR_bottom189(double x) const
Definition: StandardModel.cpp:7855
StandardModel::getIntegrand_dsigmaBox_mu205
double getIntegrand_dsigmaBox_mu205(double x) const
Definition: StandardModel.cpp:7034
StandardModel::getIntegrand_sigmaWithISR_bottom200
double getIntegrand_sigmaWithISR_bottom200(double x) const
Definition: StandardModel.cpp:6940
StandardModel::useRhoZ_f_cache
bool useRhoZ_f_cache[12]
Definition: StandardModel.h:3154
EWSMThreeLoopQCD.h
QCD::BOTTOM
Definition: QCD.h:329
EWSMTwoLoopQCD
A class for two-loop corrections to the EW precision observables.
Definition: EWSMTwoLoopQCD.h:55
StandardModel::average
double average
Definition: StandardModel.h:3164
StandardModel::A
double A
The CKM parameter in the Wolfenstein parameterization.
Definition: StandardModel.h:2569
StandardModel::getIntegrand_sigmaWithISR_mu205
double getIntegrand_sigmaWithISR_mu205(double x) const
Definition: StandardModel.cpp:6419
StandardModel::DeltaRbar
virtual double DeltaRbar() const
The SM prediction for derived from that for the -boson mass.
Definition: StandardModel.cpp:1146
StandardModel::getIntegrand_dsigmaBox_tau183
double getIntegrand_dsigmaBox_tau183(double x) const
Definition: StandardModel.cpp:7074
QCD::mub
double mub
The threshold between five- and four-flavour theory in GeV.
Definition: QCD.h:929
QCD
A class for parameters related to QCD, hadrons and quarks.
Definition: QCD.h:304
Particle::is
bool is(std::string name_i) const
Definition: Particle.cpp:23
Particle
A class for particles.
Definition: Particle.h:26
StandardModel::ISR
Definition: StandardModel.h:485
StandardModel::rhob
double rhob
The CKM parameter in the Wolfenstein parameterization.
Definition: StandardModel.h:2570
EWSMTwoLoopEW::deltaKappa_rem_f
gslpp::complex deltaKappa_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
Definition: EWSMTwoLoopEW.cpp:115
StandardModel::gamma
double gamma
used as an input for FlagWolfenstein = FALSE
Definition: StandardModel.h:2575
EWSMOneLoopEW::DeltaAlpha_l
double DeltaAlpha_l(const double s) const
Leptonic contribution of to the electromagnetic coupling , denoted as .
Definition: EWSMOneLoopEW.cpp:19
StandardModel::getIntegrand_dsigmaBox_strange136
double getIntegrand_dsigmaBox_strange136(double x) const
Definition: StandardModel.cpp:7414
StandardModel::LEP2sigmaTau
virtual double LEP2sigmaTau(const double s) const
Definition: StandardModel.cpp:2674
StandardModel::getIntegrand_sigmaWithISR_charm183
double getIntegrand_sigmaWithISR_charm183(double x) const
Definition: StandardModel.cpp:6740
StandardModel::realorder
orders realorder
Definition: StandardModel.h:3177
StandardModel::getIntegrand_sigmaWithISR_mu196
double getIntegrand_sigmaWithISR_mu196(double x) const
Definition: StandardModel.cpp:6401
StandardModel::getIntegrand_AFBnumeratorWithISR_mu202
double getIntegrand_AFBnumeratorWithISR_mu202(double x) const
Definition: StandardModel.cpp:7654
LeptonFlavour.h
StandardModel::getIntegrand_dsigmaBox_down172
double getIntegrand_dsigmaBox_down172(double x) const
Definition: StandardModel.cpp:7256
EWSMTwoFermionsLEP2::QCD_FSR_forSigma
double QCD_FSR_forSigma(const double s) const
Definition: EWSMTwoFermionsLEP2.cpp:1267
AFBcharm
An observable class for the forward-backward asymmetry in at the pole.
Definition: AFBcharm.h:32
StandardModel::getIntegrand_dsigmaBox_strange196
double getIntegrand_dsigmaBox_strange196(double x) const
Definition: StandardModel.cpp:7458
StandardModel::Ye
gslpp::matrix< gslpp::complex > Ye
The Yukawa matrix of the charged leptons.
Definition: StandardModel.h:2548
EWSMcache::setFlagCacheInEWSMcache
void setFlagCacheInEWSMcache(bool FlagCacheInEWSMcache)
A set method to change the model flag CacheInEWSMcache in StandardModel.
Definition: EWSMcache.h:83
StandardModel::getIntegrand_sigmaWithISR_strange202
double getIntegrand_sigmaWithISR_strange202(double x) const
Definition: StandardModel.cpp:6858
QCD::Beta1
double Beta1(const double nf) const
The coefficient for a certain number of flavours .
Definition: QCD.cpp:471
StandardModel::rho_GammaW
virtual double rho_GammaW(const Particle fi, const Particle fj) const
EW radiative corrections to the width of , denoted as .
Definition: StandardModel.cpp:1158
EWSMThreeLoopEW::DeltaRho
double DeltaRho(const double Mw_i) const
Leading three-loop contribution of to , denoted as .
Definition: EWSMThreeLoopEW.cpp:70
EWSMOneLoopEW::DeltaRbar_rem
double DeltaRbar_rem(const double Mw_i) const
.
Definition: EWSMOneLoopEW.cpp:73
EWSMThreeLoopQCD::deltaKappa_rem_f
gslpp::complex deltaKappa_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
Definition: EWSMThreeLoopQCD.cpp:72
StandardModel::getIntegrand_AFBnumeratorWithISR_mu136
double getIntegrand_AFBnumeratorWithISR_mu136(double x) const
Definition: StandardModel.cpp:7606
StandardModel::getIntegrand_sigmaWithISR_up172
double getIntegrand_sigmaWithISR_up172(double x) const
Definition: StandardModel.cpp:6558
EWSMTwoFermionsLEP2::G_3prime_q
double G_3prime_q(const QCD::quark q, const double mf, const double s, const double Mw, const double GammaZ, const bool bWeak) const
Definition: EWSMTwoFermionsLEP2.cpp:1333
StandardModel::myTwoFermionsLEP2
EWSMTwoFermionsLEP2 * myTwoFermionsLEP2
A pointer to an object of type EWSMTwoFermionsLEP2.
Definition: StandardModel.h:3127
EWSMOneLoopEW::DeltaRho
double DeltaRho(const double Mw_i) const
Leading one-loop contribution of to , denoted as .
Definition: EWSMOneLoopEW.cpp:43
StandardModel::getIntegrand_sigmaWithISR_tau183
double getIntegrand_sigmaWithISR_tau183(double x) const
Definition: StandardModel.cpp:6456
StandardModel::getIntegrand_sigmaWithISR_charm172
double getIntegrand_sigmaWithISR_charm172(double x) const
Definition: StandardModel.cpp:6734
StandardModel::Yu
gslpp::matrix< gslpp::complex > Yu
The Yukawa matrix of the up-type quarks.
Definition: StandardModel.h:2545
EWSMThreeLoopEW2QCD
A class for three-loop corrections to the EW precision observables.
Definition: EWSMThreeLoopEW2QCD.h:34
StandardModel::getIntegrand_sigmaWithISR_mu200
double getIntegrand_sigmaWithISR_mu200(double x) const
Definition: StandardModel.cpp:6407
StandardModel::NumSMParamsForEWPO
static const int NumSMParamsForEWPO
The number of the SM parameters that are relevant to the EW precision observables.
Definition: StandardModel.h:1863
StandardModel::getIntegrand_sigmaWithISR_tau200
double getIntegrand_sigmaWithISR_tau200(double x) const
Definition: StandardModel.cpp:6480
StandardModel::ale_cache
double ale_cache[10][CacheSize]
Cache for .
Definition: StandardModel.h:3176
StandardModel::QCDFSR
Definition: StandardModel.h:487
StandardModel::EW1
One-loop of .
Definition: StandardModel.h:496
StandardModel::getIntegrand_dsigmaBox_charm207
double getIntegrand_dsigmaBox_charm207(double x) const
Definition: StandardModel.cpp:7392
StandardModel::getMyEWSMcache
EWSMcache * getMyEWSMcache() const
A get method to retrieve the member pointer of type EWSMcache.
Definition: StandardModel.h:961
QCD::CheckFlags
virtual bool CheckFlags() const
A method to check the sanity of the set of model flags.
Definition: QCD.cpp:399
PMNS::computePMNS
void computePMNS(double s12_v, double s13_v, double s23_v, double delta_v, double alpha21_v, double alpha31_v)
A set method to calculate the PMNS matrix from PMNS parameters.
Definition: PMNS.cpp:13
StandardModel::MwbarFromMw
double MwbarFromMw(const double Mw) const
A method to convert the -boson mass in the experimental/running-width scheme to that in the complex-p...
Definition: StandardModel.cpp:1128
StandardModel::getIntegrand_sigmaWithISR_down167
double getIntegrand_sigmaWithISR_down167(double x) const
Definition: StandardModel.cpp:6640
StandardModel::getIntegrand_AFBnumeratorWithISR_bottom196
double getIntegrand_AFBnumeratorWithISR_bottom196(double x) const
Definition: StandardModel.cpp:7867
QCD::Nf
double Nf(const double mu) const
The number of active flavour at scale .
Definition: QCD.cpp:438
StandardModel::getIntegrand_dsigmaBox_tau172
double getIntegrand_dsigmaBox_tau172(double x) const
Definition: StandardModel.cpp:7068
StandardModel::getIntegrand_sigmaWithISR_mu192
double getIntegrand_sigmaWithISR_mu192(double x) const
Definition: StandardModel.cpp:6395
StandardModel::getIntegrand_dsigmaBox_bottom205
double getIntegrand_dsigmaBox_bottom205(double x) const
Definition: StandardModel.cpp:7564
StandardModel::getIntegrand_sigmaWithISR_strange183
double getIntegrand_sigmaWithISR_strange183(double x) const
Definition: StandardModel.cpp:6828
StandardModel::delR0l
double delR0l
The theoretical uncertainty in , denoted as .
Definition: StandardModel.h:2565
StandardModel::Integrand_AFBnumeratorWithISR_l
double Integrand_AFBnumeratorWithISR_l(double x, const QCD::lepton l_flavor, const double s) const
Definition: StandardModel.cpp:7588
EWSMThreeLoopQCD::DeltaAlpha_l
double DeltaAlpha_l(const double s) const
Leptonic contribution of to the electromagnetic coupling , denoted as .
Definition: EWSMThreeLoopQCD.cpp:18
EWSMThreeLoopQCD
A class for three-loop corrections to the EW precision observables.
Definition: EWSMThreeLoopQCD.h:33
StandardModel::Delta_EWQCD
double Delta_EWQCD(const QCD::quark q) const
The non-factorizable EW-QCD corrections to the partial widths for , denoted as .
Definition: StandardModel.cpp:2124
CKM::computeCKMwithWolfenstein
void computeCKMwithWolfenstein(double Lambda_v, double A_v, double Rho_v, double Eta_v)
A set method to calculate the CKM matrix from Wolfenstein parameters.
Definition: CKM.cpp:13
FULLNNNLO
Definition: OrderScheme.h:39
NNNLO
Definition: OrderScheme.h:36
StandardModel::getIntegrand_sigmaWithISR_charm192
double getIntegrand_sigmaWithISR_charm192(double x) const
Definition: StandardModel.cpp:6752
Matching::getObj
T & getObj()
Definition: Matching.h:14
StandardModel::getIntegrand_dsigmaBox_bottom200
double getIntegrand_dsigmaBox_bottom200(double x) const
Definition: StandardModel.cpp:7552
StandardModel::getIntegrand_dsigmaBox_bottom192
double getIntegrand_dsigmaBox_bottom192(double x) const
Definition: StandardModel.cpp:7540
StandardModel::getIntegrand_sigmaWithISR_mu202
double getIntegrand_sigmaWithISR_mu202(double x) const
Definition: StandardModel.cpp:6413
StandardModel::sigma_NoISR_l
double sigma_NoISR_l(const QCD::lepton l_flavor, const double s) const
Definition: StandardModel.cpp:6298
StandardModel::getIntegrand_dsigmaBox_up196
double getIntegrand_dsigmaBox_up196(double x) const
Definition: StandardModel.cpp:7193
StandardModel::FlagSMAux
bool FlagSMAux
A boolean for the model flag SMAux.
Definition: StandardModel.h:3137
EWSMcache::getZeta3
double getZeta3() const
A get method to access the value of the zeta function .
Definition: EWSMcache.h:146
StandardModel::getIntegrand_AFBnumeratorWithISR_mu172
double getIntegrand_AFBnumeratorWithISR_mu172(double x) const
Definition: StandardModel.cpp:7618
LO
Definition: OrderScheme.h:33
StandardModel::getIntegrand_dsigmaBox_up136
double getIntegrand_dsigmaBox_up136(double x) const
Definition: StandardModel.cpp:7151
QCD::UP
Definition: QCD.h:324
StandardModel::getIntegrand_dsigmaBox_bottom133
double getIntegrand_dsigmaBox_bottom133(double x) const
Definition: StandardModel.cpp:7498
StandardModel::getIntegrand_dsigmaBox_up161
double getIntegrand_dsigmaBox_up161(double x) const
Definition: StandardModel.cpp:7157
StandardModel::GF
double GF
The Fermi constant in .
Definition: StandardModel.h:2555
StandardModel::AFB_NoISR_q
double AFB_NoISR_q(const QCD::quark q_flavor, const double s) const
Definition: StandardModel.cpp:6333
StandardModel::A_f
virtual double A_f(const Particle f) const
The left-right asymmetry in at the -pole, .
Definition: StandardModel.cpp:1209
StandardModel::getIntegrand_AFBnumeratorWithISR_mu192
double getIntegrand_AFBnumeratorWithISR_mu192(double x) const
Definition: StandardModel.cpp:7636
StandardModel::sigma0_had
virtual double sigma0_had() const
The hadronic cross section for at the -pole, .
Definition: StandardModel.cpp:1370
StandardModel::getIntegrand_AFBnumeratorWithISR_charm183
double getIntegrand_AFBnumeratorWithISR_charm183(double x) const
Definition: StandardModel.cpp:7780
StandardModel::getIntegrand_sigmaWithISR_tau202
double getIntegrand_sigmaWithISR_tau202(double x) const
Definition: StandardModel.cpp:6486
StandardModel::getIntegrand_AFBnumeratorWithISR_charm172
double getIntegrand_AFBnumeratorWithISR_charm172(double x) const
Definition: StandardModel.cpp:7774
StandardModel::getIntegrand_sigmaWithISR_up167
double getIntegrand_sigmaWithISR_up167(double x) const
Definition: StandardModel.cpp:6552
StandardModel::getIntegrand_dsigmaBox_charm133
double getIntegrand_dsigmaBox_charm133(double x) const
Definition: StandardModel.cpp:7320
StandardModel::getIntegrand_sigmaWithISR_up189
double getIntegrand_sigmaWithISR_up189(double x) const
Definition: StandardModel.cpp:6570
StandardModel::delMw
double delMw
The theoretical uncertainty in , denoted as , in GeV.
Definition: StandardModel.h:2559
StandardModel::getIntegrand_dsigmaBox_bottom130
double getIntegrand_dsigmaBox_bottom130(double x) const
Definition: StandardModel.cpp:7492
EWSMThreeLoopEW::DeltaAlpha_t
double DeltaAlpha_t(const double s) const
Top-quark contribution of to the electromagnetic coupling , denoted as .
Definition: EWSMThreeLoopEW.cpp:65
Model::addMissingModelParameter
void addMissingModelParameter(const std::string &missingParameterName)
Definition: Model.h:240
StandardModel::SchemeToDouble
double SchemeToDouble(const std::string scheme) const
A method to convert a given scheme name in string form into a floating-point number with double preci...
Definition: StandardModel.h:2601
StandardModel::getIntegrand_AFBnumeratorWithISR_mu161
double getIntegrand_AFBnumeratorWithISR_mu161(double x) const
Definition: StandardModel.cpp:7612
StandardModel::Beta_e
double Beta_e(int nm, unsigned int nf) const
QED beta function coefficients - eq. (36) hep-ph/0512066.
Definition: StandardModel.cpp:582
StandardModel.h
StandardModel::CheckParameters
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
A method to check if all the mandatory parameters for StandardModel have been provided in model initi...
Definition: StandardModel.cpp:339
StandardModel::getIntegrand_dsigmaBox_charm136
double getIntegrand_dsigmaBox_charm136(double x) const
Definition: StandardModel.cpp:7326
EWSMTwoFermionsLEP2::H_ISR
double H_ISR(const double x, const double s) const
Definition: EWSMTwoFermionsLEP2.cpp:1289
StandardModel::alphaMz
double alphaMz() const
The electromagnetic coupling at the -mass scale, .
Definition: StandardModel.cpp:893
StandardModel::getIntegrand_dsigmaBox_down130
double getIntegrand_dsigmaBox_down130(double x) const
Definition: StandardModel.cpp:7226
StandardModel::LEP2AFBcharm
virtual double LEP2AFBcharm(const double s) const
Definition: StandardModel.cpp:4882
QCD::CHARM
Definition: QCD.h:326
StandardModel::DeltaAlphaL5q
double DeltaAlphaL5q() const
The sum of the leptonic and the five-flavour hadronic corrections to the electromagnetic coupling at...
Definition: StandardModel.cpp:856
StandardModel::bSigmaForAFB
bool bSigmaForAFB
Definition: StandardModel.h:2832
StandardModel::getIntegrand_sigmaWithISR_down172
double getIntegrand_sigmaWithISR_down172(double x) const
Definition: StandardModel.cpp:6646
QCD::TF
double TF
Definition: QCD.h:933
EWSMTwoFermionsLEP2::dsigma_l_box
double dsigma_l_box(const QCD::lepton l, const double mf, const double s, const double cosTheta, const double Mw, const double GammaZ) const
Definition: EWSMTwoFermionsLEP2.cpp:1180
AFBbottom
An observable class for the forward-backward asymmetry in at the pole.
Definition: AFBbottom.h:39
gslpp::complex
A class for defining operations on and functions of complex numbers.
Definition: gslpp_complex.h:35
EWSMTwoFermionsLEP2::sigma_l
double sigma_l(const QCD::lepton l, const double mf, const double s, const double Mw, const double GammaZ, const bool bWeak) const
Definition: EWSMTwoFermionsLEP2.cpp:1209
StandardModel::LEP2AFBtau
virtual double LEP2AFBtau(const double s) const
Definition: StandardModel.cpp:5784
StandardModel::getIntegrand_dsigmaBox_charm172
double getIntegrand_dsigmaBox_charm172(double x) const
Definition: StandardModel.cpp:7344
StandardModel::getIntegrand_sigmaWithISR_mu183
double getIntegrand_sigmaWithISR_mu183(double x) const
Definition: StandardModel.cpp:6383
StandardModel::ComputeDeltaR_rem
void ComputeDeltaR_rem(const double Mw_i, double DeltaR_rem[orders_EW_size]) const
A method to collect computed via subclasses.
Definition: StandardModel.cpp:1079
StandardModel::mHl
double mHl
The Higgs mass in GeV.
Definition: StandardModel.h:2558
StandardModel::epsilonb
virtual double epsilonb() const
The SM contribution to the epsilon parameter .
Definition: StandardModel.cpp:1815
StandardModel::getIntegrand_dsigmaBox_tau189
double getIntegrand_dsigmaBox_tau189(double x) const
Definition: StandardModel.cpp:7080
CKM::getV_cb
gslpp::complex getV_cb() const
A member for returning the value of the CKM element .
Definition: CKM.h:237
QCD::NEUTRINO_2
Definition: QCD.h:313
StandardModel::s23
double s23
Definition: StandardModel.h:2577
QCD::setParameter
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of QCD.
Definition: QCD.cpp:273
StandardModel::f_GSL
gsl_function f_GSL
Definition: StandardModel.h:3166
EWSMcache::getZeta5
double getZeta5() const
A get method to access the value of the zeta function .
Definition: EWSMcache.h:164
gslpp::log
complex log(const complex &z)
Definition: gslpp_complex.cpp:342
StandardModel::Integrand_AFBnumeratorWithISR_q
double Integrand_AFBnumeratorWithISR_q(double x, const QCD::quark q_flavor, const double s) const
Definition: StandardModel.cpp:7747
StandardModel::getIntegrand_dsigmaBox_charm183
double getIntegrand_dsigmaBox_charm183(double x) const
Definition: StandardModel.cpp:7350
StandardModel::GammaW
virtual double GammaW() const
The total width of the boson, .
Definition: StandardModel.cpp:1190
StandardModel::LEP2Rbottom
virtual double LEP2Rbottom(const double s) const
Definition: StandardModel.cpp:6274
gslpp::matrix
A base class for defining operations on matrices, both real and complex.
Definition: gslpp_matrix_base.h:21
StandardModel::getIntegrand_dsigmaBox_strange202
double getIntegrand_dsigmaBox_strange202(double x) const
Definition: StandardModel.cpp:7470
StandardModel::flag_order
bool flag_order[orders_EW_size]
An array of internal flags controlling the inclusions of higher-order corrections.
Definition: StandardModel.h:2589
StandardModel::getIntegrand_sigmaWithISR_charm202
double getIntegrand_sigmaWithISR_charm202(double x) const
Definition: StandardModel.cpp:6770
StandardModel::getIntegrand_sigmaWithISR_up192
double getIntegrand_sigmaWithISR_up192(double x) const
Definition: StandardModel.cpp:6576
StandardModel::getIntegrand_sigmaWithISR_up196
double getIntegrand_sigmaWithISR_up196(double x) const
Definition: StandardModel.cpp:6582
EWSMOneLoopEW::deltaKappa_rem_f
gslpp::complex deltaKappa_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
Definition: EWSMOneLoopEW.cpp:143
StandardModel::getIntegrand_dsigmaBox_down200
double getIntegrand_dsigmaBox_down200(double x) const
Definition: StandardModel.cpp:7286
QCD::ELECTRON
Definition: QCD.h:312
QCD::orderToString
std::string orderToString(const orders order) const
Converts an object of the enum type "orders" to the corresponding string.
Definition: QCD.cpp:83
EWSMTwoFermionsLEP2::H_ISR_FB
double H_ISR_FB(const double x, const double s) const
Definition: EWSMTwoFermionsLEP2.cpp:1303
Particle::getIsospin
double getIsospin() const
A get method to access the particle isospin.
Definition: Particle.h:115
StandardModel::GammaW_cache
double GammaW_cache
A cache of the value of .
Definition: StandardModel.h:3147
StandardModel::getIntegrand_dsigmaBox_down133
double getIntegrand_dsigmaBox_down133(double x) const
Definition: StandardModel.cpp:7232
gslpp::complex::abs2
double abs2() const
Definition: gslpp_complex.cpp:86
EWSMTwoFermionsLEP2::AFB_q
double AFB_q(const QCD::quark q, const double mf, const double s, const double Mw, const double GammaZ, const bool bWeak) const
Definition: EWSMTwoFermionsLEP2.cpp:1249
StandardModel::getIntegrand_dsigmaBox_charm189
double getIntegrand_dsigmaBox_charm189(double x) const
Definition: StandardModel.cpp:7356
EWSMcache::getZeta4
double getZeta4() const
A get method to access the value of the zeta function .
Definition: EWSMcache.h:155
StandardModel::DeltaAlphaLepton_cache
double DeltaAlphaLepton_cache
A cache of the value of .
Definition: StandardModel.h:3144
EWSMOneLoopEW
A class for one-loop corrections to the EW precision observables.
Definition: EWSMOneLoopEW.h:105
StandardModel::DeltaAlpha_cache
double DeltaAlpha_cache
A cache of the value of .
Definition: StandardModel.h:3145
Model::UpdateError
bool UpdateError
A boolean set to false if update is successful.
Definition: Model.h:262
EWSMTwoFermionsLEP2::dsigma_q_box
double dsigma_q_box(const QCD::quark q, const double mf, const double s, const double cosTheta, const double Mw, const double GammaZ) const
Definition: EWSMTwoFermionsLEP2.cpp:1191
EWSMTwoLoopEW::DeltaAlpha_l
double DeltaAlpha_l(const double s) const
Leptonic contribution of to the electromagnetic coupling , denoted as .
Definition: EWSMTwoLoopEW.cpp:23
StandardModel::FlagRhoZ
std::string FlagRhoZ
A string for the model flag RhoZ.
Definition: StandardModel.h:3133
StandardModel::DeltaAlpha
double DeltaAlpha() const
The total corrections to the electromagnetic coupling at the -mass scale, denoted as .
Definition: StandardModel.cpp:881
StandardModel::SMM
Matching< StandardModelMatching, StandardModel > SMM
An object of type Matching.
Definition: StandardModel.h:2550
EWSMOneLoopEW::deltaRho_rem_f
gslpp::complex deltaRho_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
Definition: EWSMOneLoopEW.cpp:113
EWSMThreeLoopEW2QCD::DeltaRho
double DeltaRho(const double Mw_i) const
Leading three-loop contribution of to , denoted as .
Definition: EWSMThreeLoopEW2QCD.cpp:29
StandardModel::getIntegrand_sigmaWithISR_tau161
double getIntegrand_sigmaWithISR_tau161(double x) const
Definition: StandardModel.cpp:6444
StandardModel::getIntegrand_sigmaWithISR_tau205
double getIntegrand_sigmaWithISR_tau205(double x) const
Definition: StandardModel.cpp:6492
StandardModel::DeltaR
virtual double DeltaR() const
The SM prediction for derived from that for the boson mass.
Definition: StandardModel.cpp:1036
StandardModel::getIntegrand_dsigmaBox_up172
double getIntegrand_dsigmaBox_up172(double x) const
Definition: StandardModel.cpp:7169
QCD::MassOfNf
double MassOfNf(int nf) const
The Mbar mass of the heaviest quark in the theory with Nf active flavour.
Definition: QCD.cpp:620
StandardModel::getIntegrand_dsigmaBox_down136
double getIntegrand_dsigmaBox_down136(double x) const
Definition: StandardModel.cpp:7238
StandardModel::getIntegrand_AFBnumeratorWithISR_mu207
double getIntegrand_AFBnumeratorWithISR_mu207(double x) const
Definition: StandardModel.cpp:7666
StandardModel::getIntegrand_sigmaWithISR_up183
double getIntegrand_sigmaWithISR_up183(double x) const
Definition: StandardModel.cpp:6564
StandardModel::cW2
virtual double cW2() const
Definition: StandardModel.cpp:1020
StandardModel::getIntegrand_dsigmaBox_strange189
double getIntegrand_dsigmaBox_strange189(double x) const
Definition: StandardModel.cpp:7446
StandardModel::myThreeLoopQCD
EWSMThreeLoopQCD * myThreeLoopQCD
A pointer to an object of type EWSMThreeLoopQCD.
Definition: StandardModel.h:3120
EWSMTwoLoopEW::deltaRho_rem_f
gslpp::complex deltaRho_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
Definition: EWSMTwoLoopEW.cpp:96
StandardModel::getIntegrand_dsigmaBox_up167
double getIntegrand_dsigmaBox_up167(double x) const
Definition: StandardModel.cpp:7163
StandardModel::getIntegrand_dsigmaBox_charm196
double getIntegrand_dsigmaBox_charm196(double x) const
Definition: StandardModel.cpp:7368
StandardModel::getIntegrand_sigmaWithISR_strange133
double getIntegrand_sigmaWithISR_strange133(double x) const
Definition: StandardModel.cpp:6798
StandardModel::LEP2AFBbottom
virtual double LEP2AFBbottom(const double s) const
Definition: StandardModel.cpp:4470
StandardModel::ale
double ale
The fine-structure constant .
Definition: StandardModel.h:2556
StandardModel::getIntegrand_sigmaWithISR_charm161
double getIntegrand_sigmaWithISR_charm161(double x) const
Definition: StandardModel.cpp:6722
QCD::mtpole
double mtpole
The pole mass of the top quark.
Definition: QCD.h:927
EWSMTwoLoopQCD::DeltaR_rem
double DeltaR_rem(const double Mw_i) const
Remainder contribution of to , denoted as .
Definition: EWSMTwoLoopQCD.cpp:44
EWSMTwoFermionsLEP2::G_3prime_l
double G_3prime_l(const QCD::lepton l, const double mf, const double s, const double Mw, const double GammaZ, const bool bWeak) const
Definition: EWSMTwoFermionsLEP2.cpp:1319
StandardModel::Alstilde5
double Alstilde5(const double mu) const
The value of at any scale with the number of flavours and full EW corrections.
Definition: StandardModel.cpp:899
StandardModel::setFlag
virtual bool setFlag(const std::string name, const bool value)
A method to set a flag of StandardModel.
Definition: StandardModel.cpp:404
Model::ModelParamMap
std::map< std::string, std::reference_wrapper< const double > > ModelParamMap
Definition: Model.h:270
StandardModel::myTwoLoopEW
EWSMTwoLoopEW * myTwoLoopEW
A pointer to an object of type EWSMTwoLoopEW.
Definition: StandardModel.h:3121
StandardModel::DeltaAlphaTop
double DeltaAlphaTop(const double s) const
Top-quark contribution to the electromagnetic coupling , denoted as .
Definition: StandardModel.cpp:862
StandardModel::getIntegrand_dsigmaBox_bottom207
double getIntegrand_dsigmaBox_bottom207(double x) const
Definition: StandardModel.cpp:7570
EWSMTwoLoopEW::DeltaAlpha_t
double DeltaAlpha_t(const double s) const
Top-quark contribution of to the electromagnetic coupling , denoted as .
Definition: EWSMTwoLoopEW.cpp:49
StandardModel::getIntegrand_dsigmaBox_charm205
double getIntegrand_dsigmaBox_charm205(double x) const
Definition: StandardModel.cpp:7386
EWSMThreeLoopEW.h
StandardModel::AlsByOrder
double AlsByOrder(double mu, orders order=FULLNLO, bool qed_flag=false, bool Nf_thr=true) const
Definition: StandardModel.cpp:623
StandardModel::getIntegrand_sigmaWithISR_bottom172
double getIntegrand_sigmaWithISR_bottom172(double x) const
Definition: StandardModel.cpp:6910
QCD::CheckParameters
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
A method to check if all the mandatory parameters for QCD have been provided in model initialization.
Definition: QCD.cpp:335
StandardModel::useDeltaAlphaLepton_cache
bool useDeltaAlphaLepton_cache
Definition: StandardModel.h:3150
QCD::Beta0
double Beta0(const double nf) const
The coefficient for a certain number of flavours .
Definition: QCD.cpp:466
QCD::Beta2
double Beta2(const double nf) const
The coefficient for a certain number of flavours .
Definition: QCD.cpp:476
StandardModel::DeltaAlphaLepton
double DeltaAlphaLepton(const double s) const
Leptonic contribution to the electromagnetic coupling , denoted as .
Definition: StandardModel.cpp:828
StandardModel::IsFlagWithoutNonUniversalVC
bool IsFlagWithoutNonUniversalVC() const
A method to retrieve the model flag WithoutNonUniversalVC.
Definition: StandardModel.h:634
StandardModel::getIntegrand_AFBnumeratorWithISR_mu196
double getIntegrand_AFBnumeratorWithISR_mu196(double x) const
Definition: StandardModel.cpp:7642
CKM::getLambda
double getLambda() const
A member for returning the value of the Wolfenstein parameter .
Definition: CKM.h:78
EWSMTwoFermionsLEP2
A class for the form factors , and in the processes at LEP-II.
Definition: EWSMTwoFermionsLEP2.h:25
StandardModel::RVh
double RVh() const
The singlet vector corrections to the hadronic -boson width, denoted as .
Definition: StandardModel.cpp:2399
StandardModel::getIntegrand_dsigmaBox_charm167
double getIntegrand_dsigmaBox_charm167(double x) const
Definition: StandardModel.cpp:7338
StandardModel::getIntegrand_dsigmaBox_tau205
double getIntegrand_dsigmaBox_tau205(double x) const
Definition: StandardModel.cpp:7110
StandardModel::getIntegrand_dsigmaBox_bottom196
double getIntegrand_dsigmaBox_bottom196(double x) const
Definition: StandardModel.cpp:7546
StandardModel::epsilon2
virtual double epsilon2() const
The SM contribution to the epsilon parameter .
Definition: StandardModel.cpp:1793
LeptonFlavour
The parent class in LeptonFlavour for calculating all the Wilson coefficients for various Lepton Flav...
Definition: LeptonFlavour.h:26
StandardModel::StandardModel
StandardModel()
The default constructor.
Definition: StandardModel.cpp:40
StandardModel::getIntegrand_sigmaWithISR_charm196
double getIntegrand_sigmaWithISR_charm196(double x) const
Definition: StandardModel.cpp:6758
QCD::PostUpdate
virtual bool PostUpdate()
The post-update method for QCD.
Definition: QCD.cpp:143
StandardModel::getIntegrand_dsigmaBox_strange207
double getIntegrand_dsigmaBox_strange207(double x) const
Definition: StandardModel.cpp:7482
StandardModel::getIntegrand_dsigmaBox_tau202
double getIntegrand_dsigmaBox_tau202(double x) const
Definition: StandardModel.cpp:7104
QCD::Init
virtual bool Init(const std::map< std::string, double > &DPars)
Initializes the QCD parameters found in the argument.
Definition: QCD.cpp:107
StandardModel::getIntegrand_AFBnumeratorWithISR_mu130
double getIntegrand_AFBnumeratorWithISR_mu130(double x) const
Definition: StandardModel.cpp:7600
QCD::muc
double muc
The threshold between four- and three-flavour theory in GeV.
Definition: QCD.h:930
StandardModel::delGammaZ
double delGammaZ
The theoretical uncertainty in , denoted as , in GeV.
Definition: StandardModel.h:2563
StandardModel::getIntegrand_AFBnumeratorWithISR_mu205
double getIntegrand_AFBnumeratorWithISR_mu205(double x) const
Definition: StandardModel.cpp:7660
StandardModel::rhoZ_f_cache
gslpp::complex rhoZ_f_cache[12]
A cache of the value of .
Definition: StandardModel.h:3148
StandardModel::getIntegrand_AFBnumeratorWithISR_charm205
double getIntegrand_AFBnumeratorWithISR_charm205(double x) const
Definition: StandardModel.cpp:7816
StandardModel::c02
double c02() const
The square of the cosine of the weak mixing angle defined without weak radiative corrections.
Definition: StandardModel.cpp:965
StandardModel::Integrand_dsigmaBox_l
double Integrand_dsigmaBox_l(double cosTheta, const QCD::lepton l_flavor, const double s) const
Definition: StandardModel.cpp:6968
StandardModel::getIntegrand_sigmaWithISR_tau172
double getIntegrand_sigmaWithISR_tau172(double x) const
Definition: StandardModel.cpp:6450
CKM::computeCKM
void computeCKM(double Vus_v, double Vcb_v, double Vub_v, double gamma_v)
A set method to calculate the CKM matrix from CKM elements and .
Definition: CKM.cpp:55
StandardModel::SMresult_cache
double SMresult_cache
Definition: StandardModel.h:3160
StandardModel::Init
virtual bool Init(const std::map< std::string, double > &DPars)
A method to initialize the model parameters.
Definition: StandardModel.cpp:185
gslpp::complex::imag
const double & imag() const
Definition: gslpp_complex.cpp:59
StandardModel::w_GSL1
gsl_integration_workspace * w_GSL1
Definition: StandardModel.h:3167
StandardModel::getIntegrand_dsigmaBox_up130
double getIntegrand_dsigmaBox_up130(double x) const
Definition: StandardModel.cpp:7139
StandardModel::ale_OS
double ale_OS(const double mu, orders order=FULLNLO) const
The running electromagnetic coupling in the on-shell scheme.
Definition: StandardModel.cpp:533
StandardModel::dAle5Mz
double dAle5Mz
The five-flavour hadronic contribution to the electromagnetic coupling, .
Definition: StandardModel.h:2557
StandardModel::Vub
double Vub
used as an input for FlagWolfenstein = FALSE
Definition: StandardModel.h:2574
Particle::getMass
const double & getMass() const
A get method to access the particle mass.
Definition: Particle.h:61
StandardModel::getIntegrand_dsigmaBox_up192
double getIntegrand_dsigmaBox_up192(double x) const
Definition: StandardModel.cpp:7187
StandardModel::getIntegrand_sigmaWithISR_bottom183
double getIntegrand_sigmaWithISR_bottom183(double x) const
Definition: StandardModel.cpp:6916
StandardModel::useMw_cache
bool useMw_cache
Definition: StandardModel.h:3152
EWSMThreeLoopEW2QCD::DeltaAlpha_l
double DeltaAlpha_l(const double s) const
Leptonic contribution of to the electromagnetic coupling , denoted as .
Definition: EWSMThreeLoopEW2QCD.cpp:19
StandardModel::AlsMz
double AlsMz
The strong coupling constant at the Z-boson mass, .
Definition: StandardModel.h:2553
StandardModel::getIntegrand_dsigmaBox_strange130
double getIntegrand_dsigmaBox_strange130(double x) const
Definition: StandardModel.cpp:7402
StandardModel::getIntegrand_sigmaWithISR_up200
double getIntegrand_sigmaWithISR_up200(double x) const
Definition: StandardModel.cpp:6588
StandardModel::getIntegrand_sigmaWithISR_strange136
double getIntegrand_sigmaWithISR_strange136(double x) const
Definition: StandardModel.cpp:6804
StandardModel::sW2
double sW2() const
Definition: StandardModel.cpp:1031
StandardModel::getIntegrand_AFBnumeratorWithISR_mu189
double getIntegrand_AFBnumeratorWithISR_mu189(double x) const
Definition: StandardModel.cpp:7630
CKM::computeGamma
double computeGamma() const
The CKM angle .
Definition: CKM.cpp:87
CKM::getCKM
gslpp::matrix< gslpp::complex > getCKM() const
A member for returning the CKM matrix.
Definition: CKM.h:49
EWSMApproximateFormulae::Mw
double Mw() const
The -boson mass with the full two-loop EW corrections.
Definition: EWSMApproximateFormulae.cpp:23
StandardModel::getIntegrand_dsigmaBox_down189
double getIntegrand_dsigmaBox_down189(double x) const
Definition: StandardModel.cpp:7268
gslpp::complex::abs
double abs() const
Definition: gslpp_complex.cpp:81
StandardModel::EW1QCD1
Two-loop of .
Definition: StandardModel.h:497
StandardModel::PreUpdate
virtual bool PreUpdate()
The pre-update method for StandardModel.
Definition: StandardModel.cpp:198
StandardModel::Gamma_had
virtual double Gamma_had() const
The hadronic decay width of the boson, .
Definition: StandardModel.cpp:1309
StandardModel::resumRhoZ
double resumRhoZ(const double DeltaRho[orders_EW_size], const double deltaRho_rem[orders_EW_size], const double DeltaRbar_rem, const bool bool_Zbb) const
A method to compute the real part of the effective coupling from , and .
Definition: StandardModel.cpp:1948
EWSMApproximateFormulae::sin2thetaEff_b_full
double sin2thetaEff_b_full() const
with the full two-loop EW corrections.
Definition: EWSMApproximateFormulae.cpp:1481
StandardModel::getIntegrand_dsigmaBox_bottom136
double getIntegrand_dsigmaBox_bottom136(double x) const
Definition: StandardModel.cpp:7504
StandardModel::getIntegrand_dsigmaBox_tau136
double getIntegrand_dsigmaBox_tau136(double x) const
Definition: StandardModel.cpp:7056
EWSMOneLoopEW.h
QCD::TOP
Definition: QCD.h:328
EWSMOneLoopEW::FZ
gslpp::complex FZ(const double s, const double Mw_i) const
The unified form factor .
Definition: EWSMOneLoopEW.cpp:1065
StandardModel::getIntegrand_dsigmaBox_up200
double getIntegrand_dsigmaBox_up200(double x) const
Definition: StandardModel.cpp:7199
EWSMcache::mf
double mf(const Particle f, const double mu=0.0, const orders order=FULLNNLO) const
The mass of an SM fermion.
Definition: EWSMcache.cpp:49
StandardModel::getIntegrand_sigmaWithISR_up130
double getIntegrand_sigmaWithISR_up130(double x) const
Definition: StandardModel.cpp:6528
StandardModel::getIntegrand_dsigmaBox_bottom167
double getIntegrand_dsigmaBox_bottom167(double x) const
Definition: StandardModel.cpp:7516
StandardModel::getIntegrand_sigmaWithISR_bottom192
double getIntegrand_sigmaWithISR_bottom192(double x) const
Definition: StandardModel.cpp:6928
StandardModel::getIntegrand_AFBnumeratorWithISR_charm202
double getIntegrand_AFBnumeratorWithISR_charm202(double x) const
Definition: StandardModel.cpp:7810
QCD::zeta3
double zeta3
computed with the GSL.
Definition: QCD.h:940
gslpp::pow
complex pow(const complex &z1, const complex &z2)
Definition: gslpp_complex.cpp:395
StandardModel::RAq
double RAq(const QCD::quark q) const
The radiator factor associated with the final-state QED and QCD corrections to the the axial-vector-c...
Definition: StandardModel.cpp:2262
EWSMTwoFermionsLEP2::sigma_q
double sigma_q(const QCD::quark q, const double mf, const double s, const double Mw, const double GammaZ, const bool bWeak) const
Definition: EWSMTwoFermionsLEP2.cpp:1220
StandardModel::getIntegrand_sigmaWithISR_down189
double getIntegrand_sigmaWithISR_down189(double x) const
Definition: StandardModel.cpp:6658
StandardModel::getIntegrand_AFBnumeratorWithISR_charm192
double getIntegrand_AFBnumeratorWithISR_charm192(double x) const
Definition: StandardModel.cpp:7792
StandardModel::getIntegrand_sigmaWithISR_charm133
double getIntegrand_sigmaWithISR_charm133(double x) const
Definition: StandardModel.cpp:6710
Model::raiseMissingModelParameterCount
void raiseMissingModelParameterCount()
Definition: Model.h:250
EWSMApproximateFormulae::X_full_2_loop
double X_full_2_loop(const std::string observable) const
, , , , , , , , , , , or .
Definition: EWSMApproximateFormulae.cpp:978
StandardModel::SMvars
static std::string SMvars[NSMvars]
A string array containing the labels of the model parameters in StandardModel.
Definition: StandardModel.h:512
gslpp::sqrt
complex sqrt(const complex &z)
Definition: gslpp_complex.cpp:385
EWSMThreeLoopQCD::DeltaRho
double DeltaRho(const double Mw_i) const
Leading three-loop QCD contribution of to , denoted as .
Definition: EWSMThreeLoopQCD.cpp:42
StandardModel::getIntegrand_sigmaWithISR_mu172
double getIntegrand_sigmaWithISR_mu172(double x) const
Definition: StandardModel.cpp:6377
EWSMOneLoopEW::rho_GammaW
double rho_GammaW(const Particle fi, const Particle fj, const double Mw_i) const
EW radiative corrections to the width of , denoted as .
Definition: EWSMOneLoopEW.cpp:190
StandardModel::myLeptonFlavour
LeptonFlavour * myLeptonFlavour
A pointer to an object of the type LeptonFlavour.
Definition: StandardModel.h:3125
sin2thetaEff
An observable class for the leptonic effective weak mixing angle at the pole. To be used for the el...
Definition: sin2thetaEff.h:29
StandardModel::getIntegrand_sigmaWithISR_mu207
double getIntegrand_sigmaWithISR_mu207(double x) const
Definition: StandardModel.cpp:6425
EWSMTwoLoopQCD::DeltaAlpha_l
double DeltaAlpha_l(const double s) const
Leptonic contribution of to the electromagnetic coupling , denoted as .
Definition: EWSMTwoLoopQCD.cpp:20
StandardModel::getIntegrand_dsigmaBox_tau161
double getIntegrand_dsigmaBox_tau161(double x) const
Definition: StandardModel.cpp:7062
StandardModel::getIntegrand_sigmaWithISR_down192
double getIntegrand_sigmaWithISR_down192(double x) const
Definition: StandardModel.cpp:6664
StandardModel::getIntegrand_dsigmaBox_up189
double getIntegrand_dsigmaBox_up189(double x) const
Definition: StandardModel.cpp:7181
QCD::Beta3
double Beta3(const double nf) const
The coefficient for a certain number of flavours .
Definition: QCD.cpp:484
EWSMApproximateFormulae.h
StandardModel::EW3
Three-loop of .
Definition: StandardModel.h:501
EWSMcache
A class for cache variables used in computing radiative corrections to the EW precision observables.
Definition: EWSMcache.h:40
StandardModel::FlagMw
std::string FlagMw
A string for the model flag Mw.
Definition: StandardModel.h:3132
StandardModel::getIntegrand_sigmaWithISR_charm189
double getIntegrand_sigmaWithISR_charm189(double x) const
Definition: StandardModel.cpp:6746
StandardModel::getIntegrand_AFBnumeratorWithISR_tau130
double getIntegrand_AFBnumeratorWithISR_tau130(double x) const
Definition: StandardModel.cpp:7673
StandardModel::lambda
double lambda
The CKM parameter in the Wolfenstein parameterization.
Definition: StandardModel.h:2568
Particle::getCharge
double getCharge() const
A get method to access the particle charge.
Definition: Particle.h:97
StandardModel::MwFromMwbar
double MwFromMwbar(const double Mwbar) const
A method to convert the -boson mass in the complex-pole/fixed-width scheme to that in the experimenta...
Definition: StandardModel.cpp:1137
QCD::zeta2
double zeta2
computed with the GSL.
Definition: QCD.h:939
StandardModel::getIntegrand_AFBnumeratorWithISR_mu200
double getIntegrand_AFBnumeratorWithISR_mu200(double x) const
Definition: StandardModel.cpp:7648
StandardModel::getIntegrand_sigmaWithISR_strange192
double getIntegrand_sigmaWithISR_strange192(double x) const
Definition: StandardModel.cpp:6840
StandardModel::getIntegrand_AFBnumeratorWithISR_bottom207
double getIntegrand_AFBnumeratorWithISR_bottom207(double x) const
Definition: StandardModel.cpp:7891
StandardModel::getIntegrand_dsigmaBox_strange133
double getIntegrand_dsigmaBox_strange133(double x) const
Definition: StandardModel.cpp:7408
EWSMTwoLoopEW
A class for two-loop corrections to the EW precision observables.
Definition: EWSMTwoLoopEW.h:57
EWSMApproximateFormulae
A class for approximate formulae of the EW precision observables.
Definition: EWSMApproximateFormulae.h:33
EWSMTwoLoopQCD::DeltaRho
double DeltaRho(const double Mw_i) const
Leading two-loop QCD contribution of to , denoted as .
Definition: EWSMTwoLoopQCD.cpp:38
StandardModel::useDeltaAlpha_cache
bool useDeltaAlpha_cache
Definition: StandardModel.h:3151
StandardModel::getIntegrand_dsigmaBox_bottom183
double getIntegrand_dsigmaBox_bottom183(double x) const
Definition: StandardModel.cpp:7528
EWSMcache.h
StandardModel::getIntegrand_sigmaWithISR_down161
double getIntegrand_sigmaWithISR_down161(double x) const
Definition: StandardModel.cpp:6634
StandardModel::getIntegrand_dsigmaBox_strange161
double getIntegrand_dsigmaBox_strange161(double x) const
Definition: StandardModel.cpp:7420
StandardModel::getIntegrand_AFBnumeratorWithISR_tau207
double getIntegrand_AFBnumeratorWithISR_tau207(double x) const
Definition: StandardModel.cpp:7739
StandardModel::PostUpdate
virtual bool PostUpdate()
The post-update method for StandardModel.
Definition: StandardModel.cpp:225
StandardModel::IsFlagNoApproximateGammaZ
bool IsFlagNoApproximateGammaZ() const
A method to retrieve the model flag NoApproximateGammaZ.
Definition: StandardModel.h:647
StandardModel::getIntegrand_sigmaWithISR_strange161
double getIntegrand_sigmaWithISR_strange161(double x) const
Definition: StandardModel.cpp:6810
StandardModel::myOneLoopEW
EWSMOneLoopEW * myOneLoopEW
A pointer to an object of type EWSMOneLoopEW.
Definition: StandardModel.h:3118
StandardModel::setFlagStr
virtual bool setFlagStr(const std::string name, const std::string value)
A method to set a flag of StandardModel.
Definition: StandardModel.cpp:444
StandardModel::LEP2sigmaCharm
virtual double LEP2sigmaCharm(const double s) const
Definition: StandardModel.cpp:2924
StandardModel::Mw_error
static const double Mw_error
The target accuracy of the iterative calculation of the -boson mass in units of GeV.
Definition: StandardModel.h:520
EWSMThreeLoopEW2QCD::DeltaR_rem
double DeltaR_rem(const double Mw_i) const
Remainder contribution of to , denoted as .
Definition: EWSMThreeLoopEW2QCD.cpp:63
EWSMThreeLoopQCD::DeltaAlpha_t
double DeltaAlpha_t(const double s) const
Top-quark contribution of to the electromagnetic coupling , denoted as .
Definition: EWSMThreeLoopQCD.cpp:23
EWSMcache::a_f
double a_f(const Particle f) const
The tree-level axial-vector coupling for , denoted as .
Definition: EWSMcache.h:301
Model::IsModelInitialized
bool IsModelInitialized() const
A method to check if the model is initialized.
Definition: Model.h:136
NNLO
Definition: OrderScheme.h:35
StandardModel::Ale
double Ale(double mu, orders order, bool Nf_thr=true) const
The running electromagnetic coupling in the scheme.
Definition: StandardModel.cpp:732
StandardModel::epsilon1
virtual double epsilon1() const
The SM contribution to the epsilon parameter .
Definition: StandardModel.cpp:1785
EWSMTwoLoopEW::tau_2
double tau_2() const
The function .
Definition: EWSMTwoLoopEW.cpp:151
StandardModel::getIntegrand_dsigmaBox_charm200
double getIntegrand_dsigmaBox_charm200(double x) const
Definition: StandardModel.cpp:7374
StandardModel::getIntegrand_sigmaWithISR_charm200
double getIntegrand_sigmaWithISR_charm200(double x) const
Definition: StandardModel.cpp:6764
StandardModel::getIntegrand_sigmaWithISR_down133
double getIntegrand_sigmaWithISR_down133(double x) const
Definition: StandardModel.cpp:6621
StandardModel::getIntegrand_sigmaWithISR_bottom205
double getIntegrand_sigmaWithISR_bottom205(double x) const
Definition: StandardModel.cpp:6952
StandardModel::s13
double s13
Definition: StandardModel.h:2577
StandardModel::Als
double Als(double mu, orders order=FULLNLO, bool qed_flag=false, bool Nf_thr=true) const
The running QCD coupling in the scheme including QED corrections.
Definition: StandardModel.cpp:602
QCD::CacheShift
void CacheShift(double cache[][5], int n) const
A member used to manage the caching for this class.
StandardModel::checkEWPOscheme
bool checkEWPOscheme(const std::string scheme) const
A method to check if a given scheme name in string form is valid.
Definition: StandardModel.h:2622
gslpp_function_adapter.h
QCD::getQuarks
Particle getQuarks(const QCD::quark q) const
A get method to access a quark as an object of the type Particle.
Definition: QCD.h:534
StandardModel::getIntegrand_dsigmaBox_strange167
double getIntegrand_dsigmaBox_strange167(double x) const
Definition: StandardModel.cpp:7426
StandardModel::getIntegrand_dsigmaBox_tau130
double getIntegrand_dsigmaBox_tau130(double x) const
Definition: StandardModel.cpp:7050
StandardModel::getIntegrand_dsigmaBox_up202
double getIntegrand_dsigmaBox_up202(double x) const
Definition: StandardModel.cpp:7205
StandardModel::deltaKappaZ_f
virtual gslpp::complex deltaKappaZ_f(const Particle f) const
Flavour non-universal vertex corrections to , denoted by .
Definition: StandardModel.cpp:1755
StandardModel::getIntegrand_sigmaWithISR_strange130
double getIntegrand_sigmaWithISR_strange130(double x) const
Definition: StandardModel.cpp:6792
StandardModel::getIntegrand_sigmaWithISR_tau189
double getIntegrand_sigmaWithISR_tau189(double x) const
Definition: StandardModel.cpp:6462
EWSMTwoLoopQCD::deltaRho_rem_f
gslpp::complex deltaRho_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
Definition: EWSMTwoLoopQCD.cpp:51
StandardModel::getIntegrand_sigmaWithISR_bottom167
double getIntegrand_sigmaWithISR_bottom167(double x) const
Definition: StandardModel.cpp:6904
StandardModel::getIntegrand_dsigmaBox_mu200
double getIntegrand_dsigmaBox_mu200(double x) const
Definition: StandardModel.cpp:7022
AFBtau
An observable class for the forward-backward asymmetry in at the pole.
Definition: AFBlepton.h:160
StandardModel::FlagKappaZ
std::string FlagKappaZ
A string for the model flag KappaZ.
Definition: StandardModel.h:3134
EWSMThreeLoopEW2QCD::DeltaAlpha_t
double DeltaAlpha_t(const double s) const
Top-quark contribution of to the electromagnetic coupling , denoted as .
Definition: EWSMThreeLoopEW2QCD.cpp:24
StandardModel::getIntegrand_AFBnumeratorWithISR_tau200
double getIntegrand_AFBnumeratorWithISR_tau200(double x) const
Definition: StandardModel.cpp:7721
EWSMApproximateFormulae::DeltaR_TwoLoopEW_rem
double DeltaR_TwoLoopEW_rem(const double Mw_i) const
.
Definition: EWSMApproximateFormulae.cpp:252
StandardModel::getIntegrand_AFBnumeratorWithISR_charm189
double getIntegrand_AFBnumeratorWithISR_charm189(double x) const
Definition: StandardModel.cpp:7786
StandardModel::getIntegrand_dsigmaBox_mu136
double getIntegrand_dsigmaBox_mu136(double x) const
Definition: StandardModel.cpp:6980
StandardModel::getIntegrand_AFBnumeratorWithISR_tau183
double getIntegrand_AFBnumeratorWithISR_tau183(double x) const
Definition: StandardModel.cpp:7697
QCD::quark
quark
An enum type for quarks.
Definition: QCD.h:323
StandardModel::getIntegrand_AFBnumeratorWithISR_bottom192
double getIntegrand_AFBnumeratorWithISR_bottom192(double x) const
Definition: StandardModel.cpp:7861
CKM::getRhoBar
double getRhoBar() const
A member for returning the value of the Wolfenstein parameter .
Definition: CKM.h:60
EWSMThreeLoopEW2QCD::deltaRho_rem_f
gslpp::complex deltaRho_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
Definition: EWSMThreeLoopEW2QCD.cpp:68
StandardModel::CacheSize
static const int CacheSize
Defines the depth of the cache.
Definition: StandardModel.h:3174
StandardModel::getIntegrand_sigmaWithISR_down183
double getIntegrand_sigmaWithISR_down183(double x) const
Definition: StandardModel.cpp:6652
QCD::BelowTh
double BelowTh(const double mu) const
The active flavour threshold below the scale as defined in QCD::Thresholds().
Definition: QCD.cpp:429
StandardModel::getIntegrand_dsigmaBox_down183
double getIntegrand_dsigmaBox_down183(double x) const
Definition: StandardModel.cpp:7262
EWSMcache::delta_f
double delta_f(const Particle f, const double Mw_i) const
.
Definition: EWSMcache.h:323
QCD::requireYd
bool requireYd
Switch for generating the Yukawa couplings to the down-type quarks.
Definition: QCD.h:922
EWSMOneLoopEW::FW
gslpp::complex FW(const double s, const Particle f, const double Mw_i) const
The unified form factor for .
Definition: EWSMOneLoopEW.cpp:1070
EWSMThreeLoopEW2QCD.h
StandardModel::R0_f
virtual double R0_f(const Particle f) const
The ratio .
Definition: StandardModel.cpp:1395
StandardModel::getIntegrand_AFBnumeratorWithISR_bottom172
double getIntegrand_AFBnumeratorWithISR_bottom172(double x) const
Definition: StandardModel.cpp:7843
StandardModel::getIntegrand_sigmaWithISR_tau196
double getIntegrand_sigmaWithISR_tau196(double x) const
Definition: StandardModel.cpp:6474
StandardModel::AleWithInit
double AleWithInit(double mu, double alsi, double mu_i, orders order) const
Definition: StandardModel.cpp:805
StandardModel::myCKM
CKM myCKM
An object of type CKM.
Definition: StandardModel.h:2541
EWSMTwoLoopEW::DeltaRho
double DeltaRho(const double Mw_i) const
Leading two-loop contribution of to , denoted as .
Definition: EWSMTwoLoopEW.cpp:54
EWSMOneLoopEW::DeltaAlpha_t
double DeltaAlpha_t(const double s) const
Top-quark contribution of to the electromagnetic coupling , denoted as .
Definition: EWSMOneLoopEW.cpp:35
StandardModel::resumKappaZ
double resumKappaZ(const double DeltaRho[orders_EW_size], const double deltaKappa_rem[orders_EW_size], const double DeltaRbar_rem, const bool bool_Zbb) const
A method to compute the real part of the effetvive coupling from , and .
Definition: StandardModel.cpp:2027
StandardModel::getIntegrand_dsigmaBox_up205
double getIntegrand_dsigmaBox_up205(double x) const
Definition: StandardModel.cpp:7211
StandardModel::getIntegrand_dsigmaBox_mu202
double getIntegrand_dsigmaBox_mu202(double x) const
Definition: StandardModel.cpp:7028
StandardModel::getIntegrand_AFBnumeratorWithISR_tau172
double getIntegrand_AFBnumeratorWithISR_tau172(double x) const
Definition: StandardModel.cpp:7691
StandardModel::epsilon3
virtual double epsilon3() const
The SM contribution to the epsilon parameter .
Definition: StandardModel.cpp:1805
PMNS::getPMNS
gslpp::matrix< gslpp::complex > getPMNS() const
A member for returning the PMNS matrix.
Definition: PMNS.h:42
StandardModel::Beta_s
double Beta_s(int nm, unsigned int nf) const
QCD beta function coefficients including QED corrections - eq. (36) hep-ph/0512066.
Definition: StandardModel.cpp:554
StandardModel::getIntegrand_AFBnumeratorWithISR_tau192
double getIntegrand_AFBnumeratorWithISR_tau192(double x) const
Definition: StandardModel.cpp:7709
Particle::setMass
void setMass(double mass)
A set method to fix the particle mass.
Definition: Particle.h:70
StandardModelMatching::updateSMParameters
void updateSMParameters()
Updates to new Standard Model parameter sets.
Definition: StandardModelMatching.cpp:111
CKM::getEtaBar
double getEtaBar() const
A member for returning the value of the Wolfenstein parameter .
Definition: CKM.h:69
StandardModel::getIntegrand_dsigmaBox_tau196
double getIntegrand_dsigmaBox_tau196(double x) const
Definition: StandardModel.cpp:7092
StandardModel::myThreeLoopEW
EWSMThreeLoopEW * myThreeLoopEW
A pointer to an object of type EWSMThreeLoopEW.
Definition: StandardModel.h:3123
StandardModel::getIntegrand_sigmaWithISR_strange205
double getIntegrand_sigmaWithISR_strange205(double x) const
Definition: StandardModel.cpp:6864
StandardModel::InitializeModel
virtual bool InitializeModel()
A method to initialize the model.
Definition: StandardModel.cpp:163
orders
orders
An enum type for orders in QCD.
Definition: OrderScheme.h:31
EWSMcache::getZeta2
double getZeta2() const
A get method to access the value of the zeta function .
Definition: EWSMcache.h:137
StandardModel::getIntegrand_dsigmaBox_up207
double getIntegrand_dsigmaBox_up207(double x) const
Definition: StandardModel.cpp:7217
StandardModel::myEWSMcache
EWSMcache * myEWSMcache
A pointer to an object of type EWSMcache.
Definition: StandardModel.h:3117
StandardModel::getIntegrand_dsigmaBox_down161
double getIntegrand_dsigmaBox_down161(double x) const
Definition: StandardModel.cpp:7244
StandardModel::s12
double s12
Definition: StandardModel.h:2577
StandardModel::getIntegrand_AFBnumeratorWithISR_tau136
double getIntegrand_AFBnumeratorWithISR_tau136(double x) const
Definition: StandardModel.cpp:7679
StandardModel::getIntegrand_sigmaWithISR_up136
double getIntegrand_sigmaWithISR_up136(double x) const
Definition: StandardModel.cpp:6540
StandardModel::getIntegrand_dsigmaBox_strange200
double getIntegrand_dsigmaBox_strange200(double x) const
Definition: StandardModel.cpp:7464
QCD::PreUpdate
virtual bool PreUpdate()
The pre-update method for QCD.
Definition: QCD.cpp:116
StandardModel::resumMw
double resumMw(const double Mw_i, const double DeltaRho[orders_EW_size], const double DeltaR_rem[orders_EW_size]) const
A method to compute the -boson mass from and .
Definition: StandardModel.cpp:1861
StandardModel::getIntegrand_sigmaWithISR_up202
double getIntegrand_sigmaWithISR_up202(double x) const
Definition: StandardModel.cpp:6594
StandardModel::computeYukawas
virtual void computeYukawas()
The method to compute the Yukawa matrices.
Definition: StandardModel.cpp:371
EWSMcache::Xt_GF
double Xt_GF() const
The quantity with the coupling .
Definition: EWSMcache.h:343
StandardModel::getIntegrand_sigmaWithISR_mu130
double getIntegrand_sigmaWithISR_mu130(double x) const
Definition: StandardModel.cpp:6359
StandardModel::AFB
virtual double AFB(const Particle f) const
Definition: StandardModel.cpp:1216
EWSMApproximateFormulae::sin2thetaEff_l_full
double sin2thetaEff_l_full() const
with the full two-loop EW corrections.
Definition: EWSMApproximateFormulae.cpp:1531
StandardModel::getIntegrand_dsigmaBox_down167
double getIntegrand_dsigmaBox_down167(double x) const
Definition: StandardModel.cpp:7250
StandardModel::computeCKM
virtual void computeCKM()
The method to compute the CKM matrix.
Definition: StandardModel.cpp:351
StandardModel::getIntegrand_sigmaWithISR_strange172
double getIntegrand_sigmaWithISR_strange172(double x) const
Definition: StandardModel.cpp:6822
StandardModel::getIntegrand_dsigmaBox_mu189
double getIntegrand_dsigmaBox_mu189(double x) const
Definition: StandardModel.cpp:7004
StandardModel::iterationNo
int iterationNo
Definition: StandardModel.h:3170
StandardModel::getIntegrand_dsigmaBox_mu161
double getIntegrand_dsigmaBox_mu161(double x) const
Definition: StandardModel.cpp:6986
StandardModel::getIntegrand_sigmaWithISR_down200
double getIntegrand_sigmaWithISR_down200(double x) const
Definition: StandardModel.cpp:6676
Flavour::setSMupdated
void setSMupdated() const
a member used for the caching for .
Definition: Flavour.cpp:302
StandardModel::Update
virtual bool Update(const std::map< std::string, double > &DPars)
The update method for StandardModel.
Definition: StandardModel.cpp:209
StandardModel::Weak
Definition: StandardModel.h:483
StandardModel::RVq
double RVq(const QCD::quark q) const
The radiator factor associated with the final-state QED and QCD corrections to the the vector-current...
Definition: StandardModel.cpp:2142
EWSMThreeLoopEW
A class for three-loop corrections to the EW precision observables.
Definition: EWSMThreeLoopEW.h:35
StandardModel::getIntegrand_sigmaWithISR_bottom196
double getIntegrand_sigmaWithISR_bottom196(double x) const
Definition: StandardModel.cpp:6934
StandardModel::alpha31
double alpha31
Definition: StandardModel.h:2577
StandardModel::gV_f
virtual gslpp::complex gV_f(const Particle f) const
The effective leptonic neutral-current vector coupling in the SM.
Definition: StandardModel.cpp:1568
StandardModel::getIntegrand_sigmaWithISR_up205
double getIntegrand_sigmaWithISR_up205(double x) const
Definition: StandardModel.cpp:6600
StandardModel::Mw_tree
virtual double Mw_tree() const
The tree-level mass of the boson, .
Definition: StandardModel.cpp:951
StandardModel::s02
double s02() const
The square of the sine of the weak mixing angle defined without weak radiative corrections.
Definition: StandardModel.cpp:956
Flavour::setFlag
bool setFlag(const std::string name, const bool value)
Definition: Flavour.cpp:27
StandardModel::Yn
gslpp::matrix< gslpp::complex > Yn
The Yukawa matrix of the neutrinos.
Definition: StandardModel.h:2547
StandardModel::requireCKM
bool requireCKM
An internal flag to control whether the CKM matrix has to be recomputed.
Definition: StandardModel.h:2819
StandardModel::getIntegrand_AFBnumeratorWithISR_bottom167
double getIntegrand_AFBnumeratorWithISR_bottom167(double x) const
Definition: StandardModel.cpp:7837
StandardModel::getIntegrand_dsigmaBox_strange172
double getIntegrand_dsigmaBox_strange172(double x) const
Definition: StandardModel.cpp:7434
StandardModel::getIntegrand_AFBnumeratorWithISR_tau161
double getIntegrand_AFBnumeratorWithISR_tau161(double x) const
Definition: StandardModel.cpp:7685
StandardModel::getIntegrand_dsigmaBox_mu196
double getIntegrand_dsigmaBox_mu196(double x) const
Definition: StandardModel.cpp:7016
EWSMOneLoopEW::DeltaR_rem
double DeltaR_rem(const double Mw_i) const
Remainder contribution of to , denoted as .
Definition: EWSMOneLoopEW.cpp:49
StandardModel::useKappaZ_f_cache
bool useKappaZ_f_cache[12]
Definition: StandardModel.h:3155
StandardModel::getIntegrand_dsigmaBox_mu130
double getIntegrand_dsigmaBox_mu130(double x) const
Definition: StandardModel.cpp:6974
EWSMThreeLoopEW::deltaRho_rem_f
gslpp::complex deltaRho_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
Definition: EWSMThreeLoopEW.cpp:114
StandardModel::getIntegrand_dsigmaBox_bottom202
double getIntegrand_dsigmaBox_bottom202(double x) const
Definition: StandardModel.cpp:7558
Mw
An observable class for the -boson mass.
Definition: Mw.h:22
StandardModel::R_inv
virtual double R_inv() const
The ratio of the invisible and leptonic (electron) decay widths of the boson, .
Definition: StandardModel.cpp:1541
EWSMThreeLoopEW::deltaKappa_rem_f
gslpp::complex deltaKappa_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
Definition: EWSMThreeLoopEW.cpp:120
StandardModel::LEP2sigmaHadron
virtual double LEP2sigmaHadron(const double s) const
Definition: StandardModel.cpp:3346
EWSMThreeLoopQCD::DeltaR_rem
double DeltaR_rem(const double Mw_i) const
Remainder contribution of to , denoted as .
Definition: EWSMThreeLoopQCD.cpp:48
StandardModel::SMFlavour
Flavour SMFlavour
An object of type Flavour.
Definition: StandardModel.h:2823
StandardModel::getIntegrand_AFBnumeratorWithISR_charm200
double getIntegrand_AFBnumeratorWithISR_charm200(double x) const
Definition: StandardModel.cpp:7804
QCD::STRANGE
Definition: QCD.h:327
StandardModel::sin2thetaEff
virtual double sin2thetaEff(const Particle f) const
The effective weak mixing angle for at the the -mass scale.
Definition: StandardModel.cpp:1221
EWSMTwoFermionsLEP2.h
StandardModel::AlsWithInit
double AlsWithInit(double mu, double alsi, double mu_i, orders order, bool qed_flag) const
Definition: StandardModel.cpp:689
StandardModel::getIntegrand_sigmaWithISR_bottom133
double getIntegrand_sigmaWithISR_bottom133(double x) const
Definition: StandardModel.cpp:6886
StandardModel::getIntegrand_AFBnumeratorWithISR_bottom133
double getIntegrand_AFBnumeratorWithISR_bottom133(double x) const
Definition: StandardModel.cpp:7831
CKM::getV_us
gslpp::complex getV_us() const
A member for returning the value of the CKM element .
Definition: CKM.h:201
StandardModel::bSigmaForR
bool bSigmaForR
Definition: StandardModel.h:2833
QCD::requireYu
bool requireYu
Switch for generating the Yukawa couplings to the up-type quarks.
Definition: QCD.h:921
StandardModel::getIntegrand_AFBnumeratorWithISR_charm133
double getIntegrand_AFBnumeratorWithISR_charm133(double x) const
Definition: StandardModel.cpp:7762
StandardModel::getIntegrand_dsigmaBox_charm202
double getIntegrand_dsigmaBox_charm202(double x) const
Definition: StandardModel.cpp:7380
gslpp::complex::real
const double & real() const
Definition: gslpp_complex.cpp:53
StandardModel::getIntegrand_sigmaWithISR_bottom207
double getIntegrand_sigmaWithISR_bottom207(double x) const
Definition: StandardModel.cpp:6958
QCD::FullOrder
orders FullOrder(orders order) const
Return the FULLORDER enum corresponding to order.
Definition: QCD.cpp:603
StandardModel::als_cache
double als_cache[11][CacheSize]
Cache for .
Definition: StandardModel.h:3175
StandardModel::getIntegrand_sigmaWithISR_bottom136
double getIntegrand_sigmaWithISR_bottom136(double x) const
Definition: StandardModel.cpp:6892
CKM::getV_ub
gslpp::complex getV_ub() const
A member for returning the value of the CKM element .
Definition: CKM.h:210
StandardModel::getIntegrand_sigmaWithISR_tau130
double getIntegrand_sigmaWithISR_tau130(double x) const
Definition: StandardModel.cpp:6432
StandardModel::getIntegrand_AFBnumeratorWithISR_tau196
double getIntegrand_AFBnumeratorWithISR_tau196(double x) const
Definition: StandardModel.cpp:7715
EWSMThreeLoopEW2QCD::deltaKappa_rem_f
gslpp::complex deltaKappa_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
Definition: EWSMThreeLoopEW2QCD.cpp:74
StandardModel::getIntegrand_sigmaWithISR_down196
double getIntegrand_sigmaWithISR_down196(double x) const
Definition: StandardModel.cpp:6670
StandardModel::leptons
Particle leptons[6]
An array of Particle objects for the leptons.
Definition: StandardModel.h:2540
StandardModel::getIntegrand_sigmaWithISR_charm205
double getIntegrand_sigmaWithISR_charm205(double x) const
Definition: StandardModel.cpp:6776
StandardModel::getIntegrand_dsigmaBox_strange183
double getIntegrand_dsigmaBox_strange183(double x) const
Definition: StandardModel.cpp:7440
StandardModel::flagLEP2
bool flagLEP2[NUMofLEP2RCs]
Definition: StandardModel.h:2831
StandardModel::getIntegrand_sigmaWithISR_down207
double getIntegrand_sigmaWithISR_down207(double x) const
Definition: StandardModel.cpp:6694
StandardModel::getIntegrand_dsigmaBox_strange192
double getIntegrand_dsigmaBox_strange192(double x) const
Definition: StandardModel.cpp:7452
StandardModel::getIntegrand_AFBnumeratorWithISR_charm167
double getIntegrand_AFBnumeratorWithISR_charm167(double x) const
Definition: StandardModel.cpp:7768
StandardModel::GammaZ
virtual double GammaZ(const Particle f) const
The partial decay width, .
Definition: StandardModel.cpp:1227
StandardModel::getIntegrand_sigmaWithISR_bottom161
double getIntegrand_sigmaWithISR_bottom161(double x) const
Definition: StandardModel.cpp:6898
Particle::getIndex
int getIndex() const
Definition: Particle.h:160
StandardModel::getIntegrand_sigmaWithISR_bottom189
double getIntegrand_sigmaWithISR_bottom189(double x) const
Definition: StandardModel.cpp:6922
StandardModel::etab
double etab
The CKM parameter in the Wolfenstein parameterization.
Definition: StandardModel.h:2571
StandardModel::getIntegrand_sigmaWithISR_bottom130
double getIntegrand_sigmaWithISR_bottom130(double x) const
Definition: StandardModel.cpp:6880
CKM::getA
double getA() const
A member for returning the value of the Wolfenstein parameter .
Definition: CKM.h:87
StandardModel::LEP2AFBmu
virtual double LEP2AFBmu(const double s) const
Definition: StandardModel.cpp:5294
EWSMTwoLoopEW.h
Model::isModelSUSY
bool isModelSUSY() const
Definition: Model.h:182
QCD::setFlagStr
virtual bool setFlagStr(const std::string name, const std::string value)
A method to set a flag of QCD.
Definition: QCD.cpp:393
StandardModel::requireYe
bool requireYe
An internal flag to control whether the charged-lepton Yukawa matrix has to be recomputed.
Definition: StandardModel.h:2820
Model::name
std::string name
The name of the model.
Definition: Model.h:275
StandardModel::Mz
double Mz
The mass of the boson in GeV.
Definition: StandardModel.h:2554
QCD::AboveTh
double AboveTh(const double mu) const
The active flavour threshold above the scale as defined in QCD::Thresholds().
Definition: QCD.cpp:420
StandardModel::getIntegrand_AFBnumeratorWithISR_bottom205
double getIntegrand_AFBnumeratorWithISR_bottom205(double x) const
Definition: StandardModel.cpp:7885
StandardModel::myPMNS
PMNS myPMNS
Definition: StandardModel.h:2542
StandardModel::kappaZ_f_cache
gslpp::complex kappaZ_f_cache[12]
A cache of the value of .
Definition: StandardModel.h:3149
QCD::NfThresholdCorrections
double NfThresholdCorrections(double mu, double M, double als, int nf, orders order) const
Threshold corrections in matching with from eq. (34) of hep-ph/0512060.
Definition: QCD.cpp:583
QCD::Nc
double Nc
The number of colours.
Definition: QCD.h:932
StandardModel::getIntegrand_dsigmaBox_up183
double getIntegrand_dsigmaBox_up183(double x) const
Definition: StandardModel.cpp:7175
StandardModel::N_nu
virtual double N_nu() const
The number of neutrinos obtained indirectly from the measurements at the Z pole, .
Definition: StandardModel.cpp:1547
StandardModel::getIntegrand_dsigmaBox_down205
double getIntegrand_dsigmaBox_down205(double x) const
Definition: StandardModel.cpp:7298
StandardModel::AFB_NoISR_l
double AFB_NoISR_l(const QCD::lepton l_flavor, const double s) const
Definition: StandardModel.cpp:6325
StandardModel::getIntegrand_sigmaWithISR_charm136
double getIntegrand_sigmaWithISR_charm136(double x) const
Definition: StandardModel.cpp:6716
StandardModel::EW2QCD1
Three-loop of .
Definition: StandardModel.h:500
StandardModel::getIntegrand_sigmaWithISR_strange196
double getIntegrand_sigmaWithISR_strange196(double x) const
Definition: StandardModel.cpp:6846
StandardModel::getIntegrand_AFBnumeratorWithISR_bottom200
double getIntegrand_AFBnumeratorWithISR_bottom200(double x) const
Definition: StandardModel.cpp:7873
NLO
Definition: OrderScheme.h:34
EWSMTwoFermionsLEP2::AFB_l
double AFB_l(const QCD::lepton l, const double mf, const double s, const double Mw, const double GammaZ, const bool bWeak) const
Definition: EWSMTwoFermionsLEP2.cpp:1238
StandardModel::FlagCacheInStandardModel
bool FlagCacheInStandardModel
A flag for caching (true by default).
Definition: StandardModel.h:3142
StandardModel::ComputeDeltaRho
void ComputeDeltaRho(const double Mw_i, double DeltaRho[orders_EW_size]) const
A method to collect computed via subclasses.
Definition: StandardModel.cpp:1050
StandardModel::getIntegrand_AFBnumeratorWithISR_charm196
double getIntegrand_AFBnumeratorWithISR_charm196(double x) const
Definition: StandardModel.cpp:7798
StandardModel::getIntegrand_sigmaWithISR_up207
double getIntegrand_sigmaWithISR_up207(double x) const
Definition: StandardModel.cpp:6606
EWSMTwoFermionsLEP2::QED_FSR_forSigma
double QED_FSR_forSigma(const double s, const double Qf) const
Definition: EWSMTwoFermionsLEP2.cpp:1280
StandardModel::Mw
virtual double Mw() const
The SM prediction for the -boson mass in the on-shell scheme, .
Definition: StandardModel.cpp:970
StandardModel::myApproximateFormulae
EWSMApproximateFormulae * myApproximateFormulae
A pointer to an object of type EWSMApproximateFormulae.
Definition: StandardModel.h:3124
StandardModel::Mzbar
double Mzbar() const
The -boson mass in the complex-pole/fixed-width scheme.
Definition: StandardModel.cpp:1111
convertToGslFunction
gsl_function convertToGslFunction(const F &f)
Definition: gslpp_function_adapter.h:24
StandardModel::getIntegrand_sigmaWithISR_down130
double getIntegrand_sigmaWithISR_down130(double x) const
Definition: StandardModel.cpp:6615
StandardModel::getIntegrand_dsigmaBox_strange205
double getIntegrand_dsigmaBox_strange205(double x) const
Definition: StandardModel.cpp:7476
StandardModel::getIntegrand_sigmaWithISR_mu189
double getIntegrand_sigmaWithISR_mu189(double x) const
Definition: StandardModel.cpp:6389
StandardModel::Integrand_dsigmaBox_q
double Integrand_dsigmaBox_q(double cosTheta, const QCD::quark q_flavor, const double s) const
Definition: StandardModel.cpp:7127
StandardModel::LEP2sigmaBottom
virtual double LEP2sigmaBottom(const double s) const
Definition: StandardModel.cpp:3135
StandardModel::gA_f
virtual gslpp::complex gA_f(const Particle f) const
The effective leptonic neutral-current axial-vector coupling in the SM.
Definition: StandardModel.cpp:1574
EWSMTwoLoopQCD::deltaKappa_rem_f
gslpp::complex deltaKappa_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
Definition: EWSMTwoLoopQCD.cpp:58
StandardModel::requireYn
bool requireYn
An internal flag to control whether the neutrino Yukawa matrix has to be recomputed.
Definition: StandardModel.h:2821
StandardModel::LEP2sigmaMu
virtual double LEP2sigmaMu(const double s) const
Definition: StandardModel.cpp:2425
StandardModel::delR0b
double delR0b
The theoretical uncertainty in , denoted as .
Definition: StandardModel.h:2567
StandardModel::getIntegrand_dsigmaBox_mu207
double getIntegrand_dsigmaBox_mu207(double x) const
Definition: StandardModel.cpp:7040
StandardModel::sigma_NoISR_q
double sigma_NoISR_q(const QCD::quark q_flavor, const double s) const
Definition: StandardModel.cpp:6310
StandardModel::LEP2Rcharm
virtual double LEP2Rcharm(const double s) const
Definition: StandardModel.cpp:6286
StandardModel::getIntegrand_AFBnumeratorWithISR_charm207
double getIntegrand_AFBnumeratorWithISR_charm207(double x) const
Definition: StandardModel.cpp:7822
StandardModel::Vus
double Vus
used as an input for FlagWolfenstein = FALSE
Definition: StandardModel.h:2572
StandardModel::GeVminus2_to_nb
static const double GeVminus2_to_nb
Definition: StandardModel.h:514
StandardModel::myThreeLoopEW2QCD
EWSMThreeLoopEW2QCD * myThreeLoopEW2QCD
A pointer to an object of type EWSMThreeLoopEW2QCD.
Definition: StandardModel.h:3122
StandardModel::useGammaW_cache
bool useGammaW_cache
Definition: StandardModel.h:3153
StandardModel::delSin2th_l
double delSin2th_l
The theoretical uncertainty in , denoted as .
Definition: StandardModel.h:2560
QCD::CA
double CA
Definition: QCD.h:933
StandardModel::getIntegrand_dsigmaBox_charm161
double getIntegrand_dsigmaBox_charm161(double x) const
Definition: StandardModel.cpp:7332
StandardModel::getIntegrand_AFBnumeratorWithISR_mu183
double getIntegrand_AFBnumeratorWithISR_mu183(double x) const
Definition: StandardModel.cpp:7624
StandardModel::QEDFSR
Definition: StandardModel.h:486
StandardModel::getIntegrand_dsigmaBox_down196
double getIntegrand_dsigmaBox_down196(double x) const
Definition: StandardModel.cpp:7280
QCD::AlsWithInit
double AlsWithInit(const double mu, const double alsi, const double mu_i, const orders order) const
Computes the running strong coupling from in the scheme, where it is forbidden to across a flavour...
Definition: QCD.cpp:498
StandardModel::SMparamsForEWPO_cache
double SMparamsForEWPO_cache[NumSMParamsForEWPO]
Definition: StandardModel.h:3143
QCD::CF
double CF
Definition: QCD.h:933
StandardModel::getIntegrand_dsigmaBox_charm130
double getIntegrand_dsigmaBox_charm130(double x) const
Definition: StandardModel.cpp:7314
StandardModel::getIntegrand_sigmaWithISR_tau192
double getIntegrand_sigmaWithISR_tau192(double x) const
Definition: StandardModel.cpp:6468
StandardModel::getIntegrand_AFBnumeratorWithISR_bottom202
double getIntegrand_AFBnumeratorWithISR_bottom202(double x) const
Definition: StandardModel.cpp:7879
EWSMcache::alsMt
double alsMt() const
The strong coupling at NNLO.
Definition: EWSMcache.h:378
FULLNNLO
Definition: OrderScheme.h:38
StandardModel::Gamma_Z
virtual double Gamma_Z() const
The total decay width of the boson, .
Definition: StandardModel.cpp:1344
StandardModel::deltaRhoZ_f
virtual gslpp::complex deltaRhoZ_f(const Particle f) const
Flavour non-universal vertex corrections to , denoted by .
Definition: StandardModel.cpp:1730
StandardModel::getIntegrand_sigmaWithISR_charm167
double getIntegrand_sigmaWithISR_charm167(double x) const
Definition: StandardModel.cpp:6728
StandardModel::delsigma0H
double delsigma0H
The theoretical uncertainty in , denoted as in nb.
Definition: StandardModel.h:2564
StandardModel::setFlagCacheInStandardModel
void setFlagCacheInStandardModel(bool FlagCacheInStandardModel)
A set method to change the model flag CacheInStandardModel of StandardModel.
Definition: StandardModel.h:698
QCD::DOWN
Definition: QCD.h:325
StandardModel::getIntegrand_dsigmaBox_tau192
double getIntegrand_dsigmaBox_tau192(double x) const
Definition: StandardModel.cpp:7086
StandardModel::CheckFlags
virtual bool CheckFlags() const
A method to check the sanity of the set of model flags.
Definition: StandardModel.cpp:475
StandardModel::kappaZ_f
virtual gslpp::complex kappaZ_f(const Particle f) const
The effective leptonic neutral-current coupling in the SM.
Definition: StandardModel.cpp:1644
StandardModel::getIntegrand_sigmaWithISR_strange207
double getIntegrand_sigmaWithISR_strange207(double x) const
Definition: StandardModel.cpp:6870
StandardModel::getIntegrand_dsigmaBox_bottom161
double getIntegrand_dsigmaBox_bottom161(double x) const
Definition: StandardModel.cpp:7510
QCD::setFlag
virtual bool setFlag(const std::string name, const bool value)
A method to set a flag of QCD.
Definition: QCD.cpp:380
StandardModel::getIntegrand_dsigmaBox_down192
double getIntegrand_dsigmaBox_down192(double x) const
Definition: StandardModel.cpp:7274
StandardModel::muw
double muw
A matching scale around the weak scale in GeV.
Definition: StandardModel.h:2576
StandardModel::getIntegrand_AFBnumeratorWithISR_tau202
double getIntegrand_AFBnumeratorWithISR_tau202(double x) const
Definition: StandardModel.cpp:7727
StandardModel::getIntegrand_sigmaWithISR_mu136
double getIntegrand_sigmaWithISR_mu136(double x) const
Definition: StandardModel.cpp:6365
StandardModel::getIntegrand_dsigmaBox_down202
double getIntegrand_dsigmaBox_down202(double x) const
Definition: StandardModel.cpp:7292
StandardModel::Yd
gslpp::matrix< gslpp::complex > Yd
The Yukawa matrix of the down-type quarks.
Definition: StandardModel.h:2546
StandardModel::EW1QCD2
Three-loop of .
Definition: StandardModel.h:498
StandardModel::getIntegrand_sigmaWithISR_down202
double getIntegrand_sigmaWithISR_down202(double x) const
Definition: StandardModel.cpp:6682
FULLNLO
Definition: OrderScheme.h:37
StandardModel::error
double error
Definition: StandardModel.h:3165
EWSMTwoLoopQCD.h
EWSMcache::v_f
double v_f(const Particle f, const double Mw_i) const
The tree-level vector coupling for , denoted as .
Definition: EWSMcache.h:290
StandardModel::FlagWolfenstein
bool FlagWolfenstein
A boolean for the model flag Wolfenstein.
Definition: StandardModel.h:3135
EWSMTwoFermionsLEP2::QCD_FSR_forAFB
double QCD_FSR_forAFB(const QCD::quark q, const double mf, const double s) const
Definition: EWSMTwoFermionsLEP2.cpp:1273
StandardModel::getIntegrand_sigmaWithISR_up133
double getIntegrand_sigmaWithISR_up133(double x) const
Definition: StandardModel.cpp:6534
QCD::NEUTRINO_1
Definition: QCD.h:311
StandardModel::checkSMparamsForEWPO
bool checkSMparamsForEWPO()
A method to check whether the parameters relevant to the EWPO are updated.
Definition: StandardModel.cpp:484
QCD::quarks
Particle quarks[6]
The vector of all SM quarks.
Definition: QCD.h:934
StandardModel::WeakBox
Definition: StandardModel.h:484
Model::setModelInitialized
void setModelInitialized(bool ModelInitialized)
A set method to fix the failure or success of the initialization of the model.
Definition: Model.h:145
StandardModel::getIntegrand_dsigmaBox_tau200
double getIntegrand_dsigmaBox_tau200(double x) const
Definition: StandardModel.cpp:7098
EWSMTwoLoopQCD::DeltaAlpha_t
double DeltaAlpha_t(const double s) const
Top-quark contribution of to the electromagnetic coupling , denoted as .
Definition: EWSMTwoLoopQCD.cpp:25
StandardModel::getIntegrand_sigmaWithISR_tau136
double getIntegrand_sigmaWithISR_tau136(double x) const
Definition: StandardModel.cpp:6438
StandardModel::orders_EW_size
The size of this enum.
Definition: StandardModel.h:502
StandardModel::myTwoLoopQCD
EWSMTwoLoopQCD * myTwoLoopQCD
A pointer to an object of type EWSMTwoLoopQCD.
Definition: StandardModel.h:3119
StandardModel::Vcb
double Vcb
used as an input for FlagWolfenstein = FALSE
Definition: StandardModel.h:2573
StandardModel::getIntegrand_sigmaWithISR_down205
double getIntegrand_sigmaWithISR_down205(double x) const
Definition: StandardModel.cpp:6688
StandardModel::getIntegrand_AFBnumeratorWithISR_bottom183
double getIntegrand_AFBnumeratorWithISR_bottom183(double x) const
Definition: StandardModel.cpp:7849
EWSMTwoLoopEW::DeltaR_rem
double DeltaR_rem(const double Mw_i) const
Remainder contribution of to , denoted as .
Definition: EWSMTwoLoopEW.cpp:81
QCD::MU
Definition: QCD.h:314
StandardModel::delSin2th_b
double delSin2th_b
The theoretical uncertainty in , denoted as .
Definition: StandardModel.h:2562
QCD::mut
double mut
The threshold between six- and five-flavour theory in GeV.
Definition: QCD.h:928
StandardModel::getIntegrand_sigmaWithISR_mu161
double getIntegrand_sigmaWithISR_mu161(double x) const
Definition: StandardModel.cpp:6371
StandardModel::getIntegrand_dsigmaBox_tau207
double getIntegrand_dsigmaBox_tau207(double x) const
Definition: StandardModel.cpp:7116
StandardModel::getIntegrand_sigmaWithISR_strange167
double getIntegrand_sigmaWithISR_strange167(double x) const
Definition: StandardModel.cpp:6816
QCD::lepton
lepton
An enum type for leptons.
Definition: QCD.h:310
EWSMThreeLoopQCD::deltaRho_rem_f
gslpp::complex deltaRho_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
Definition: EWSMThreeLoopQCD.cpp:66
StandardModel::delta
double delta
Definition: StandardModel.h:2577
StandardModel::getIntegrand_AFBnumeratorWithISR_tau205
double getIntegrand_AFBnumeratorWithISR_tau205(double x) const
Definition: StandardModel.cpp:7733
Particle::getName
std::string getName() const
Definition: Particle.h:147
StandardModel::getIntegrand_sigmaWithISR_up161
double getIntegrand_sigmaWithISR_up161(double x) const
Definition: StandardModel.cpp:6546
StandardModel::alpha21
double alpha21
Definition: StandardModel.h:2577
EWSMApproximateFormulae::sin2thetaEff
double sin2thetaEff(const Particle p) const
Definition: EWSMApproximateFormulae.h:68
StandardModel::FlagNoApproximateGammaZ
bool FlagNoApproximateGammaZ
A boolean for the model flag NoApproximateGammaZ.
Definition: StandardModel.h:3131
StandardModel::getIntegrand_dsigmaBox_bottom172
double getIntegrand_dsigmaBox_bottom172(double x) const
Definition: StandardModel.cpp:7522
StandardModel::getLeptons
Particle getLeptons(const QCD::lepton p) const
A get method to retrieve the member object of a lepton.
Definition: StandardModel.h:712
StandardModel::orders_EW
orders_EW
An enumerated type representing perturbative orders of radiative corrections to EW precision observab...
Definition: StandardModel.h:495