a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
EvolDF2 Class Reference

#include <EvolDF2.h>

+ Inheritance diagram for EvolDF2:

Detailed Description

Definition at line 15 of file EvolDF2.h.

Public Member Functions

gslpp::matrix< double > AnomalousDimension (orders order, unsigned int nf, int basis=0) const
 ADM in the basis used in Ciuchini et.al. hep-ph/9711402 (basis = 0, default) or in the basis (QVLL, QLR, QSLL) used in Buras et.al. hep-ph/0005183 (basis = 1) More...
 
gslpp::matrix< double > & Df2Evol (double mu, double M, orders order, schemes scheme=NDR)
 
double etabS0 (double mu) const
 Buras et al, hep-ph/9512380. More...
 
double etacc (double mu) const
 Buras et al, hep-ph/9512380. More...
 
double etact (double mu) const
 Buras et al, hep-ph/9512380. More...
 
double etatt (double mu) const
 Buras et al, hep-ph/9512380. More...
 
 EvolDF2 (unsigned int dim_i, schemes scheme, orders order, const StandardModel &model)
 constructor More...
 
virtual ~EvolDF2 ()
 destructor More...
 
- Public Member Functions inherited from RGEvolutor
gslpp::matrix< double > * Evol (orders order)
 Evolution matrix set at a fixed order of QCD coupling. More...
 
gslpp::matrix< double > * Evol (orders_qed order_qed)
 Evolution matrix set at a fixed order of Electroweak coupling. More...
 
gslpp::matrix< double > ** getEvol () const
 
double getM () const
 Retrieve the upper scale of the Wilson Coefficients. More...
 
 RGEvolutor (unsigned int dim, schemes scheme, orders order)
 constructor More...
 
 RGEvolutor (unsigned int dim, schemes scheme, orders order, orders_qed order_qed)
 constructor More...
 
void setEvol (const gslpp::matrix< double > &m, orders order_i)
 
void setEvol (const gslpp::matrix< double > &m, orders_qed order_qed_i)
 
void setEvol (unsigned int i, unsigned int j, double x, orders order_i)
 
void setEvol (unsigned int i, unsigned int j, double x, orders order_i, orders_qed order_qed)
 
void setM (double M)
 Sets the upper scale for the running of the Wilson Coefficients. More...
 
void setMu (double mu)
 Sets the lower scale for the running of the Wilson Coefficients. More...
 
void setScales (double mu, double M)
 Sets the upper and lower scale for the running of the Wilson Coefficients. More...
 
virtual ~RGEvolutor ()
 destructor More...
 
- Public Member Functions inherited from WilsonTemplate< gslpp::matrix< double > >
double getMu () const
 
orders getOrder () const
 
orders_qed getOrder_qed () const
 
schemes getScheme () const
 
unsigned int getSize () const
 
virtual void resetCoefficient ()
 
void setScheme (schemes scheme)
 
 WilsonTemplate (const WilsonTemplate< gslpp::matrix< double > > &orig)
 
 WilsonTemplate (unsigned int dim, schemes scheme_i, orders order_i, orders_qed order_qed_i=NO_QED)
 
virtual ~WilsonTemplate ()
 

Private Member Functions

void Df2Evol (double mu, double M, double nf, schemes scheme)
 

Private Attributes

double a [5]
 
double alsMZ_cache
 
double b [5][5][5]
 
double c [3][5][5][5]
 
double d [3][5][5][5]
 
unsigned int dim
 
const StandardModelmodel
 
double Mz_cache
 

Additional Inherited Members

- Protected Member Functions inherited from WilsonTemplate< gslpp::matrix< double > >
gslpp::matrix< double > * Elem (orders order) const
 
gslpp::matrix< double > * Elem (orders_qed order_qed) const
 
void setElem (const gslpp::matrix< double > &v, orders order_i)
 
void setElem (const gslpp::matrix< double > &v, orders_qed order_qed_i)
 
- Protected Attributes inherited from RGEvolutor
double M
 
- Protected Attributes inherited from WilsonTemplate< gslpp::matrix< double > >
gslpp::matrix< double > * elem [MAXORDER_QED+1]
 
double mu
 
orders order
 
orders_qed order_qed
 
schemes scheme
 
unsigned int size
 

Constructor & Destructor Documentation

◆ EvolDF2()

EvolDF2::EvolDF2 ( unsigned int  dim_i,
schemes  scheme,
orders  order,
const StandardModel model 
)

constructor

Parameters
dim
scheme
order
model

Definition at line 12 of file EvolDF2.cpp.

13 : RGEvolutor(dim_i, scheme, order),
14  model(model),
15  dim(dim_i)
16 {
17  //double Nc = model.getNc();
18  int basis = 0; //0: Gabbiani, 1: Buras
19  gslpp::matrix<double> g0t(AnomalousDimension(LO, 3, basis).transpose());
20 
23 
24  g0t.eigensystem(vv, ee);
25 
26  gslpp::matrix<double> v(vv.real());
27  gslpp::vector<double> e(ee.real());
28 
30  for (unsigned int k = 0; k < dim; k++) {
31  a[k] = e(k);
32 // std::cout << "a[" << k << "] = " << a[k] << std::endl;
33  for (unsigned int j = 0; j < dim; j++) {
34  for (unsigned int i = 0; i < dim; i++) {
35  b[i][j][k] = v(i, k) * vi(k, j);
36 // if (b[i][j][k] != 0.)
37 // std::cout << "b[" << i << "][" << j << "][" << k << "] = " << b[i][j][k] << std::endl;
38  }
39  }
40  }
41 
43  for (int l = 0; l < 3; l++) {
44  gslpp::matrix<double> gg = vi * (AnomalousDimension(NLO, 6 - l, basis).transpose()) * v;
45  double b0 = model.Beta0(6 - l);
46  for (unsigned int i = 0; i < dim; i++)
47  for (unsigned int j = 0; j < dim; j++)
48  h(i, j) = (i == j) * e(i) * model.Beta1(6 - l) / (2. * b0 * b0) -
49  gg(i, j) / (2. * b0 + e(i) - e(j));
50  gslpp::matrix<double> j = v * h * vi;
51  gslpp::matrix<double> jv = j*v;
52  gslpp::matrix<double> vij = vi*j;
53  for (unsigned int i = 0; i < dim; i++)
54  for (unsigned int j = 0; j < dim; j++)
55  for (unsigned int k = 0; k < dim; k++) {
56  c[l][i][j][k] = jv(i, k) * vi(k, j);
57 // if (c[l][i][j][k] != 0.)
58 // std::cout << "c[" << l << "][" << i << "][" << j << "][" << k << "] = " << c[l][i][j][k] << std::endl;
59  d[l][i][j][k] = -v(i, k) * vij(k, j);
60 // if (d[l][i][j][k] != 0.)
61 // std::cout << "d[" << l << "][" << i << "][" << j << "][" << k << "] = " << d[l][i][j][k] << std::endl;
62  }
63  }
64 }

◆ ~EvolDF2()

EvolDF2::~EvolDF2 ( )
virtual

destructor

Definition at line 66 of file EvolDF2.cpp.

67 {}

Member Function Documentation

◆ AnomalousDimension()

gslpp::matrix< double > EvolDF2::AnomalousDimension ( orders  order,
unsigned int  nf,
int  basis = 0 
) const

ADM in the basis used in Ciuchini et.al. hep-ph/9711402 (basis = 0, default) or in the basis (QVLL, QLR, QSLL) used in Buras et.al. hep-ph/0005183 (basis = 1)

Parameters
order
nfnumber of active flavours
basisbasis identifier (0: ciuchini, 1: buras)
Returns
Anomalous dimension for DeltaF=2 processes

Definition at line 69 of file EvolDF2.cpp.

70 {
71  gslpp::matrix<double> ad(dim, dim, 0.);
72  double Nc = model.getNc();
73  switch (basis) {
74  case 0:
75  switch (order) {
76  case LO:
77  ad(0, 0) = (6. * Nc - 6.) / Nc;
78  ad(1, 1) = -(6. * Nc * Nc - 8. * Nc - 2.) / Nc;
79  ad(1, 2) = (4. * Nc - 8.) / Nc;
80  ad(2, 1) = (4. * Nc * Nc - 4. * Nc - 8.) / Nc;
81  ad(2, 2) = (2. * Nc * Nc + 4. * Nc + 2.) / Nc;
82  ad(3, 3) = -(6. * Nc * Nc - 6.) / Nc;
83  ad(4, 3) = -6.;
84  ad(4, 4) = 6. / Nc;
85  break;
86  case NLO:
87 
88  // MSbar-NDR scheme with evanescent operators of Buras, Misiak & Urban
89 
90  if (!(nf == 3 || nf == 4 || nf == 5 || nf == 6))
91  throw std::runtime_error("EvolDF2::AnomalousDimension(): wrong number of flavours");
92  ad(0, 0) = -(-1. + Nc)*(-171. + 19. * Nc * Nc + Nc * (63. - 4. * nf)) / (6. * Nc * Nc);
93  ad(1, 1) = (-1251. - 609. * Nc * Nc * Nc * Nc + Nc * (432. - 52. * nf) - 8. * Nc * Nc * (-71 + 2. * nf) +
94  20. * Nc * Nc * Nc * (32. + 3. * nf)) / (18. * Nc * Nc);
95  ad(1, 2) = -(2. * (-2. + Nc)*(-72. + Nc * Nc + 2. * Nc * (63. + nf))) / (9. * Nc * Nc);
96  ad(2, 1) = 2. * (119. * Nc * Nc * Nc + 8. * (-9. + 5. * nf) + 2. * Nc * (-125. + 7. * nf) -
97  Nc * Nc * (101. + 14. * nf)) / (9. * Nc);
98  ad(2, 2) = (477. + 343. * Nc * Nc * Nc * Nc + Nc * Nc * Nc * (380. - 52. * nf) - 4. * Nc * (-36. + nf) -
99  8. * Nc * Nc * (16. + 13. * nf)) / (18. * Nc * Nc);
100  ad(3, 3) = (45. + 479. * Nc * Nc - 203. * Nc * Nc * Nc * Nc - 44. * Nc * nf + 20. * Nc * Nc * Nc * nf) /
101  (6. * Nc * Nc);
102  ad(3, 4) = -(18. / Nc)-(71. * Nc) / 2. + 4. * nf;
103  ad(4, 3) = 3. / Nc - (100. * Nc) / 3. + (22. * nf) / 3.;
104  ad(4, 4) = (45. + 137. * Nc * Nc - 44. * Nc * nf) / (6. * Nc * Nc);
105  break;
106  default:
107  throw std::runtime_error("EvolDF2::AnomalousDimension(): order not implemented");
108  }
109  break;
110  case 1:
111  switch (order) {
112  case LO:
113  ad(0, 0) = 6. - 6. / Nc;
114  ad(1, 1) = 6. / Nc;
115  ad(1, 2) = 12.;
116  ad(2, 2) = 6. / Nc - 6. * Nc;
117  ad(3, 3) = 6. + 6. / Nc - 6. * Nc;
118  ad(3, 4) = 1. / 2. - 1. / Nc;
119  ad(4, 3) = -24. - 48. / Nc;
120  ad(4, 4) = 6. - 2. / Nc + 2. * Nc;
121  break;
122  case NLO:
123 
124  // MSbar-NDR scheme with evanescent operators of Buras, Misiak & Urban
125 
126  if (!(nf == 3 || nf == 4 || nf == 5 || nf == 6))
127  throw std::runtime_error("EvolDF2::AnomalousDimension(): wrong number of flavours");
128  ad(0, 0) = -22. / 3. - 57. / (2. * Nc * Nc) + 39. / Nc - (19. * Nc) / 6. + (2. * nf) / 3. - (2. * nf) / 3. / Nc;
129  ad(1, 1) = 137. / 6. + 15. / (2 * Nc * Nc) - (22 * nf) / (3 * Nc);
130  ad(1, 2) = -(6. / Nc) + (200. * Nc) / 3. - (44 * nf) / 3.;
131  ad(2, 1) = 9. / Nc + (71. * Nc) / 4. - 2. * nf;
132  ad(2, 2) = 479. / 6. + 15. / (2. * Nc * Nc) - (203. * Nc * Nc) / 6. - (22. * nf) / (3. * Nc) + (10. * Nc * nf) / 3.;
133  ad(3, 3) = 136. / 3. - 107. / (2. * Nc * Nc) - 12. / Nc + (107. * Nc) / 3. - (203. * Nc * Nc) / 6. - (2. * nf) / 3. - (10. * nf) / (3. * Nc) + (10. * Nc * nf) / 3.;
134  ad(3, 4) = -31. / 9. - 4. / (Nc * Nc) + 9. / Nc - Nc / 36. - nf / 18. + nf / (9 * Nc);
135  ad(4, 3) = -704. / 3. - 320. / (Nc * Nc) - 208. / Nc - (364. * Nc) / 3. + (136. * nf) / 3. + (176. * nf) / (3. * Nc);
136  ad(4, 4) = -188. / 9. + 21. / (2. * Nc * Nc) + 44. / Nc + 21. * Nc + (343. * Nc * Nc) / 18. - 6. * nf + (2. * nf) / (9. * Nc) - (26. * Nc * nf) / 9.;
137  break;
138  default:
139  throw std::runtime_error("EvolDF2::AnomalousDimension(): order not implemented");
140  }
141  break;
142  default:
143  throw std::runtime_error("EvolDF2::AnomalousDimension(): basis not implemented");
144  }
145  return (ad);
146 }

◆ Df2Evol() [1/2]

void EvolDF2::Df2Evol ( double  mu,
double  M,
double  nf,
schemes  scheme 
)
private

Definition at line 193 of file EvolDF2.cpp.

194 {
195 
196  gslpp::matrix<double> resLO(dim, 0.), resNLO(dim, 0.), resNNLO(dim, 0.);
197 
198  int l = 6 - (int) nf;
199  double alsM = model.Als(M, FULLNLO) / 4. / M_PI;
200  double alsmu = model.Als(mu, FULLNLO) / 4. / M_PI;
201 
202  double eta = alsM / alsmu;
203 
204  for (unsigned int k = 0; k < dim; k++) {
205  double etap = pow(eta, a[k] / 2. / model.Beta0(nf));
206  for (unsigned int i = 0; i < dim; i++)
207  for (unsigned int j = 0; j < dim; j++) {
208  resNNLO(i, j) += 0.;
209  resNLO(i, j) += c[l][i][j][k] * etap * alsmu;
210  resNLO(i, j) += d[l][i][j][k] * etap * alsM;
211  resLO(i, j) += b[i][j][k] * etap;
212  }
213  }
214  switch (order) {
215  case NNLO:
216  *elem[NNLO] = 0.; // Marco can implement it if he wishes to!
217  case NLO:
218  *elem[NLO] = (*elem[LO]) * resNLO + (*elem[NLO]) * resLO;
219  case LO:
220  *elem[LO] = (*elem[LO]) * resLO;
221  break;
222  case FULLNNLO:
223  case FULLNLO:
224  default:
225  throw std::runtime_error("Error in EvolDF2::Df2Evol()");
226  }
227 }

◆ Df2Evol() [2/2]

gslpp::matrix< double > & EvolDF2::Df2Evol ( double  mu,
double  M,
orders  order,
schemes  scheme = NDR 
)
Parameters
mulow energy scale
Mmatching scale
order
scheme
Returns
the Wilson coefficients evolved from the scale M to the scale mu

Definition at line 148 of file EvolDF2.cpp.

149 {
150  switch (scheme) {
151  case NDR:
152  break;
153  case LRI:
154  case HV:
155  default:
156  std::stringstream out;
157  out << scheme;
158  throw std::runtime_error("EvolDF2::Df2Evol(): scheme " + out.str() + " not implemented ");
159  }
160 
161  double alsMZ = model.getAlsMz();
162  double Mz = model.getMz();
163  if(alsMZ == alsMZ_cache && Mz == Mz_cache) {
164  if (mu == this->mu && M == this->M && scheme == this->scheme)
165  return (*Evol(order));
166  }
167  alsMZ_cache = alsMZ;
168  Mz_cache = Mz;
169 
170  if (M < mu) {
171  std::stringstream out;
172  out << "M = " << M << " < mu = " << mu;
173  throw out.str();
174  }
175 
176  setScales(mu, M); // also assign evol to identity
177  if (M != mu) {
178  double m_down = mu;
179  double m_up = model.AboveTh(m_down);
180  double nf = model.Nf(m_down);
181 
182  while (m_up < M) {
183  Df2Evol(m_down, m_up, nf, scheme);
184  m_down = m_up;
185  m_up = model.AboveTh(m_down);
186  nf += 1.;
187  }
188  Df2Evol(m_down, M, nf, scheme);
189  }
190  return (*Evol(order));
191 }

◆ etabS0()

double EvolDF2::etabS0 ( double  mu) const

Buras et al, hep-ph/9512380.

Parameters
mu
Returns
the NLO corrective factor for the top-top contribution to the bottom oscillations times the LO matching

Definition at line 419 of file EvolDF2.cpp.

420 {
421  double N = model.getNc();
422  double x = model.getMatching().x_t(model.getMut());
423  double x2 = x * x;
424  double x3 = x2 * x;
425  double x4 = x3 * x;
426  double xm2 = (1 - x) * (1 - x);
427  double xm3 = xm2 * (1 - x);
428  //double xm4 = xm3 * (1 - x);
429  double logx = log(x);
430  //double Li2 = gsl_sf_dilog(1-x);
431 
432  double S0tt = (4. * x - 11. * x2 + x3) / 4. / xm2 -
433  3. * x3 / (2. * xm3) * logx;
434 
435  double Bt = 5. * (N - 1.) / 2. / N + 3. * (N * N - 1.) / 2. / N;
436 
437  double gamma0 = 6. * (N - 1.) / N;
438 
439  double gamma1[4] = {0.}, J[4] = {0.};
440 
441  for (int i = 0; i < 4; ++i) {
442  gamma1[i] = (N - 1.) / (2. * N) * (-21. + 57. / N - 19. / 3. * N + 4. / 3. * (i + 3.));
443  J[i] = gamma0 * model.Beta1(3 + i) / 2. / model.Beta0(3 + i) / model.Beta0(3 + i)
444  - gamma1[i] / 2. / model.Beta0(3 + i);
445  }
446 
447  double b = (4. - 22. * x + 15. * x2 + 2. * x3 + x4 - 18. * x2 * logx)
448  / ((-1. + x) * (-4. + 15. * x - 12. * x2 + x3 + 6. * x2 * logx));
449 
450  double AlsT = model.Als(model.getMut());
451  double Alsm = model.Als(m);
452  double eta =
453  pow(AlsT / Alsm, 6. / 23.) *
454  (1.
455  + AlsT / 4. / M_PI * (model.getMatching().S1(x) / S0tt
456  + Bt - J[2] + gamma0 * log(model.getMut() / model.getMuw())
457  + 6 * (N * N - 1) / N * log(model.getMut() / model.getMuw()) * b)
458  + Alsm / 4. / M_PI * J[2]);
459  return (eta * S0tt);
460 }

◆ etacc()

double EvolDF2::etacc ( double  mu) const

Buras et al, hep-ph/9512380.

Parameters
mu
Returns
the NLO corrective factor for the charm-charm contribution to the kaon oscillations

Definition at line 229 of file EvolDF2.cpp.

230 {
231  double N = model.getNc();
232  double N2 = N * N;
233  double gamma0[2] = {0.}, gamma1[2][4] = {
234  {0.}
235  }, d[2][4] = {
236  {0.}
237  },
238  J[2][4] = {
239  {0.}
240  }, dd[2][2][4] = {
241  {
242  {0.}
243  }
244  }, JJ[2][2][4] = {
245  {
246  {0.}
247  }
248  },
249  B[2] = {0.}; // 0 = + ; 1 = - ;
250  double tau[2][2] = {
251  {0.}
252  }, K[2][2] = {
253  {0.}
254  }, beta[2][2] = {
255  {0.}
256  };
257 
258  gamma0[0] = 6. * (N - 1.) / N;
259  gamma0[1] = -6. * (N + 1.) / N;
260 
261  gamma1[0][0] = ((N - 1.) / (2. * N)) * (-21. + 57. / N - 19. / 3. * N + 4. / 3. * 3.);
262  gamma1[1][0] = ((N + 1.) / (2. * N)) * (-21. - 57. / N + 19. / 3. * N - 4. / 3. * 3.);
263  gamma1[0][1] = ((N - 1.) / (2. * N)) * (-21. + 57. / N - 19. / 3. * N + 4. / 3. * 4.);
264  gamma1[1][1] = ((N + 1.) / (2. * N)) * (-21. - 57. / N + 19. / 3. * N - 4. / 3. * 4.);
265  gamma1[0][2] = ((N - 1.) / (2. * N)) * (-21. + 57. / N - 19. / 3. * N + 4. / 3. * 5.);
266  gamma1[1][2] = ((N + 1.) / (2. * N)) * (-21. - 57. / N + 19. / 3. * N - 4. / 3. * 5.);
267  gamma1[0][3] = ((N - 1.) / (2. * N)) * (-21. + 57. / N - 19. / 3. * N + 4. / 3. * 6.);
268  gamma1[1][3] = ((N + 1.) / (2. * N)) * (-21. - 57. / N + 19. / 3. * N - 4. / 3. * 6.);
269 
270  for (int i = 0; i < 2; i++) { // 0 = + ; 1 = - ;
271  for (int j = 0; j < 4; j++) { // j = nf - 3;
272  d[i][j] = gamma0[i] / 2. / model.Beta0(j + 3);
273  J[i][j] = d[i][j] / model.Beta0(j + 3) * model.Beta1(j + 3) -
274  gamma1[i][j] / 2. / model.Beta0(j + 3);
275  }
276 
277  }
278 
279  for (int i = 0; i < 2; i++) { // 0 = + ; 1 = - ;
280  for (int j = 0; j < 2; j++) { // 0 = + ; 1 = - ;
281  for (int k = 0; k < 4; k++) { // k = nf - 3;
282  dd[i][j][k] = d[i][k] + d[j][k];
283  JJ[i][j][k] = J[i][k] + J[j][k];
284  }
285  }
286  }
287 
288  tau[0][0] = (N + 3.) / 4.;
289  tau[1][0] = -(N - 1.) / 4.;
290  tau[0][1] = tau[1][0];
291  tau[1][1] = (N - 1.) / 4.;
292 
293  K[0][0] = 3. * (N - 1.) * tau[0][0];
294  K[1][0] = 3. * (N + 1.) * tau[0][1];
295  K[0][1] = K[1][0];
296  K[1][1] = 3. * (N + 3.) * tau[1][1];
297 
298  beta[0][0] = (1. - N) * (M_PI * M_PI * (N2 - 6.) / (12. * N) + 3. * (-N2 + 2. * N + 13.) / (4. * N));
299  beta[1][0] = (1. - N) * (M_PI * M_PI * (-N2 + 2. * N - 2.) / (12. * N) + (3. * N2 + 13.) / (4. * N));
300  beta[0][1] = beta[1][0];
301  beta[1][1] = (1. - N) * (M_PI * M_PI * (N2 - 4. * N + 2) / (12. * N) - (3. * N2 + 10. * N + 13.) / (4. * N));
302 
303  B[0] = 11. * (N - 1.) / (2. * N);
304  B[1] = -11. * (N + 1.) / (2. * N);
305 
306  double eta = 0.;
307  double as_mb__as_muc = model.Als(model.getMub(), FULLNLO) / model.Als(model.getMuc(), FULLNLO);
308  double as_muw__as_mb = model.Als(model.getMuw(), FULLNLO) / model.Als(model.getMub(), FULLNLO);
309  double as_muc__4pi = model.Als(model.getMuc(), FULLNLO) / 4. / M_PI;
310  double log_muc__mc = log(model.getMuc() / model.getQuarks(QCD::CHARM).getMass());
311  double as_mb__4pi = model.Als(model.getMub(), FULLNLO) / 4. / M_PI;
312  double as_muw__4pi = model.Als(model.getMuw(), FULLNLO) / 4. / M_PI;
313 
314 
315  for (int i = 0; i < 2; i++) {
316  for (int j = 0; j < 2; j++) {
317  eta += pow(as_mb__as_muc, dd[i][j][1]) *
318  pow(as_muw__as_mb, dd[i][j][2]) *
319  (tau[i][j] + as_muc__4pi * (2. * K[i][j] *
320  log_muc__mc + tau[i][j] * (JJ[i][j][1] - J[0][0]) + beta[i][j]) +
321  tau[i][j]*(as_mb__4pi * (JJ[i][j][2] - JJ[i][j][1]) +
322  as_muw__4pi * (B[i] + B[j] - JJ[i][j][2])));
323  }
324  }
325 
326  eta *= pow(model.Als(model.getMuc()), d[0][0]);
327  eta *= pow(model.Als(mu, FULLNLO), -2. / 9.);
328 
329  return (eta * (1. + model.Als(mu, FULLNLO) / 4. / M_PI * J[0][0]));
330 }

◆ etact()

double EvolDF2::etact ( double  mu) const

Buras et al, hep-ph/9512380.

Parameters
mu
Returns
the NLO corrective factor for the charm-top contribution to the kaon oscillations

Definition at line 332 of file EvolDF2.cpp.

333 {
334 
335  //temporary fix waiting for NNLO
336 
337  double K = model.Als4(model.getMuw()) / model.Als4(model.getMuc());
338 #if SUSYFIT_DEBUG & 2
339  std::cout << "K = " << K << std::endl;
340 #endif
341  double Kpp = pow(K, 12. / 25.);
342  double Kpm = pow(K, -6. / 25.);
343  double Kmm = pow(K, -24. / 25.);
344  double K7 = pow(K, 1. / 5.);
346  xc *= xc;
348  xt *= xt;
349 
350  double J3 = 6. * (3. - 1.) / 3. / 2. / model.Beta0(3) / model.Beta0(3) * model.Beta1(3) -
351  ((3. - 1.) / (2. * 3.)) * (-21. + 57. / 3. - 19. + 4.) / 2. / model.Beta0(3);
352 
353 
354  double eta = 0.;
355  double AlsC = model.Als4(model.getMuc());
356 
357  eta = (M_PI / AlsC * (-18. / 7. * Kpp - 12. / 11. * Kpm + 6. / 29. * Kmm + 7716. / 2233. * K7) *
358  (1. - AlsC / (4. * M_PI) * 307. / 162.) + (log(model.getMuc() /
359  model.getQuarks(QCD::CHARM).getMass()) - 0.25) * (3. * Kpp - 2. * Kpm + Kmm) +
360  262497. / 35000. * Kpp - 123. / 625. * Kpm + 1108657. / 1305000. * Kmm - 277133. / 50750. * K7 +
361  K * (-21093. / 8750. * Kpp + 13331. / 13750. * Kpm - 10181. / 18125. * Kmm - 1731104. / 2512125. * K7) +
362  (log(xt) - (3. * xt) / (4. - 4. * xt) - log(xt) * (3. * xt * xt) / (4. * (1. - xt) * (1. - xt)) + 0.5) * K * K7) * xc / (model.getMatching().S0(xc, xt)) * pow(AlsC, 2. / 9.);
363 
364  return (eta * (1. + model.Als(mu, FULLNLO) / 4. / M_PI * J3) * pow(model.Als(mu, FULLNLO), -2. / 9.));
365 }

◆ etatt()

double EvolDF2::etatt ( double  mu) const

Buras et al, hep-ph/9512380.

Parameters
mu
Returns
the NLO corrective factor for the top-top contribution to the kaon oscillations

Definition at line 367 of file EvolDF2.cpp.

368 {
369  double N = model.getNc();
370  double x = model.getMatching().x_t(model.getMut());
371  double x2 = x * x;
372  double x3 = x2 * x;
373  double x4 = x3 * x;
374  double xm2 = (1 - x) * (1 - x);
375  double xm3 = xm2 * (1 - x);
376  //double xm4 = xm3 * (1 - x);
377  double logx = log(x);
378  //double Li2 = gsl_sf_dilog(1-x);
379 
380  double S0tt = (4. * x - 11. * x2 + x3) / 4. / xm2 -
381  3. * x3 / (2. * xm3) * logx;
382 
383  double Bt = 5. * (N - 1.) / 2. / N + 3. * (N * N - 1.) / 2. / N;
384 
385  double gamma0 = 6. * (N - 1.) / N;
386 
387  double gamma1[4] = {0.}, J[4] = {0.};
388 
389  for (int i = 0; i < 4; ++i) {
390  gamma1[i] = (N - 1.) / (2. * N) * (-21. + 57. / N - 19. / 3. * N + 4. / 3. * (i + 3.));
391  J[i] = gamma0 * model.Beta1(3 + i) / 2. / model.Beta0(3 + i) / model.Beta0(3 + i)
392  - gamma1[i] / 2. / model.Beta0(3 + i);
393  }
394 
395  double b = (4. - 22. * x + 15. * x2 + 2. * x3 + x4 - 18. * x2 * logx)
396  / ((-1. + x) * (-4. + 15. * x - 12. * x2 + x3 + 6. * x2 * logx));
397 
398  double AlsT = model.Als(model.getMut());
399  double AlsB = model.Als(model.getMub());
400  double AlsC = model.Als(model.getMuc());
401  double eta = pow(AlsC, 6. / 27.) *
402  pow(AlsB / AlsC, 6. / 25.) *
403  pow(AlsT / AlsB, 6. / 23.) *
404  (1. + AlsC / 4. / M_PI * (J[1] - J[0]) +
405  AlsB / 4. / M_PI * (J[2] - J[1])
406  + AlsT / 4. / M_PI * (model.getMatching().S1(x) / S0tt
407  + Bt - J[2] + gamma0 * log(model.getMut() / model.getMuw())
408  + 6 * (N * N - 1) / N * log(model.getMut() / model.getMuw()) * b));
409  /* double J3 = 6. * (N - 1.) / N * (model.Beta1(3) / 2. / model.Beta0(3) / model.Beta0(3)) -
410  (N - 1.) / (2. * N) * (-21. + 57. / N - 19./3. * N + 4.) / 2. / model.Beta0(3);*/
411 #if SUSYFIT_DEBUG & 2
412  std::cout << "AlsT = " << AlsT << " AlsC = " << AlsC << " AlsB = " << AlsB << " mub = " << model.getMub() << std::endl;
413  std::cout << "etatt = " << eta*(1. + model.Als(m, FULLNLO) / 4. / M_PI * J[0]) * pow(model.Als(m, FULLNLO), -2. / 9.)
414  << " mut = " << model.getMut() << " Muw = " << model.getMuw() << std::endl;
415 #endif
416  return (eta * (1. + model.Als(m, FULLNLO) / 4. / M_PI * J[0]) * pow(model.Als(m, FULLNLO), -2. / 9.));
417 }

Member Data Documentation

◆ a

double EvolDF2::a[5]
private

Definition at line 93 of file EvolDF2.h.

◆ alsMZ_cache

double EvolDF2::alsMZ_cache
private

Definition at line 99 of file EvolDF2.h.

◆ b

double EvolDF2::b[5][5][5]
private

Definition at line 94 of file EvolDF2.h.

◆ c

double EvolDF2::c[3][5][5][5]
private

Definition at line 95 of file EvolDF2.h.

◆ d

double EvolDF2::d[3][5][5][5]
private

Definition at line 96 of file EvolDF2.h.

◆ dim

unsigned int EvolDF2::dim
private

Definition at line 98 of file EvolDF2.h.

◆ model

const StandardModel& EvolDF2::model
private

Definition at line 97 of file EvolDF2.h.

◆ Mz_cache

double EvolDF2::Mz_cache
private

Definition at line 100 of file EvolDF2.h.


The documentation for this class was generated from the following files:
WilsonTemplate< gslpp::matrix< double > >::scheme
schemes scheme
Definition: WilsonTemplate.h:117
gslpp::matrix< double >
A class for constructing and defining operations on real matrices.
Definition: gslpp_matrix_double.h:48
EvolDF2::alsMZ_cache
double alsMZ_cache
Definition: EvolDF2.h:99
QCD::Beta1
double Beta1(const double nf) const
The coefficient for a certain number of flavours .
Definition: QCD.cpp:471
WilsonTemplate< gslpp::matrix< double > >::mu
double mu
Definition: WilsonTemplate.h:116
RGEvolutor::M
double M
Definition: RGEvolutor.h:142
QCD::Nf
double Nf(const double mu) const
The number of active flavour at scale .
Definition: QCD.cpp:438
StandardModel::getAlsMz
double getAlsMz() const
A get method to access the value of .
Definition: StandardModel.h:730
WilsonTemplate< gslpp::matrix< double > >::order
orders order
Definition: WilsonTemplate.h:118
EvolDF2::d
double d[3][5][5][5]
Definition: EvolDF2.h:96
LO
Definition: OrderScheme.h:33
QCD::CHARM
Definition: QCD.h:326
NDR
Definition: OrderScheme.h:21
gslpp::matrix< double >::transpose
matrix< double > transpose() const
Definition: gslpp_matrix_double.cpp:166
gslpp::log
complex log(const complex &z)
Definition: gslpp_complex.cpp:342
EvolDF2::AnomalousDimension
gslpp::matrix< double > AnomalousDimension(orders order, unsigned int nf, int basis=0) const
ADM in the basis used in Ciuchini et.al. hep-ph/9711402 (basis = 0, default) or in the basis (QVLL,...
Definition: EvolDF2.cpp:69
gslpp::matrix< gslpp::complex >
Particle::getMass_scale
double getMass_scale() const
A get method to access the scale at which the particle mass is defined.
Definition: Particle.h:133
EvolDF2::b
double b[5][5][5]
Definition: EvolDF2.h:94
QCD::Beta0
double Beta0(const double nf) const
The coefficient for a certain number of flavours .
Definition: QCD.cpp:466
EvolDF2::a
double a[5]
Definition: EvolDF2.h:93
QCD::Als4
double Als4(const double mu) const
The value of at any scale with the number of flavours .
Definition: QCD.cpp:536
Particle::getMass
const double & getMass() const
A get method to access the particle mass.
Definition: Particle.h:61
gslpp::matrix< double >::inverse
matrix< double > inverse()
Definition: gslpp_matrix_double.cpp:178
EvolDF2::Mz_cache
double Mz_cache
Definition: EvolDF2.h:100
QCD::TOP
Definition: QCD.h:328
gslpp::pow
complex pow(const complex &z1, const complex &z2)
Definition: gslpp_complex.cpp:395
QCD::getMut
double getMut() const
A get method to access the threshold between six- and five-flavour theory in GeV.
Definition: QCD.h:561
QCD::getMuc
double getMuc() const
A get method to access the threshold between four- and three-flavour theory in GeV.
Definition: QCD.h:579
NNLO
Definition: OrderScheme.h:35
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::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
gslpp::vector< double >
A class for constructing and defining operations on real vectors.
Definition: gslpp_vector_double.h:33
LRI
Definition: OrderScheme.h:23
StandardModel::getMz
double getMz() const
A get method to access the mass of the boson .
Definition: StandardModel.h:721
EvolDF2::c
double c[3][5][5][5]
Definition: EvolDF2.h:95
QCD::getMub
double getMub() const
A get method to access the threshold between five- and four-flavour theory in GeV.
Definition: QCD.h:570
RGEvolutor::Evol
gslpp::matrix< double > * Evol(orders order)
Evolution matrix set at a fixed order of QCD coupling.
Definition: RGEvolutor.cpp:103
StandardModel::getMatching
virtual StandardModelMatching & getMatching() const
A get method to access the member reference of type StandardModelMatching.
Definition: StandardModel.h:952
EvolDF2::dim
unsigned int dim
Definition: EvolDF2.h:98
HV
Definition: OrderScheme.h:22
EvolDF2::model
const StandardModel & model
Definition: EvolDF2.h:97
QCD::AboveTh
double AboveTh(const double mu) const
The active flavour threshold above the scale as defined in QCD::Thresholds().
Definition: QCD.cpp:420
QCD::getNc
double getNc() const
A get method to access the number of colours .
Definition: QCD.h:505
RGEvolutor::setScales
void setScales(double mu, double M)
Sets the upper and lower scale for the running of the Wilson Coefficients.
Definition: RGEvolutor.cpp:85
RGEvolutor::RGEvolutor
RGEvolutor(unsigned int dim, schemes scheme, orders order)
constructor
Definition: RGEvolutor.cpp:10
NLO
Definition: OrderScheme.h:34
StandardModel::Mw
virtual double Mw() const
The SM prediction for the -boson mass in the on-shell scheme, .
Definition: StandardModel.cpp:970
EvolDF2::Df2Evol
gslpp::matrix< double > & Df2Evol(double mu, double M, orders order, schemes scheme=NDR)
Definition: EvolDF2.cpp:148
FULLNNLO
Definition: OrderScheme.h:38
QCD::Mrun4
double Mrun4(const double mu_f, const double mu_i, const double m) const
The running of a mass with the number of flavours .
Definition: QCD.cpp:1199
FULLNLO
Definition: OrderScheme.h:37
WilsonTemplate< gslpp::matrix< double > >::elem
gslpp::matrix< double > * elem[MAXORDER_QED+1]
Definition: WilsonTemplate.h:114
gslpp::vector< gslpp::complex >
StandardModel::getMuw
double getMuw() const
A get method to retrieve the matching scale around the weak scale.
Definition: StandardModel.h:938