]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HERWIG/src/sasvmd.f
Coding rule violations corrected.
[u/mrichter/AliRoot.git] / HERWIG / src / sasvmd.f
CommitLineData
3820ca8e 1
2C
3
4C*********************************************************************
5
6C
7
8 SUBROUTINE SASVMD(ISET,KF,X,Q2,P2,ALAM,XPGA,VXPGA)
9
10C...Purpose: to evaluate the VMD parton distributions of a photon,
11
12C...evolved homogeneously from an initial scale P2 to Q2.
13
14C...Does not include dipole suppression factor.
15
16C...ISET is parton distribution set, see above;
17
18C...additionally ISET=0 is used for the evolution of an anomalous photon
19
20C...which branched at a scale P2 and then evolved homogeneously to Q2.
21
22C...ALAM is the 4-flavour Lambda, which is automatically converted
23
24C...to 3- and 5-flavour equivalents as needed.
25
26 DIMENSION XPGA(-6:6), VXPGA(-6:6)
27
28 DATA PMC/1.3/, PMB/4.6/
29
30C
31
32C...Reset output.
33
34 DO 100 KFL=-6,6
35
36 XPGA(KFL)=0.
37
38 VXPGA(KFL)=0.
39
40 100 CONTINUE
41
42 KFA=IABS(KF)
43
44C
45
46C...Calculate Lambda; protect against unphysical Q2 and P2 input.
47
48 ALAM3=ALAM*(PMC/ALAM)**(2./27.)
49
50 ALAM5=ALAM*(ALAM/PMB)**(2./23.)
51
52 P2EFF=MAX(P2,1.2*ALAM3**2)
53
54 IF(KFA.EQ.4) P2EFF=MAX(P2EFF,PMC**2)
55
56 IF(KFA.EQ.5) P2EFF=MAX(P2EFF,PMB**2)
57
58 Q2EFF=MAX(Q2,P2EFF)
59
60C
61
62C...Find number of flavours at lower and upper scale.
63
64 NFP=4
65
66 IF(P2EFF.LT.PMC**2) NFP=3
67
68 IF(P2EFF.GT.PMB**2) NFP=5
69
70 NFQ=4
71
72 IF(Q2EFF.LT.PMC**2) NFQ=3
73
74 IF(Q2EFF.GT.PMB**2) NFQ=5
75
76C
77
78C...Find s as sum of 3-, 4- and 5-flavour parts.
79
80 S=0.
81
82 IF(NFP.EQ.3) THEN
83
84 Q2DIV=PMC**2
85
86 IF(NFQ.EQ.3) Q2DIV=Q2EFF
87
88 S=S+(6./27.)*LOG(LOG(Q2DIV/ALAM3**2)/LOG(P2EFF/ALAM3**2))
89
90 ENDIF
91
92 IF(NFP.LE.4.AND.NFQ.GE.4) THEN
93
94 P2DIV=P2EFF
95
96 IF(NFP.EQ.3) P2DIV=PMC**2
97
98 Q2DIV=Q2EFF
99
100 IF(NFQ.EQ.5) Q2DIV=PMB**2
101
102 S=S+(6./25.)*LOG(LOG(Q2DIV/ALAM**2)/LOG(P2DIV/ALAM**2))
103
104 ENDIF
105
106 IF(NFQ.EQ.5) THEN
107
108 P2DIV=PMB**2
109
110 IF(NFP.EQ.5) P2DIV=P2EFF
111
112 S=S+(6./23.)*LOG(LOG(Q2EFF/ALAM5**2)/LOG(P2DIV/ALAM5**2))
113
114 ENDIF
115
116C
117
118C...Calculate frequent combinations of x and s.
119
120 X1=1.-X
121
122 XL=-LOG(X)
123
124 S2=S**2
125
126 S3=S**3
127
128 S4=S**4
129
130C
131
132C...Evaluate homogeneous anomalous parton distributions below or
133
134C...above threshold.
135
136 IF(ISET.EQ.0) THEN
137
138 IF(Q2.LE.P2.OR.(KFA.EQ.4.AND.Q2.LT.PMC**2).OR.
139
140 &(KFA.EQ.5.AND.Q2.LT.PMB**2)) THEN
141
142 XVAL = X * 1.5 * (X**2+X1**2)
143
144 XGLU = 0.
145
146 XSEA = 0.
147
148 ELSE
149
150 XVAL = (1.5/(1.-0.197*S+4.33*S2)*X**2 + (1.5+2.10*S)/
151
152 & (1.+3.29*S)*X1**2 + 5.23*S/(1.+1.17*S+19.9*S3)*X*X1) *
153
154 & X**(1./(1.+1.5*S)) * (1.-X**2)**(2.667*S)
155
156 XGLU = 4.*S/(1.+4.76*S+15.2*S2+29.3*S4) *
157
158 & X**(-2.03*S/(1.+2.44*S)) * (X1*XL)**(1.333*S) *
159
160 & ((4.*X**2+7.*X+4.)*X1/3. - 2.*X*(1.+X)*XL)
161
162 XSEA = S2/(1.+4.54*S+8.19*S2+8.05*S3) *
163
164 & X**(-1.54*S/(1.+1.29*S)) * X1**(2.667*S) *
165
166 & ((8.-73.*X+62.*X**2)*X1/9. + (3.-8.*X**2/3.)*X*XL +
167
168 & (2.*X-1.)*X*XL**2)
169
170 ENDIF
171
172C
173
174C...Evaluate set 1D parton distributions below or above threshold.
175
176 ELSEIF(ISET.EQ.1) THEN
177
178 IF(Q2.LE.P2.OR.(KFA.EQ.4.AND.Q2.LT.PMC**2).OR.
179
180 &(KFA.EQ.5.AND.Q2.LT.PMB**2)) THEN
181
182 XVAL = 1.294 * X**0.80 * X1**0.76
183
184 XGLU = 1.273 * X**0.40 * X1**1.76
185
186 XSEA = 0.100 * X1**3.76
187
188 ELSE
189
190 XVAL = 1.294/(1.+0.252*S+3.079*S2) * X**(0.80-0.13*S) *
191
192 & X1**(0.76+0.667*S) * XL**(2.*S)
193
194 XGLU = 7.90*S/(1.+5.50*S) * EXP(-5.16*S) *
195
196 & X**(-1.90*S/(1.+3.60*S)) * X1**1.30 * XL**(0.50+3.*S) +
197
198 & 1.273 * EXP(-10.*S) * X**0.40 * X1**(1.76+3.*S)
199
200 XSEA = (0.1-0.397*S2+1.121*S3)/(1.+5.61*S2+5.26*S3) *
201
202 & X**(-7.32*S2/(1.+10.3*S2)) *
203
204 & X1**((3.76+15.*S+12.*S2)/(1.+4.*S))
205
206 XSEA0 = 0.100 * X1**3.76
207
208 ENDIF
209
210C
211
212C...Evaluate set 1M parton distributions below or above threshold.
213
214 ELSEIF(ISET.EQ.2) THEN
215
216 IF(Q2.LE.P2.OR.(KFA.EQ.4.AND.Q2.LT.PMC**2).OR.
217
218 &(KFA.EQ.5.AND.Q2.LT.PMB**2)) THEN
219
220 XVAL = 0.8477 * X**0.51 * X1**1.37
221
222 XGLU = 3.42 * X**0.255 * X1**2.37
223
224 XSEA = 0.
225
226 ELSE
227
228 XVAL = 0.8477/(1.+1.37*S+2.18*S2+3.73*S3) * X**(0.51+0.21*S)
229
230 & * X1**1.37 * XL**(2.667*S)
231
232 XGLU = 24.*S/(1.+9.6*S+0.92*S2+14.34*S3) * EXP(-5.94*S) *
233
234 & X**((-0.013-1.80*S)/(1.+3.14*S)) * X1**(2.37+0.4*S) *
235
236 & XL**(0.32+3.6*S) + 3.42 * EXP(-12.*S) * X**0.255 *
237
238 & X1**(2.37+3.*S)
239
240 XSEA = 0.842*S/(1.+21.3*S-33.2*S2+229.*S3) *
241
242 & X**((0.13-2.90*S)/(1.+5.44*S)) * X1**(3.45+0.5*S) *
243
244 & XL**(2.8*S)
245
246 XSEA0 = 0.
247
248 ENDIF
249
250C
251
252C...Evaluate set 2D parton distributions below or above threshold.
253
254 ELSEIF(ISET.EQ.3) THEN
255
256 IF(Q2.LE.P2.OR.(KFA.EQ.4.AND.Q2.LT.PMC**2).OR.
257
258 &(KFA.EQ.5.AND.Q2.LT.PMB**2)) THEN
259
260 XVAL = X**0.46 * X1**0.64 + 0.76 * X
261
262 XGLU = 1.925 * X1**2
263
264 XSEA = 0.242 * X1**4
265
266 ELSE
267
268 XVAL = (1.+0.186*S)/(1.-0.209*S+1.495*S2) * X**(0.46+0.25*S)
269
270 & * X1**((0.64+0.14*S+5.*S2)/(1.+S)) * XL**(1.9*S) +
271
272 & (0.76+0.4*S) * X * X1**(2.667*S)
273
274 XGLU = (1.925+5.55*S+147.*S2)/(1.-3.59*S+3.32*S2) *
275
276 & EXP(-18.67*S) * X**((-5.81*S-5.34*S2)/(1.+29.*S-4.26*S2))
277
278 & * X1**((2.-5.9*S)/(1.+1.7*S)) * XL**(9.3*S/(1.+1.7*S))
279
280 XSEA = (0.242-0.252*S+1.19*S2)/(1.-0.607*S+21.95*S2) *
281
282 & X**(-12.1*S2/(1.+2.62*S+16.7*S2)) * X1**4 * XL**S
283
284 XSEA0 = 0.242 * X1**4
285
286 ENDIF
287
288C
289
290C...Evaluate set 2M parton distributions below or above threshold.
291
292 ELSEIF(ISET.EQ.4) THEN
293
294 IF(Q2.LE.P2.OR.(KFA.EQ.4.AND.Q2.LT.PMC**2).OR.
295
296 &(KFA.EQ.5.AND.Q2.LT.PMB**2)) THEN
297
298 XVAL = 1.168 * X**0.50 * X1**2.60 + 0.965 * X
299
300 XGLU = 1.808 * X1**2
301
302 XSEA = 0.209 * X1**4
303
304 ELSE
305
306 XVAL = (1.168+1.771*S+29.35*S2) * EXP(-5.776*S) *
307
308 & X**((0.5+0.208*S)/(1.-0.794*S+1.516*S2)) *
309
310 & X1**((2.6+7.6*S)/(1.+5.*S)) * XL**(5.15*S/(1.+2.*S)) +
311
312 & (0.965+22.35*S)/(1.+18.4*S) * X * X1**(2.667*S)
313
314 XGLU = (1.808+29.9*S)/(1.+26.4*S) * EXP(-5.28*S) *
315
316 & X**((-5.35*S-10.11*S2)/(1.+31.71*S)) *
317
318 & X1**((2.-7.3*S+4.*S2)/(1.+2.5*S)) *
319
320 & XL**(10.9*S/(1.+2.5*S))
321
322 XSEA = (0.209+0.644*S2)/(1.+0.319*S+17.6*S2) *
323
324 & X**((-0.373*S-7.71*S2)/(1.+0.815*S+11.0*S2)) *
325
326 & X1**(4.+S) * XL**(0.45*S)
327
328 XSEA0 = 0.209 * X1**4
329
330 ENDIF
331
332 ENDIF
333
334C
335
336C...Threshold factors for c and b sea.
337
338 SLL=LOG(LOG(Q2EFF/ALAM**2)/LOG(P2EFF/ALAM**2))
339
340 XCHM=0.
341
342 IF(Q2.GT.PMC**2.AND.Q2.GT.1.001*P2EFF) THEN
343
344 SCH=MAX(0.,LOG(LOG(PMC**2/ALAM**2)/LOG(P2EFF/ALAM**2)))
345
346 IF(ISET.EQ.0) THEN
347
348 XCHM=XSEA*(1.-(SCH/SLL)**2)
349
350 ELSE
351
352 XCHM=MAX(0.,XSEA-XSEA0*X1**(2.667*S))*(1.-SCH/SLL)
353
354 ENDIF
355
356 ENDIF
357
358 XBOT=0.
359
360 IF(Q2.GT.PMB**2.AND.Q2.GT.1.001*P2EFF) THEN
361
362 SBT=MAX(0.,LOG(LOG(PMB**2/ALAM**2)/LOG(P2EFF/ALAM**2)))
363
364 IF(ISET.EQ.0) THEN
365
366 XBOT=XSEA*(1.-(SBT/SLL)**2)
367
368 ELSE
369
370 XBOT=MAX(0.,XSEA-XSEA0*X1**(2.667*S))*(1.-SBT/SLL)
371
372 ENDIF
373
374 ENDIF
375
376C
377
378C...Fill parton distributions.
379
380 XPGA(0)=XGLU
381
382 XPGA(1)=XSEA
383
384 XPGA(2)=XSEA
385
386 XPGA(3)=XSEA
387
388 XPGA(4)=XCHM
389
390 XPGA(5)=XBOT
391
392 XPGA(KFA)=XPGA(KFA)+XVAL
393
394 DO 110 KFL=1,5
395
396 XPGA(-KFL)=XPGA(KFL)
397
398 110 CONTINUE
399
400 VXPGA(KFA)=XVAL
401
402 VXPGA(-KFA)=XVAL
403
404C
405
406 RETURN
407
408 END