12 :
RGEvolutor(dim_i, scheme, order, order_qed), model(model), V(dim_i,0.), Vi(dim_i,0.),
13 gs(dim_i,0.), Js(dim_i,0.), ge0(dim_i,0.), K0(dim_i,0.), ge11(dim_i,0.), K11(dim_i,0.),
14 JsK0V(dim_i,0.), ViK0Js(dim_i,0.), Gamma_s0T(dim_i,0.), Gamma_s1T(dim_i,0.),
15 Gamma_eT(dim_i,0.), Gamma_seT(dim_i,0.), JsV(dim_i,0.), ViJs(dim_i,0.), K0V(dim_i,0.),
16 ViK0(dim_i,0.), K11V(dim_i,0.), ViK11(dim_i,0.), ge11sing(dim_i,0.), K11sing(dim_i,0.),
17 K11singV(dim_i,0.), e(dim_i,0.), dim(dim_i)
21 double b0 = 0., b1 = 0.;
24 for(
int L=3; L>-1; L--){
29 if(L == 3){nd = 2; nu = 1;}
30 if(L == 2){nd = 2; nu = 2;}
31 if(L == 1){nd = 3; nu = 2;}
32 if(L == 0){nd = 3; nu = 3;}
43 for(
unsigned int i = 0; i <
dim; i++){
44 a[L][i] =
e(i).real()/2./b0;
45 for (
unsigned int j = 0; j <
dim; j++){
46 for (
unsigned int k = 0; k <
dim; k++){
47 b[L][i][j][k] =
V(i, k).real() *
Vi(k, j).real();
53 for(
unsigned int i = 0; i<
dim ; i++){
54 for(
unsigned int j = 0; j<
dim ; j++){
55 gs.assign( i , j,
gs(i,j)/(1. +
a[L][i] -
a[L][j]));
63 for(
unsigned int i = 0; i<
dim; i++){
64 for(
unsigned int j = 0; j<
dim; j++){
65 for(
unsigned int k = 0; k<
dim; k++){
66 c[L][i][j][k] =
JsV(i, k).real() *
Vi(k, j).real();
67 d[L][i][j][k] = -
V(i, k).real() *
ViJs(k, j).real();
73 for(
unsigned int i = 0; i<
dim ; i++){
74 for(
unsigned int j = 0; j<
dim ; j++){
75 ge0.assign( i , j,
ge0(i,j)/(1. -
a[L][i] +
a[L][j]));
83 for(
unsigned int i = 0; i<
dim; i++){
84 for(
unsigned int j = 0; j<
dim; j++){
85 for(
unsigned int k = 0; k<
dim; k++){
86 m[L][i][j][k] =
K0V(i, k).real() *
Vi(k, j).real();
87 n[L][i][j][k] = -
V(i, k).real() *
ViK0(k, j).real();
95 for(
unsigned int i = 0; i<
dim ; i++){
96 for(
unsigned int j = 0; j<
dim ; j++){
97 if(fabs(
a[L][j]-
a[L][i])> 0.00000000001){
98 ge11.assign( i , j,
ge11(i,j)/( 2. * b0 * (
a[L][j] -
a[L][i])));
102 ge11.assign( i , j, 0.);
114 for(
unsigned int i = 0; i<
dim ; i++){
115 for(
unsigned int j = 0; j<
dim ; j++){
116 for(
unsigned int k = 0; k<
dim ; k++){
117 o[L][i][j][k] =
K11V(i, k).real() *
Vi(k, j).real();
118 p[L][i][j][k] = -
V(i, k).real() *
ViK11(k, j).real();
119 u[L][i][j][k] =
K11singV(i, k).real() *
Vi(k, j).real();
127 for(
unsigned int i = 0; i<
dim ; i++){
128 for(
unsigned int j = 0; j<
dim ; j++){
129 for(
unsigned int k=0; k<
dim; k++){
130 q[L][i][j][k] =
JsK0V(i, k).real() *
Vi(k, j).real();
131 r[L][i][j][k] =
V(i, k).real() *
ViK0Js(k, j).real();
132 s[L][i][j][k] = -
JsV(i, k).real() *
ViK0(k, j).real();
133 t[L][i][j][k] = -
K0V(i, k).real() *
ViJs(k, j).real();
150 unsigned int nf = n_u + n_d;
163 gammaDF1(1,2) = -2./9.;
164 gammaDF1(1,3) = 2./3.;
165 gammaDF1(1,4) = -2./9.;
166 gammaDF1(1,5) = 2./3.;
168 gammaDF1(2,2) = -22./9.;
169 gammaDF1(2,3) = 22./3.;
170 gammaDF1(2,4) = -4./9.;
171 gammaDF1(2,5) = 4./3.;
173 gammaDF1(3,2) = 6.-2./9.*nf;
174 gammaDF1(3,3) = -2.+2./3.*nf;
175 gammaDF1(3,4) = -2./9.*nf;
176 gammaDF1(3,5) = 2./3.*nf;
181 gammaDF1(5,2) = -2./9.*nf;
182 gammaDF1(5,3) = 2./3.*nf;
183 gammaDF1(5,4) = -2./9.*nf;
184 gammaDF1(5,5) = -16.+2./3.*nf;
189 gammaDF1(7,2) = -2./9.*(n_u-n_d/2.);
190 gammaDF1(7,3) = 2./3.*(n_u-n_d/2.);
191 gammaDF1(7,4) = -2./9.*(n_u-n_d/2.);
192 gammaDF1(7,5) = 2./3.*(n_u-n_d/2.);
193 gammaDF1(7,7) = -16.;
195 gammaDF1(8,2) = 2./9.;
196 gammaDF1(8,3) = -2./3.;
197 gammaDF1(8,4) = 2./9.;
198 gammaDF1(8,5) = -2./3.;
202 gammaDF1(9,2) = -2./9.*(n_u-n_d/2.);
203 gammaDF1(9,3) = 2./3.*(n_u-n_d/2.);
204 gammaDF1(9,4) = -2./9.*(n_u-n_d/2.);
205 gammaDF1(9,5) = 2./3.*(n_u-n_d/2.);
213 if (!(nf == 3 || nf == 4 || nf == 5 || nf == 6)){
214 throw std::runtime_error(
"EvolDF1nlep::AnomalousDimension_nlep_S("
215 "orders order, unsigned int n_u, unsigned int n_d) " " wrong number of flavour");
220 gammaDF1(0,0) = -21./2.-2./9.*nf;
221 gammaDF1(0,1) = 7./2.+2./3.*nf;
222 gammaDF1(0,2) = 79./9.;
223 gammaDF1(0,3) = -7./3.;
224 gammaDF1(0,4) = -65./9.;
225 gammaDF1(0,5) = -7./3.;
228 gammaDF1(1,0) = 7./2.+2./3.*nf;
229 gammaDF1(1,1) = -21./2.-2./9.*nf;
230 gammaDF1(1,2) = -202./243.;
231 gammaDF1(1,3) = 1354./81.;
232 gammaDF1(1,4) = -1192./243.;
233 gammaDF1(1,5) = 904./81.;
235 gammaDF1(2,2) = -5911./486.+71./9.*nf;
236 gammaDF1(2,3) = 5983./162.+1./3.*nf;
237 gammaDF1(2,4) = -2384./243.-71./9.*nf;
238 gammaDF1(2,5) = 1808./81.-1./3.*nf;
240 gammaDF1(3,2) = 379./18.+56./243.*nf;
241 gammaDF1(3,3) = -91./6.+808./81.*nf;
242 gammaDF1(3,4) = -130./9.-502./243.*nf;
243 gammaDF1(3,5) = -14./3.+646./81.*nf;
245 gammaDF1(4,2) = -61./9.*nf;
246 gammaDF1(4,3) = -11./3.*nf;
247 gammaDF1(4,4) = 71./3.+61./9.*nf;
248 gammaDF1(4,5) = -99.+11./3.*nf;
250 gammaDF1(5,2) = -682./243.*nf;
251 gammaDF1(5,3) = 106./81.*nf;
252 gammaDF1(5,4) = -225./2.+1676./243.*nf;
253 gammaDF1(5,5) = -1343./6.+1348./81.*nf;
255 gammaDF1(6,2) = -61./9.*(n_u-n_d/2.);
256 gammaDF1(6,3) = -11./3.*(n_u-n_d/2.);
257 gammaDF1(6,4) = 83./9.*(n_u-n_d/2.);
258 gammaDF1(6,5) = -11./3.*(n_u-n_d/2.);
259 gammaDF1(6,6) = 71./3.-22./9.*nf;
260 gammaDF1(6,7) = -99.+22./3.*nf;
262 gammaDF1(7,2) = -682./243*(n_u-n_d/2.);
263 gammaDF1(7,3) = 106./81.*(n_u-n_d/2.);
264 gammaDF1(7,4) = 704./243.*(n_u-n_d/2.);
265 gammaDF1(7,5) = 736./81.*(n_u-n_d/2.);
266 gammaDF1(7,6) = -225./2.+4*nf;
267 gammaDF1(7,7) = -1343./6.+68./9.*nf;
269 gammaDF1(8,2) = 202./243.+73./9.*(n_u-n_d/2.);
270 gammaDF1(8,3) = -1354./81.-1./3.*(n_u-n_d/2.);
271 gammaDF1(8,4) = 1192./243.-71./9.*(n_u-n_d/2.);
272 gammaDF1(8,5) = -904./81.-1./3.*(n_u-n_d/2.);
273 gammaDF1(8,8) = -21./2.-2./9.*nf;
274 gammaDF1(8,9) = 7./2.+2./3.*nf;
276 gammaDF1(9,2) = -79./9.-106./243.*(n_u-n_d/2.);
277 gammaDF1(9,3) = 7./3.+826./81.*(n_u-n_d/2.);
278 gammaDF1(9,4) = 65./9.-502./243.*(n_u-n_d/2.);
279 gammaDF1(9,5) = 7./3.+646./81.*(n_u-n_d/2.);
280 gammaDF1(9,8) = 7./2.+2./3.*nf;
281 gammaDF1(9,9) = -21./2.-2./9.*nf;
286 std::stringstream out;
288 throw std::runtime_error(
"EvolDF1nlep::AnomalousDimension_nlep_S("
289 "orders order, unsigned int n_u, unsigned int n_d) "
290 + out.str() +
" not implemented");
303 unsigned int nf = n_u + n_d;
310 gammaDF1(0,0) = -8./3.;
311 gammaDF1(0,6) = 16./9.;
312 gammaDF1(0,8) = 16./9.;
314 gammaDF1(1,1) = -8./3.;
315 gammaDF1(1,6) = 16./27.;
316 gammaDF1(1,8) = 16./27.;
318 gammaDF1(2,6) = -16./27.+16./9.*(n_u-n_d/2.);
319 gammaDF1(2,8) = -88./27.+16./9.*(n_u-n_d/2.);
321 gammaDF1(3,6) = -16./9.+16./27.*(n_u-n_d/2.);
322 gammaDF1(3,8) = -16./9.+16./27.*(n_u-n_d/2.);
323 gammaDF1(3,9) = -8./3.;
325 gammaDF1(4,6) = 8./3.+16./9.*(n_u-n_d/2.);
326 gammaDF1(4,8) = 16./9.*(n_u-n_d/2.);
328 gammaDF1(5,6) = 16./27.*(n_u-n_d/2.);
329 gammaDF1(5,7) = 8./3.;
330 gammaDF1(5,8) = 16./27.*(n_u-n_d/2.);
332 gammaDF1(6,4) = 4./3.;
333 gammaDF1(6,6) = 4./3.+16./9.*(n_u+n_d/4.);
334 gammaDF1(6,8) = 16./9.*(n_u+n_d/4.);
336 gammaDF1(7,5) = 4./3.;
337 gammaDF1(7,6) = 16./27.*(n_u+n_d/4.);
338 gammaDF1(7,7) = 4./3.;
339 gammaDF1(7,8) = 16./27.*(n_u+n_d/4.);
341 gammaDF1(8,2) = -4./3.;
342 gammaDF1(8,6) = 8./27.+16./9.*(n_u+n_d/4.);
343 gammaDF1(8,8) = -28./27.+16./9.*(n_u+n_d/4.);
345 gammaDF1(9,3) = -4./3.;
346 gammaDF1(9,6) = 8./9.+16./27.*(n_u+n_d/4.);
347 gammaDF1(9,8) = 8./9.+16./27.*(n_u+n_d/4.);
348 gammaDF1(9,9) = -4./3.;
354 if (!(nf == 3 || nf == 4 || nf == 5 || nf == 6)){
355 throw std::runtime_error(
"EvolDF1nlep::AnomalousDimension_nlep_EM("
356 "orders order, unsigned int n_u, unsigned int n_d) " " wrong number of flavour");
361 gammaDF1(0,0) = 194./9.;
362 gammaDF1(0,1) = -2./3.;
363 gammaDF1(0,2) = -88./243.;
364 gammaDF1(0,3) = 88./81.;
365 gammaDF1(0,4) = -88./243.;
366 gammaDF1(0,5) = 88./81.;
367 gammaDF1(0,6) = 152./27.;
368 gammaDF1(0,7) = 40./9.;
369 gammaDF1(0,8) = 136./27.;
370 gammaDF1(0,9) = 56./9.;
372 gammaDF1(1,0) = 25./3.;
373 gammaDF1(1,1) = -49./9.;
374 gammaDF1(1,2) = -556./729.;
375 gammaDF1(1,3) = 556./243.;
376 gammaDF1(1,4) = -556./729.;
377 gammaDF1(1,5) = 556./243.;
378 gammaDF1(1,6) = -484./729.;
379 gammaDF1(1,7) = -124./27.;
380 gammaDF1(1,8) = -3148./729.;
381 gammaDF1(1,9) = 172./27.;
383 gammaDF1(2,2) = 1690./729.-136./243.*(n_u-n_d/2.);
384 gammaDF1(2,3) = -1690./243.+136./81.*(n_u-n_d/2.);
385 gammaDF1(2,4) = 232./729.-136./243.*(n_u-n_d/2.);
386 gammaDF1(2,5) = -232./243.+136./81.*(n_u-n_d/2.);
387 gammaDF1(2,6) = 3136./729.+104./27.*(n_u-n_d/2.);
388 gammaDF1(2,7) = 64./27.+88./9.*(n_u-n_d/2.);
389 gammaDF1(2,8) = 20272./729.+184./27.*(n_u-n_d/2.);
390 gammaDF1(2,9) = -112./27.+8./9.*(n_u-n_d/2.);
392 gammaDF1(3,2) = -641./243.-388./729.*n_u+32./729.*n_d;
393 gammaDF1(3,3) = -655./81.+388./243.*n_u-32./243.*n_d;
394 gammaDF1(3,4) = 88./243.-388./729*n_u+32./729.*n_d;
395 gammaDF1(3,5) = -88./81.+388./243.*n_u-32./243.*n_d;
396 gammaDF1(3,6) = -152./27.+3140./729.*n_u+656./729.*n_d;
397 gammaDF1(3,7) = -40./9.-100./27.*n_u-16./27.*n_d;
398 gammaDF1(3,8) = 170./27.+908./729.*n_u+1232./729.*n_d;
399 gammaDF1(3,9) = -14./3.+148./27.*n_u-80./27*n_d;
401 gammaDF1(4,2) = -136./243.*(n_u-n_d/2.);
402 gammaDF1(4,3) = 136./81.*(n_u-n_d/2.);
403 gammaDF1(4,4) = -2.-136./243.*(n_u-n_d/2.);
404 gammaDF1(4,5) = 6.+136./81.*(n_u-n_d/2.);
405 gammaDF1(4,6) = -232./9.+104./27.*(n_u-n_d/2.);
406 gammaDF1(4,7) = 40./3.+88./9.*(n_u-n_d/2.);
407 gammaDF1(4,8) = 184./27.*(n_u-n_d/2.);
408 gammaDF1(4,9) = 8./9.*(n_u-n_d/2.);
410 gammaDF1(5,2) = -748./729.*n_u+212./729.*n_d;
411 gammaDF1(5,3) = 748./243.*n_u-212./243.*n_d;
412 gammaDF1(5,4) = 3.-748./729.*n_u+212./729.*n_d;
413 gammaDF1(5,5) = 7.+748./243.*n_u-212./243.*n_d;
414 gammaDF1(5,6) = -2.-5212./729.*n_u+4832./729.*n_d;
415 gammaDF1(5,7) = 182./9.+188./27.*n_u-160./27.*n_d;
416 gammaDF1(5,8) = -2260./729.*n_u+2816./729.*n_d;
417 gammaDF1(5,9) = -140./27.*n_u+64./27.*n_d;
419 gammaDF1(6,2) = -136./243.*(n_u+n_d/4.);
420 gammaDF1(6,3) = 136./81.*(n_u+n_d/4.);
421 gammaDF1(6,4) = -116./9.-136./243.*(n_u+n_d/4.);
422 gammaDF1(6,5) = 20./3.+136./81.*(n_u+n_d/4.);
423 gammaDF1(6,6) = -134./9.+104./27.*(n_u+n_d/4.);
424 gammaDF1(6,7) = 38./3.+88./9.*(n_u+n_d/4.);
425 gammaDF1(6,8) = 184./27.*(n_u+n_d/4.);
426 gammaDF1(6,9) = 8./9.*(n_u+n_d/4.);
428 gammaDF1(7,2) = -748./729.*n_u-106./729.*n_d;
429 gammaDF1(7,3) = 748./243.*n_u+106./243.*n_d;
430 gammaDF1(7,4) = -1.-748./729.*n_u-106./729.*n_d;
431 gammaDF1(7,5) = 91./9.+748./243.*n_u+106./243.*n_d;
432 gammaDF1(7,6) = 2.-5212./729.*n_u-2416./729.*n_d;
433 gammaDF1(7,7) = 154./9.+188./27.*n_u+80./27.*n_d;
434 gammaDF1(7,8) = -2260./729.*n_u-1408./729.*n_d;
435 gammaDF1(7,9) = -140./27.*n_u-32./27.*n_d;
437 gammaDF1(8,2) = 7012./729.-136./243.*(n_u+n_d/4.);
438 gammaDF1(8,3) = 764./243.+136./81.*(n_u+n_d/4.);
439 gammaDF1(8,4) = -116./729.-136./243.*(n_u+n_d/4.);
440 gammaDF1(8,5) = 116./243.+136./81.*(n_u+n_d/4.);
441 gammaDF1(8,6) = -1568./729.+104./27.*(n_u+n_d/4.);
442 gammaDF1(8,7) = -32./27.+88./9.*(n_u+n_d/4.);
443 gammaDF1(8,8) = 5578./729.+184./27.*(n_u+n_d/4.);
444 gammaDF1(8,9) = 38./27.+8./9.*(n_u+n_d/4.);
446 gammaDF1(9,2) = 1333./243.-388./729.*n_u-16./729.*n_d;
447 gammaDF1(9,3) = 107./81.+388./243.*n_u+16./243.*n_d;
448 gammaDF1(9,4) = -44./243.-388./729.*n_u-16./729.*n_d;
449 gammaDF1(9,5) = 44./81.+388./243.*n_u+16./243.*n_d;
450 gammaDF1(9,6) = 76./27.+3140./729.*n_u-328./729.*n_d;
451 gammaDF1(9,7) = 20./9.-100./27.*n_u+8./27.*n_d;
452 gammaDF1(9,8) = 140./27.+908./729.*n_u-616./729.*n_d;
453 gammaDF1(9,9) = -28./9.+148./27.*n_u+40./27.*n_d;
458 std::stringstream out;
460 throw std::runtime_error(
"EvolDF1nlep::AnomalousDimension_nlep_EM("
461 "orders order, unsigned int n_u, unsigned int n_d) "
462 + out.str() +
" not implemented");
476 delta_rsT(2,3) = 5./27.;
477 delta_rsT(2,5) = 5./27.;
478 delta_rsT(3,3) = -5./9.;
479 delta_rsT(4,5) = -5./9.;
480 delta_rsT(4,3) = 5./27.;
481 delta_rsT(4,5) = 5./27.;
482 delta_rsT(5,3) = -5./9.;
483 delta_rsT(5,5) = -5./9.;
485 if(nf == 3. || nf == 5.){
487 delta_rsT(2,7) = -5./54.;
488 delta_rsT(2,9) = -5./54.;
489 delta_rsT(3,7) = 5./18.;
490 delta_rsT(3,9) = 5./18.;
491 delta_rsT(4,7) = -5./54.;
492 delta_rsT(4,9) = -5./54.;
493 delta_rsT(5,7) = 5./18.;
494 delta_rsT(5,9) = 5./18.;
501 delta_rsT(2,7) = 5./27.;
502 delta_rsT(2,9) = 5./27.;
503 delta_rsT(3,7) = -5./9.;
504 delta_rsT(3,9) = -5./9.;
505 delta_rsT(4,7) = 5./27.;
506 delta_rsT(4,9) = 5./27.;
507 delta_rsT(5,7) = -5./9.;
508 delta_rsT(5,9) = -5./9.;
521 if(nf == 3. || nf == 5.){
523 delta_reT(6,2) = 20./27.;
524 delta_reT(6,4) = 20./81.;
525 delta_reT(6,4) = 20./27.;
526 delta_reT(6,5) = 20./81.;
527 delta_reT(6,6) = -10./27.;
528 delta_reT(6,7) = -10./81.;
529 delta_reT(6,8) = -10./27.;
530 delta_reT(6,9) = -10./81.;
531 delta_reT(8,2) = 20./27.;
532 delta_reT(8,3) = 20./81.;
533 delta_reT(8,4) = 20./27.;
534 delta_reT(8,5) = 20./81.;
535 delta_reT(8,6) = -10./27.;
536 delta_reT(8,7) = -10./81.;
537 delta_reT(8,8) = -10./27.;
538 delta_reT(8,9) = -10./81.;
544 delta_reT(6,2) = -40./27.;
545 delta_reT(6,3) = -40./81.;
546 delta_reT(6,4) = -40./27.;
547 delta_reT(6,5) = -40./81.;
548 delta_reT(6,5) = -40./27.;
549 delta_reT(6,6) = -40./81.;
550 delta_reT(6,7) = -40./27.;
551 delta_reT(6,8) = -40./81.;
552 delta_reT(8,2) = -40./27.;
553 delta_reT(8,3) = -40./81.;
554 delta_reT(8,4) = -40./27.;
555 delta_reT(8,5) = -40./81.;
556 delta_reT(8,6) = -40./27.;
557 delta_reT(8,7) = -40./81.;
558 delta_reT(8,8) = -40./27.;
559 delta_reT(8,9) = -40./81.;
575 std::stringstream out;
577 throw std::runtime_error(
"EvolDF1nlep::Df1Evolnlep_EM(): scheme " + out.str()
578 +
" not implemented ");
588 std::stringstream out;
589 out <<
"M = " <<
M <<
" < mu = " <<
mu;
625 int L = 6 - (int) nf;
630 double eta = alsM / alsmu;
632 for (
unsigned int k = 0; k <
dim; k++) {
633 double etap =
pow(eta,
a[L][k]);
634 for (
unsigned int i = 0; i <
dim; i++) {
635 for (
unsigned int j = 0; j <
dim; j++) {
637 resLO(i,j) +=
b[L][i][j][k] * etap;
639 resNLO(i,j) +=
c[L][i][j][k] * etap * alsmu;
640 resNLO(i,j) +=
d[L][i][j][k] * etap * alsM;
642 resLO_ew(i,j) +=
m[L][i][j][k] * etap * ale/alsmu;
643 resLO_ew(i,j) +=
n[L][i][j][k] * etap * ale/alsM;
645 resNLO_QED(i,j) +=
o[L][i][j][k] * etap * ale;
646 resNLO_QED(i,j) +=
p[L][i][j][k] * etap * ale;
647 resNLO_QED(i,j) +=
u[L][i][j][k] * etap * ale *
log(eta);
649 resNLO_QED(i,j) +=
q[L][i][j][k] * etap * ale;
650 resNLO_QED(i,j) +=
r[L][i][j][k] * etap * ale;
651 resNLO_QED(i,j) +=
s[L][i][j][k] * etap * ale / eta;
652 resNLO_QED(i,j) +=
t[L][i][j][k] * etap * ale * eta;
665 throw std::runtime_error(
"Error in EvolDF1nlep::Df1Evolnlep()");
677 throw std::runtime_error(
"Error in EvolDF1nlep::Df1Evolnlep()");
696 throw std::runtime_error(
"Error in EvolDF1nlep::Df1threshold_nlep()");
706 throw std::runtime_error(
"Error in EvolDF1nlep::Df1threshold_nlep()");