a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
EWSMThreeLoopQCD.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 "EWSMThreeLoopQCD.h"
9 
11 : cache(cache_i)
12 {
13 }
14 
15 
17 
18 double EWSMThreeLoopQCD::DeltaAlpha_l(const double s) const
19 {
20  return (0.0);
21 }
22 
23 double EWSMThreeLoopQCD::DeltaAlpha_t(const double s) const
24 {
25  double xt = s / cache.getSM().getMtpole() / cache.getSM().getMtpole();
26  double log_t, als;
27  if (s == cache.getSM().getMz() * cache.getSM().getMz()) {
28  log_t = 2.0 * cache.logMZtoMTOP();
29  als = cache.getSM().getAlsMz();
30  } else {
31  double mu = sqrt(s);
32  log_t = log(s / pow(cache.mf(cache.getSM().getQuarks(QCD::TOP), mu), 2.0));
33  als = cache.Als(sqrt(s), FULLNNLO);
34  }
35  double tmp = ((28.220 + 9.702 * log_t)
36  + xt * (6.924 + 1.594 * log_t))
37  * pow(als / M_PI, 2.0);
38  tmp *= -4.0 / 45.0 * cache.getSM().getAle() / M_PI*xt;
39  return tmp;
40 }
41 
42 double EWSMThreeLoopQCD::DeltaRho(const double Mw_i) const
43 {
44  double Mw = Mw_i;
45  return ( 3.0 * cache.Xt_alpha(Mw) * pow(cache.alsMt() / M_PI, 2.0) * deltaQCD_3(Mw));
46 }
47 
48 double EWSMThreeLoopQCD::DeltaR_rem(const double Mw_i) const
49 {
50  double Mw = Mw_i;
51  double sW2 = cache.getSM().sW2(Mw);
52  double cW2 = cache.getSM().cW2(Mw);
53 
54  /* Logarithm */
55  double log_cW2 = cache.log_cW2(Mw);
56 
57  // O(alpha_s) correction to Delta r^{ud} of O(alpha alpha_s).
58  double DeltaR;
59  DeltaR = -log_cW2;
60  DeltaR *= (cW2 - sW2) / 4.0 / sW2 / sW2;
61  DeltaR *= cache.getSM().getAle() * cache.getSM().getAlsMz() / M_PI / M_PI;
62  DeltaR *= 1.4097 * cache.getSM().getAlsMz() / M_PI;
63  return DeltaR;
64 }
65 
66 gslpp::complex EWSMThreeLoopQCD::deltaRho_rem_f(const Particle f, const double Mw_i) const
67 {
68  if (f.is("TOP")) return ( gslpp::complex(0.0, 0.0, false));
69  return ( gslpp::complex(0.0, 0.0, false));
70 }
71 
73 {
74  if (f.is("TOP"))
75  return ( gslpp::complex(0.0, 0.0, false));
76  else {
77  double Mw = Mw_i;
78  return ( -3.0 * cache.Xt_alpha(Mw) * cache.getSM().cW2(Mw) / cache.getSM().sW2(Mw)
79  * pow(cache.alsMt() / M_PI, 2.0)
81  }
82 }
83 
84 
86 
87 double EWSMThreeLoopQCD::deltaQCD_3(const double Mw_i) const
88 {
89  double dQCD3;
90  double lZ = 2.0 * cache.logMZtoMTOP();
91  double Mw = Mw_i;
92  double sW2 = cache.getSM().sW2(Mw);
93  double log2 = cache.getLog2();
94  double zeta2 = cache.getZeta2();
95  double zeta3 = cache.getZeta3();
96  double zeta4 = cache.getZeta4();
97  double S2 = cache.getS2(), D3 = cache.getD3(), B4 = cache.getB4();
98  double MZtoMT = cache.getSM().getMz() / cache.getSM().getMtpole();
99  double nf = 6.0;
100  dQCD3 = 157.0 / 648.0 - 3313.0 / 162.0 * zeta2 - 308.0 / 27.0 * zeta3
101  + 143.0 / 18.0 * zeta4 - 4.0 / 3.0 * zeta2 * log2
102  + 441.0 / 8.0 * S2 - B4 / 9.0 - D3 / 18.0
103  - (1.0 / 18.0 - 13.0 / 9.0 * zeta2 + 4.0 / 9.0 * zeta3) * nf
104  + pow(MZtoMT, 2.0)
105  *(-17.224 + 0.08829 * lZ + 0.4722 * lZ * lZ
106  + (22.6367 + 1.2527 * lZ - 0.8519 * lZ * lZ) * sW2)
107  + pow(MZtoMT, 4.0)
108  *(-7.7781 - 0.07226 * lZ + 0.004938 * lZ * lZ
109  + (21.497 + 0.05794 * lZ - 0.006584 * lZ * lZ) * sW2
110  - 21.0799 * sW2 * sW2);
111  return dQCD3;
112 }
113 
115 {
116  gslpp::complex dQCDk3;
117  double lZ = 2.0 * cache.logMZtoMTOP();
118  double Mw = Mw_i;
119  double sW2 = cache.getSM().sW2(Mw);
120  double MZtoMT = cache.getSM().getMz() / cache.getSM().getMtpole();
121  dQCDk3.real() = -deltaQCD_3(Mw)
122  + pow(MZtoMT, 2.0)
123  *((22.6367 + 1.2527 * lZ - 0.8519 * lZ * lZ) * sW2
124  + (-11.3184 - 0.6263 * lZ + 0.4259 * lZ * lZ) * sW2)
125  + pow(MZtoMT, 4.0)
126  *((21.497 + 0.05794 * lZ - 0.006584 * lZ * lZ) * sW2
127  + (-16.0186 - 0.02897 * lZ + 0.003292 * lZ * lZ) * sW2
128  - 21.0799 * sW2 * sW2 + 10.54 * sW2 * sW2);
129  dQCDk3.imag() = pow(MZtoMT, 2.0)
130  *((-1.968 + 2.676 * lZ) * sW2
131  + (2.6235 - 3.5682 * lZ) * sW2 * sW2)
132  + pow(MZtoMT, 4.0)
133  *((-0.09102 + 0.02069 * lZ) * sW2
134  + (0.1214 - 0.02758 * lZ) * sW2 * sW2);
135  return dQCDk3;
136 }
137 
138 
139 
140 
141 
142 
143 
StandardModel::cW2
virtual double cW2(const double Mw_i) const
The square of the cosine of the weak mixing angle in the on-shell scheme, denoted as .
Definition: StandardModel.cpp:989
EWSMThreeLoopQCD.h
Particle::is
bool is(std::string name_i) const
Definition: Particle.cpp:23
Particle
A class for particles.
Definition: Particle.h:26
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
EWSMThreeLoopQCD::DeltaAlpha_l
double DeltaAlpha_l(const double s) const
Leptonic contribution of to the electromagnetic coupling , denoted as .
Definition: EWSMThreeLoopQCD.cpp:18
StandardModel::getAlsMz
double getAlsMz() const
A get method to access the value of .
Definition: StandardModel.h:727
EWSMThreeLoopQCD::EWSMThreeLoopQCD
EWSMThreeLoopQCD(const EWSMcache &cache_i)
Constructor.
Definition: EWSMThreeLoopQCD.cpp:10
EWSMcache::getZeta3
double getZeta3() const
A get method to access the value of the zeta function .
Definition: EWSMcache.h:146
EWSMThreeLoopQCD::deltaQCD_kappa3
gslpp::complex deltaQCD_kappa3(const double Mw_i) const
The function .
Definition: EWSMThreeLoopQCD.cpp:114
EWSMThreeLoopQCD::cache
const EWSMcache & cache
A reference to an object of type EWSMcache.
Definition: EWSMThreeLoopQCD.h:153
gslpp::complex
A class for defining operations on and functions of complex numbers.
Definition: gslpp_complex.h:35
gslpp::log
complex log(const complex &z)
Definition: gslpp_complex.cpp:342
EWSMcache::getZeta4
double getZeta4() const
A get method to access the value of the zeta function .
Definition: EWSMcache.h:155
EWSMcache::getB4
double getB4() const
A get method to access the constant .
Definition: EWSMcache.h:214
StandardModel::sW2
virtual double sW2(const double Mw_i) const
The square of the sine of the weak mixing angle in the on-shell scheme, denoted as .
Definition: StandardModel.cpp:1000
EWSMcache::getSM
const StandardModel & getSM() const
Definition: EWSMcache.h:56
gslpp::complex::imag
const double & imag() const
Definition: gslpp_complex.cpp:59
QCD::TOP
Definition: QCD.h:328
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
gslpp::pow
complex pow(const complex &z1, const complex &z2)
Definition: gslpp_complex.cpp:395
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
EWSMcache
A class for cache variables used in computing radiative corrections to the EW precision observables.
Definition: EWSMcache.h:40
QCD::getMtpole
double getMtpole() const
A get method to access the pole mass of the top quark.
Definition: QCD.h:588
EWSMThreeLoopQCD::DeltaAlpha_t
double DeltaAlpha_t(const double s) const
Top-quark contribution of to the electromagnetic coupling , denoted as .
Definition: EWSMThreeLoopQCD.cpp:23
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
EWSMcache::Als
double Als(const double mu, const orders order) const
The strong coupling .
Definition: EWSMcache.h:366
EWSMcache::logMZtoMTOP
double logMZtoMTOP() const
A cache method.
Definition: EWSMcache.cpp:112
EWSMcache::getZeta2
double getZeta2() const
A get method to access the value of the zeta function .
Definition: EWSMcache.h:137
EWSMcache::log_cW2
double log_cW2(const double Mw_i) const
A cache method.
Definition: EWSMcache.cpp:140
StandardModel::getMz
double getMz() const
A get method to access the mass of the boson .
Definition: StandardModel.h:718
Mw
An observable class for the -boson mass.
Definition: Mw.h:22
EWSMThreeLoopQCD::DeltaR_rem
double DeltaR_rem(const double Mw_i) const
Remainder contribution of to , denoted as .
Definition: EWSMThreeLoopQCD.cpp:48
gslpp::complex::real
const double & real() const
Definition: gslpp_complex.cpp:53
EWSMcache::getS2
double getS2() const
A get method to access the constant .
Definition: EWSMcache.h:180
EWSMcache::getD3
double getD3() const
A get method to access the constant .
Definition: EWSMcache.h:197
EWSMThreeLoopQCD::deltaQCD_3
double deltaQCD_3(const double Mw_i) const
The function .
Definition: EWSMThreeLoopQCD.cpp:87
EWSMcache::alsMt
double alsMt() const
The strong coupling at NNLO.
Definition: EWSMcache.h:378
FULLNNLO
Definition: OrderScheme.h:38
EWSMcache::getLog2
double getLog2() const
A get method to access the constant .
Definition: EWSMcache.h:223
EWSMcache::Xt_alpha
double Xt_alpha(const double Mw_i) const
The quantity with the coupling .
Definition: EWSMcache.h:355
StandardModel::getAle
double getAle() const
A get method to retrieve the fine-structure constant .
Definition: StandardModel.h:745
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