File indexing completed on 2026-08-06 09:24:28
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef HERWIG_UtilAlphaS_H
0010 #define HERWIG_UtilAlphaS_H
0011
0012 namespace Herwig {
0013
0014 namespace Math {
0015
0016
0017
0018
0019
0020
0021
0022 inline double derivativeAlphaS(Energy q, Energy lam,
0023 unsigned int nf, unsigned int nloop) {
0024 using Constants::pi;
0025 double lx = log(sqr(q/lam));
0026 double b0 = 11. - 2./3.*nf;
0027 double b1 = 51. - 19./3.*nf;
0028 double b2 = 2857. - 5033./9.*nf + 325./27.*sqr(nf);
0029 if(nloop==1)
0030 return -4.*pi/(b0*sqr(lx));
0031 else if(nloop==2)
0032 return -4.*pi/(b0*sqr(lx))*(1.+2.*b1/sqr(b0)/lx*(1.-2.*log(lx)));
0033 else
0034 return -4.*pi/(b0*sqr(lx))*
0035 (1. + 2.*b1/sqr(b0)/lx*(1.-2.*log(lx))
0036 + 4.*sqr(b1)/(sqr(sqr(b0))*sqr(lx))*(1. - 2.*log(lx)
0037 + 3.*(sqr(log(lx) - 0.5)+b2*b0/(8.*sqr(b1))-1.25)));
0038 }
0039
0040
0041
0042
0043
0044
0045
0046 inline double alphaS(Energy q, Energy lam,
0047 unsigned int nf, unsigned int nloop) {
0048 using Constants::pi;
0049 double lx(log(sqr(q/lam)));
0050 double b0 = 11. - 2./3.*nf;
0051 double b1 = 51. - 19./3.*nf;
0052 double b2 = 2857. - 5033./9.*nf + 325./27.*sqr(nf);
0053
0054 if(nloop==1)
0055 {return 4.*pi/(b0*lx);}
0056
0057 else if(nloop==2) {
0058 return 4.*pi/(b0*lx)*(1.-2.*b1/sqr(b0)*log(lx)/lx);
0059 }
0060
0061 else
0062 {return 4.*pi/(b0*lx)*(1.-2.*b1/sqr(b0)*log(lx)/lx +
0063 4.*sqr(b1)/(sqr(sqr(b0))*sqr(lx))*
0064 (sqr(log(lx) - 0.5) + b2*b0/(8.*sqr(b1)) - 5./4.));}
0065 }
0066
0067
0068 }
0069
0070 }
0071
0072 #endif