2
C-----------------------------------------------------------------------------
4
double precision function alfa(alfa0,qsq )
6
C-----------------------------------------------------------------------------
8
C This function returns the 1-loop value of alpha.
13
C-----------------------------------------------------------------------------
16
double precision qsq,alfa0
20
double precision One, Three, Pi,zmass
21
parameter( One = 1.0d0, Three = 3.0d0 )
22
parameter( Pi = 3.14159265358979323846d0 )
23
parameter( zmass = 91.188d0 )
25
alfa = alfa0 / ( 1.0d0 - alfa0*dlog( qsq/zmass**2 ) /Three /Pi )
31
C-----------------------------------------------------------------------------
33
double precision function alfaw(alfaw0,qsq,nh )
35
C-----------------------------------------------------------------------------
37
C This function returns the 1-loop value of alpha_w.
41
C nh = # of Higgs doublets
43
C-----------------------------------------------------------------------------
46
double precision qsq, alphaw, dum,alfaw0
55
double precision Two, Four, Pi, Twpi, zmass,tmass
56
parameter( Two = 2.0d0, Four = 4.0d0 )
57
parameter( Pi = 3.14159265358979323846d0 )
58
parameter( Twpi = 3.0d0*Four*Pi )
59
parameter( zmass = 91.188d0,tmass=174d0 )
61
if ( qsq.ge.tmass**2 ) then
66
dum = ( 22.0d0 - Four*nq - nh/Two ) / Twpi
67
alfaw = alfaw0 / ( 1.0d0 + dum*alfaw0*dlog( qsq/zmass**2 ) )
72
C-----------------------------------------------------------------------------
74
DOUBLE PRECISION FUNCTION ALPHAS(Q)
75
C wrapper to the lhapdf alphaS
76
C-----------------------------------------------------------------------------
84
c include "timing_variables.inc"
86
c This function takes 20 micro seconds to run, so it is ok to profile
87
c it with the 0.3 ms function cpu_time.
88
c call cpu_time(tbefore)
90
c call cpu_time(tAfter)
92
c tPDF = tPDF + (tAfter-tBefore)
97
C-----------------------------------------------------------------------------
99
double precision function mfrun(mf,scale,asmz,nloop)
101
C-----------------------------------------------------------------------------
103
C This function returns the 2-loop value of a MSbar fermion mass
106
C INPUT: mf = MSbar mass of fermion at MSbar fermion mass scale
107
C scale = scale at which the running mass is evaluated
108
C asmz = AS(MZ) : this is passed to alphas(scale,asmz,nloop)
109
C nloop = # of loops in the evolution
113
C EXTERNAL: double precision alphas(scale,asmz,nloop)
115
C-----------------------------------------------------------------------------
121
double precision mf,scale,asmz
126
double precision beta0, beta1,gamma0,gamma1
127
double precision A1,as,asmf,l2
132
double precision alphas
137
double precision One, Two, Three, Pi
138
parameter( One = 1.0d0, Two = 2.0d0, Three = 3.0d0 )
139
parameter( Pi = 3.14159265358979323846d0)
140
double precision tmass
141
parameter(tmass=174d0)
145
if ( mf.gt.tmass ) then
151
beta0 = ( 11.0d0 - Two/Three *nf )/4d0
152
beta1 = ( 102d0 - 38d0/Three*nf )/16d0
154
gamma1= ( 202d0/3d0 - 20d0/9d0*nf )/16d0
155
A1 = -beta1*gamma0/beta0**2+gamma1/beta0
158
l2 = (1+ A1*as/Pi)/(1+ A1*asmf/Pi)
161
mfrun = mf * (as/asmf)**(gamma0/beta0)
163
if(nloop.eq.2) mfrun =mfrun*l2