]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HERWIG/src/hwualf.f
Coding rule violations corrected.
[u/mrichter/AliRoot.git] / HERWIG / src / hwualf.f
1
2 CDECK  ID>, HWUALF.
3
4 *CMZ :-        -15/07/92  14.08.45  by  Mike Seymour
5
6 *-- Author :    Bryan Webber
7
8 C-----------------------------------------------------------------------
9
10       FUNCTION HWUALF(IOPT,SCALE)
11
12 C-----------------------------------------------------------------------
13
14 C     STRONG COUPLING CONSTANT
15
16 C     IOPT.EQ.0  INITIALIZES
17
18 C         .EQ.1  TWO-LOOP, FLAVOUR THRESHOLDS
19
20 C         .EQ.2  RATIO OF ABOVE TO ONE-LOOP
21
22 C                WITH 5-FLAVOUR BETA, LAMBDA=QCDL3
23
24 C         .EQ.3  ONE-LOOP WITH 5-FLAVOUR BETA, LAMBDA=QCDL3
25
26 C-----------------------------------------------------------------------
27
28       INCLUDE 'HERWIG61.INC'
29
30       DOUBLE PRECISION HWUALF,SCALE,KAFAC,B3,B4,B5,B6,C3,C4,C5,C6,C35,
31
32      & C45,C65,D35,RHO,RAT,RLF,DRH,EPS
33
34       INTEGER IOPT,ITN
35
36       SAVE B3,B4,B5,B6,C3,C4,C5,C6,C35,C45,C65,D35
37
38       DATA EPS/1.D-6/
39
40       IF (IOPT.EQ.0) THEN
41
42 C---INITIALIZE CONSTANTS
43
44         CAFAC=FLOAT(NCOLO)
45
46         CFFAC=FLOAT(NCOLO**2-1)/(2.*CAFAC)
47
48         B3=((11.*CAFAC)- 6.)/(12.*PIFAC)
49
50         B4=((11.*CAFAC)- 8.)/(12.*PIFAC)
51
52         B5=((11.*CAFAC)-10.)/(12.*PIFAC)
53
54         B6=((11.*CAFAC)-12.)/(12.*PIFAC)
55
56         BETAF=6.*PIFAC*B5
57
58         C3=((17.*CAFAC**2)-(5.*CAFAC+3.*CFFAC)*3.)/(24.*PIFAC**2)/B3**2
59
60         C4=((17.*CAFAC**2)-(5.*CAFAC+3.*CFFAC)*4.)/(24.*PIFAC**2)/B4**2
61
62         C5=((17.*CAFAC**2)-(5.*CAFAC+3.*CFFAC)*5.)/(24.*PIFAC**2)/B5**2
63
64         C6=((17.*CAFAC**2)-(5.*CAFAC+3.*CFFAC)*6.)/(24.*PIFAC**2)/B6**2
65
66         KAFAC=CAFAC*(67./18.-PIFAC**2/6.)-25./9.
67
68 C---QCDLAM IS 5-FLAVOUR LAMBDA-MS-BAR AT LARGE X OR Z
69
70 C---QCDL5  IS 5-FLAVOUR LAMBDA-MC
71
72         QCDL5=QCDLAM*EXP(KAFAC/(4.*PIFAC*B5))/SQRT(2.D0)
73
74 C---COMPUTE THRESHOLD MATCHING
75
76         RHO=2.*LOG(RMASS(6)/QCDL5)
77
78         RAT=LOG(RHO)/RHO
79
80         C65=(B5/(1.-C5*RAT)-B6/(1.-C6*RAT))*RHO
81
82         RHO=2.*LOG(RMASS(5)/QCDL5)
83
84         RAT=LOG(RHO)/RHO
85
86         C45=(B5/(1.-C5*RAT)-B4/(1.-C4*RAT))*RHO
87
88         RHO=2.*LOG(RMASS(4)/QCDL5)
89
90         RAT=LOG(RHO)/RHO
91
92         C35=(B4/(1.-C4*RAT)-B3/(1.-C3*RAT))*RHO+C45
93
94 C---FIND QCDL3
95
96         D35=-1./(B3*C35)
97
98         DO 10 ITN=1,100
99
100           RAT=LOG(D35)/D35
101
102           RLF=B3*D35/(1.-C3*RAT)
103
104           DRH=B3*(RLF+C35)*D35**2/((1.-2.*C3*RAT+C3/D35)*RLF**2)
105
106           D35=D35-DRH
107
108           IF (ABS(DRH).LT.EPS*D35) GOTO 20
109
110    10   CONTINUE
111
112    20   QCDL3=QCDL5*EXP(0.5*D35)
113
114       ENDIF
115
116       IF (SCALE.LE.QCDL5) CALL HWWARN('HWUALF',51,*999)
117
118       RHO=2.*LOG(SCALE/QCDL5)
119
120       IF (IOPT.EQ.3) THEN
121
122         IF (RHO.LE.D35) CALL HWWARN('HWUALF',52,*999)
123
124         HWUALF=1./(B5*(RHO-D35))
125
126         RETURN
127
128       ENDIF
129
130       RAT=LOG(RHO)/RHO
131
132       IF (SCALE.GT.RMASS(6)) THEN
133
134         RLF=B6*RHO/(1.-C6*RAT)+C65
135
136       ELSEIF (SCALE.GT.RMASS(5)) THEN
137
138         RLF=B5*RHO/(1.-C5*RAT)
139
140       ELSEIF (SCALE.GT.RMASS(4)) THEN
141
142         RLF=B4*RHO/(1.-C4*RAT)+C45
143
144       ELSE
145
146         RLF=B3*RHO/(1.-C3*RAT)+C35
147
148       ENDIF
149
150       IF (RLF.LE.ZERO) CALL HWWARN('HWUALF',53,*999)
151
152       IF (IOPT.EQ.1) THEN
153
154         HWUALF=1./RLF
155
156       ELSE
157
158         HWUALF=B5*(RHO-D35)/RLF
159
160         IF (HWUALF.GT.ONE) CALL HWWARN('HWUALF',54,*999)
161
162       ENDIF
163
164       RETURN
165
166  999  HWUALF=ZERO
167
168       END