a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
EWSMThreeLoopEW.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 <stdexcept>
9#include "EWSMThreeLoopEW.h"
10
12: cache(cache_i)
13{
14}
15
16
18
19double EWSMThreeLoopEW::DeltaAlpha_l(const double s) const
20{
21 double log_l[3];
22 if (s == cache.getSM().getMz() * cache.getSM().getMz()) {
23 log_l[0] = 2.0 * cache.logMZtoME();
24 log_l[1] = 2.0 * cache.logMZtoMMU();
25 log_l[2] = 2.0 * cache.logMZtoMTAU();
26 } else {
30 }
31
32 double threeLoop[3];
33 for (int i = 0; i < 3; i++) {
34 threeLoop[i] = -121.0 / 48.0 + (-5.0 + 8.0 * cache.getLog2()) * cache.getZeta2()
35 - 99.0 / 16.0 * cache.getZeta3() + 10.0 * cache.getZeta5()
36 + log_l[i] / 8.0;
37 for (int j = 0; j < 3; j++) {
38 if (i > j) { /* Pi^{(2)}_l */
39 threeLoop[i] += -116.0 / 27.0 + 4.0 / 3.0 * cache.getZeta2()
40 + 38.0 / 9.0 * cache.getZeta3() + 14.0 / 9.0 * log_l[i]
41 + (5.0 / 18.0 - 4.0 / 3.0 * cache.getZeta3()) * log_l[j]
42 + log_l[i] * log_l[i] / 6.0
43 - log_l[i] * log_l[j] / 3.0;
44 threeLoop[i] += M_PI * M_PI / 6.0;
45 } else if (i == j) { /* Pi^{(2)}_F */
46 threeLoop[i] += -307.0 / 216.0 - 8.0 / 3.0 * cache.getZeta2()
47 + 545.0 / 144.0 * cache.getZeta3()
48 + (11.0 / 6.0 - 4.0 / 3.0 * cache.getZeta3()) * log_l[i]
49 - log_l[i] * log_l[i] / 6.0;
50 threeLoop[i] += M_PI * M_PI / 6.0;
51 } else { /* Pi^{(2)}_h */
52 threeLoop[i] += -37.0 / 6.0 + 38.0 / 9.0 * cache.getZeta3()
53 + (11.0 / 6.0 - 4.0 / 3.0 * cache.getZeta3()) * log_l[j]
54 - log_l[j] * log_l[j] / 6.0;
55 threeLoop[i] += M_PI * M_PI / 6.0;
56 }
57 }
58 threeLoop[i] /= -4.0;
59 }
60
61 return ( pow(cache.getSM().getAle() / M_PI, 3.0)
62 *(threeLoop[0] + threeLoop[1] + threeLoop[2]));
63}
64
65double EWSMThreeLoopEW::DeltaAlpha_t(const double s) const
66{
67 return (0.0);
68}
69
70double EWSMThreeLoopEW::DeltaRho(const double Mw_i) const
71{
72 double Mw = Mw_i;
73 double mh = cache.getSM().getMHl();
74 double Mt = cache.getSM().getMtpole();
75 double DeltaRho;
76 if (mh == 0.0) {
77 DeltaRho = 3.0 * (68.0 + 729.0 * cache.getS2() + 36.0 * cache.getD3()
78 + 96.0 * cache.getZeta2() * cache.getLog2()
79 + 6.0 * cache.getZeta2() - 612.0 * cache.getZeta3()
80 + 324.0 * cache.getZeta4() - 72.0 * cache.getB4()
81 + 3.0 * (-6572.0 / 15.0 - 4374.0 / 5.0 * cache.getS2()
82 + 1472.0 / 15.0 * cache.getZeta2()
83 + 440.0 * cache.getZeta3()));
84 } else if (mh > 0.0 && mh <= 2.5 * Mt) {
85 double delta = mh / Mt - 1.0;
86 DeltaRho = 95.92 - 111.98 * delta + 8.099 * delta * delta
87 + 9.36 * pow(delta, 3.0) + 7.27 * pow(delta, 4.0)
88 - 15.60 * pow(delta, 5.0);
89 } else if (mh > 2.5 * Mt) {
90 double Y = 4.0 * pow(Mt / mh, 2.0);
91 double logY = 2.0 * (cache.getLog2() + cache.logMTOPtoMH());
92 double logY2 = logY*logY;
93 double logY3 = logY2*logY;
94 DeltaRho = 1.0 / Y * (-3.17 - 83.25 * logY)
95 - 189.93 - 231.48 * logY - 142.06 * logY2 + 2.75 * logY3
96 + Y * (-332.34 + 77.71 * logY - 68.67 * logY2 + 51.79 * logY3)
97 + Y * Y * (227.55 - 510.55 * logY + 87.77 * logY2 + 6.41 * logY3)
98 + Y * Y * Y * (-58.40 - 329.18 * logY + 20.42 * logY2 + 14.54 * logY3)
99 + Y * Y * Y * Y * (-36.14 - 381.88 * logY + 18.63 * logY2 + 15.04 * logY3)
100 + Y * Y * Y * Y * Y * (-39.08 - 416.36 * logY + 13.76 * logY2 + 17.19 * logY3);
101 } else {
102 throw std::runtime_error("Higgs mass is out of range in EWSMThreeLoopEW::DeltaRho()");
103
104 }
105 DeltaRho *= pow(cache.Xt_alpha(Mw), 3.0);
106 return DeltaRho;
107}
108
109double EWSMThreeLoopEW::DeltaR_rem(const double Mw_i) const
110{
111 return (0.0);
112}
113
114gslpp::complex EWSMThreeLoopEW::deltaRho_rem_f(const Particle f, const double Mw_i) const
115{
116 if (f.is("TOP")) return ( gslpp::complex(0.0, 0.0, false));
117 return ( gslpp::complex(0.0, 0.0, false));
118}
119
120gslpp::complex EWSMThreeLoopEW::deltaKappa_rem_f(const Particle f, const double Mw_i) const
121{
122 if (f.is("TOP")) return ( gslpp::complex(0.0, 0.0, false));
123 return ( gslpp::complex(0.0, 0.0, false));
124}
125
126
127
128
double DeltaRho(const double Mw_i) const
Leading three-loop contribution of to , denoted as .
double DeltaAlpha_t(const double s) const
Top-quark contribution of to the electromagnetic coupling , denoted as .
double DeltaAlpha_l(const double s) const
Leptonic contribution of to the electromagnetic coupling , denoted as .
EWSMThreeLoopEW(const EWSMcache &cache_i)
Constructor.
gslpp::complex deltaKappa_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
const EWSMcache & cache
A reference to an object of type EWSMcache.
double DeltaR_rem(const double Mw_i) const
Remainder contribution of to , denoted as .
gslpp::complex deltaRho_rem_f(const Particle f, const double Mw_i) const
Remainder contribution of to the effective couplings , denoted as .
A class for cache variables used in computing radiative corrections to the EW precision observables.
Definition: EWSMcache.h:40
double Xt_alpha(const double Mw_i) const
The quantity with the coupling .
Definition: EWSMcache.h:355
double logMTOPtoMH() const
A cache method.
Definition: EWSMcache.cpp:134
double getD3() const
A get method to access the constant .
Definition: EWSMcache.h:197
double logMZtoMTAU() const
A cache method.
Definition: EWSMcache.cpp:106
double getZeta4() const
A get method to access the value of the zeta function .
Definition: EWSMcache.h:155
double logMZtoME() const
A cache method.
Definition: EWSMcache.cpp:78
double logMZtoMMU() const
A cache method.
Definition: EWSMcache.cpp:92
double getZeta5() const
A get method to access the value of the zeta function .
Definition: EWSMcache.h:164
double getB4() const
A get method to access the constant .
Definition: EWSMcache.h:214
double getS2() const
A get method to access the constant .
Definition: EWSMcache.h:180
double getZeta3() const
A get method to access the value of the zeta function .
Definition: EWSMcache.h:146
double getLog2() const
A get method to access the constant .
Definition: EWSMcache.h:223
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
double getZeta2() const
A get method to access the value of the zeta function .
Definition: EWSMcache.h:137
const StandardModel & getSM() const
Definition: EWSMcache.h:56
An observable class for the -boson mass.
Definition: Mw.h:22
A class for particles.
Definition: Particle.h:26
bool is(std::string name_i) const
Definition: Particle.cpp:23
const double getMtpole() const
A get method to access the pole mass of the top quark.
Definition: QCD.h:600
@ MU
Definition: QCD.h:314
@ ELECTRON
Definition: QCD.h:312
@ TAU
Definition: QCD.h:316
const Particle & getLeptons(const QCD::lepton p) const
A get method to retrieve the member object of a lepton.
const double getMz() const
A get method to access the mass of the boson .
virtual const double getMHl() const
A get method to retrieve the Higgs mass .
const double getAle() const
A get method to retrieve the fine-structure constant .
Test Observable.