~maddevelopers/mg5amcnlo/3.0.2-alpha0

« back to all changes in this revision

Viewing changes to Template/Source/alfas_functions_lhapdf.f

Added Template and HELAS into bzr

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
      ALPHAS=alphasPDF(Q)
 
84
 
 
85
      RETURN
 
86
      END
 
87
 
 
88
C-----------------------------------------------------------------------------
 
89
C
 
90
      double precision function mfrun(mf,scale,asmz,nloop)
 
91
C
 
92
C-----------------------------------------------------------------------------
 
93
C
 
94
C       This function returns the 2-loop value of a MSbar fermion mass
 
95
C       at a given scale.
 
96
C
 
97
C       INPUT: mf    = MSbar mass of fermion at MSbar fermion mass scale 
 
98
C              scale = scale at which the running mass is evaluated
 
99
C              asmz  = AS(MZ) : this is passed to alphas(scale,asmz,nloop)
 
100
C              nloop = # of loops in the evolution
 
101
C       
 
102
C
 
103
C
 
104
C       EXTERNAL:      double precision alphas(scale,asmz,nloop)
 
105
C                      
 
106
C-----------------------------------------------------------------------------
 
107
C
 
108
      implicit none
 
109
C
 
110
C     ARGUMENTS
 
111
C
 
112
      double precision  mf,scale,asmz
 
113
      integer           nloop
 
114
C
 
115
C     LOCAL
 
116
C
 
117
      double precision  beta0, beta1,gamma0,gamma1
 
118
      double precision  A1,as,asmf,l2
 
119
      integer  nf
 
120
C
 
121
C     EXTERNAL
 
122
C
 
123
      double precision  alphas
 
124
      external          alphas
 
125
c
 
126
c     CONSTANTS
 
127
c
 
128
      double precision  One, Two, Three, Pi
 
129
      parameter( One = 1.0d0, Two = 2.0d0, Three = 3.0d0 )
 
130
      parameter( Pi = 3.14159265358979323846d0) 
 
131
      double precision tmass
 
132
      parameter(tmass=174d0)
 
133
cc
 
134
C
 
135
C
 
136
      if ( mf.gt.tmass ) then
 
137
         nf = 6
 
138
      else
 
139
         nf = 5
 
140
      end if
 
141
 
 
142
      beta0 = ( 11.0d0 - Two/Three *nf )/4d0
 
143
      beta1 = ( 102d0  - 38d0/Three*nf )/16d0
 
144
      gamma0= 1d0
 
145
      gamma1= ( 202d0/3d0  - 20d0/9d0*nf )/16d0
 
146
      A1    = -beta1*gamma0/beta0**2+gamma1/beta0
 
147
      as    = alphas(scale)
 
148
      asmf  = alphas(mf)
 
149
      l2    = (1+ A1*as/Pi)/(1+ A1*asmf/Pi)
 
150
      
 
151
      
 
152
      mfrun = mf * (as/asmf)**(gamma0/beta0)
 
153
 
 
154
      if(nloop.eq.2) mfrun =mfrun*l2
 
155
ccc
 
156
      return
 
157
      end
 
158