~madteam/mg5amcnlo/series2.0

« back to all changes in this revision

Viewing changes to Template/RWGTNLO/alfas_functions_lhapdf.f

mwrge with 2.7.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
C
2
 
C-----------------------------------------------------------------------------
3
 
C
4
 
      double precision function alfa(alfa0,qsq )
5
 
C
6
 
C-----------------------------------------------------------------------------
7
 
C
8
 
C       This function returns the 1-loop value of alpha.
9
 
C
10
 
C       INPUT: 
11
 
C               qsq   = Q^2
12
 
C
13
 
C-----------------------------------------------------------------------------
14
 
C
15
 
      implicit none
16
 
      double precision  qsq,alfa0
17
 
c
18
 
c constants
19
 
c
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 )
24
 
cc
25
 
      alfa = alfa0 / ( 1.0d0 - alfa0*dlog( qsq/zmass**2 ) /Three /Pi )
26
 
ccc
27
 
      return
28
 
      end
29
 
 
30
 
C
31
 
C-----------------------------------------------------------------------------
32
 
C
33
 
      double precision function alfaw(alfaw0,qsq,nh )
34
 
C
35
 
C-----------------------------------------------------------------------------
36
 
C
37
 
C       This function returns the 1-loop value of alpha_w.
38
 
C
39
 
C       INPUT: 
40
 
C               qsq = Q^2
41
 
C               nh  = # of Higgs doublets
42
 
C
43
 
C-----------------------------------------------------------------------------
44
 
C
45
 
      implicit none
46
 
      double precision  qsq, alphaw, dum,alfaw0
47
 
      integer  nh, nq
48
 
c
49
 
c         include
50
 
c
51
 
          
52
 
c
53
 
c constants
54
 
c
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 )
60
 
cc
61
 
      if ( qsq.ge.tmass**2 ) then
62
 
         nq = 6
63
 
      else
64
 
         nq = 5
65
 
      end if
66
 
      dum = ( 22.0d0 - Four*nq - nh/Two ) / Twpi
67
 
      alfaw = alfaw0 / ( 1.0d0 + dum*alfaw0*dlog( qsq/zmass**2 ) )
68
 
ccc
69
 
      return
70
 
      end
71
 
 
72
 
C-----------------------------------------------------------------------------
73
 
C
74
 
      DOUBLE PRECISION FUNCTION ALPHAS(Q)
75
 
C     wrapper to the lhapdf alphaS
76
 
C-----------------------------------------------------------------------------
77
 
      IMPLICIT NONE
78
 
c
79
 
      include 'alfas.inc'
80
 
      REAL*8 Q,alphasPDF
81
 
      external alphasPDF
82
 
 
83
 
c timing statistics
84
 
c      include "timing_variables.inc"
85
 
 
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)
89
 
      ALPHAS=alphasPDF(Q)
90
 
c      call cpu_time(tAfter)
91
 
      
92
 
c      tPDF = tPDF + (tAfter-tBefore)
93
 
 
94
 
      RETURN
95
 
      END
96
 
 
97
 
C-----------------------------------------------------------------------------
98
 
C
99
 
      double precision function mfrun(mf,scale,asmz,nloop)
100
 
C
101
 
C-----------------------------------------------------------------------------
102
 
C
103
 
C       This function returns the 2-loop value of a MSbar fermion mass
104
 
C       at a given scale.
105
 
C
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
110
 
C       
111
 
C
112
 
C
113
 
C       EXTERNAL:      double precision alphas(scale,asmz,nloop)
114
 
C                      
115
 
C-----------------------------------------------------------------------------
116
 
C
117
 
      implicit none
118
 
C
119
 
C     ARGUMENTS
120
 
C
121
 
      double precision  mf,scale,asmz
122
 
      integer           nloop
123
 
C
124
 
C     LOCAL
125
 
C
126
 
      double precision  beta0, beta1,gamma0,gamma1
127
 
      double precision  A1,as,asmf,l2
128
 
      integer  nf
129
 
C
130
 
C     EXTERNAL
131
 
C
132
 
      double precision  alphas
133
 
      external          alphas
134
 
c
135
 
c     CONSTANTS
136
 
c
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)
142
 
cc
143
 
C
144
 
C
145
 
      if ( mf.gt.tmass ) then
146
 
         nf = 6
147
 
      else
148
 
         nf = 5
149
 
      end if
150
 
 
151
 
      beta0 = ( 11.0d0 - Two/Three *nf )/4d0
152
 
      beta1 = ( 102d0  - 38d0/Three*nf )/16d0
153
 
      gamma0= 1d0
154
 
      gamma1= ( 202d0/3d0  - 20d0/9d0*nf )/16d0
155
 
      A1    = -beta1*gamma0/beta0**2+gamma1/beta0
156
 
      as    = alphas(scale)
157
 
      asmf  = alphas(mf)
158
 
      l2    = (1+ A1*as/Pi)/(1+ A1*asmf/Pi)
159
 
      
160
 
      
161
 
      mfrun = mf * (as/asmf)**(gamma0/beta0)
162
 
 
163
 
      if(nloop.eq.2) mfrun =mfrun*l2
164
 
ccc
165
 
      return
166
 
      end
167