]>
Commit | Line | Data |
---|---|---|
e74335a4 | 1 | * $Id$ |
2 | ||
3 | C********************************************************************* | |
4 | ||
5 | SUBROUTINE LUZDIS_HIJING(KFL1,KFL2,PR,Z) | |
6 | ||
7 | C...Purpose: to generate the longitudinal splitting variable z. | |
8 | #include "ludat1_hijing.inc" | |
9 | ||
10 | C...Check if heavy flavour fragmentation. | |
11 | KFLA=IABS(KFL1) | |
12 | KFLB=IABS(KFL2) | |
13 | KFLH=KFLA | |
14 | IF(KFLA.GE.10) KFLH=MOD(KFLA/1000,10) | |
15 | ||
16 | C...Lund symmetric scaling function: determine parameters of shape. | |
17 | IF(MSTJ(11).EQ.1.OR.(MSTJ(11).EQ.3.AND.KFLH.LE.3)) THEN | |
18 | FA=PARJ(41) | |
19 | IF(MSTJ(91).EQ.1) FA=PARJ(43) | |
20 | IF(KFLB.GE.10) FA=FA+PARJ(45) | |
21 | FB=PARJ(42)*PR | |
22 | IF(MSTJ(91).EQ.1) FB=PARJ(44)*PR | |
23 | FC=1. | |
24 | IF(KFLA.GE.10) FC=FC-PARJ(45) | |
25 | IF(KFLB.GE.10) FC=FC+PARJ(45) | |
26 | MC=1 | |
27 | IF(ABS(FC-1.).GT.0.01) MC=2 | |
28 | ||
29 | C...Determine position of maximum. Special cases for a = 0 or a = c. | |
30 | IF(FA.LT.0.02) THEN | |
31 | MA=1 | |
32 | ZMAX=1. | |
33 | IF(FC.GT.FB) ZMAX=FB/FC | |
34 | ELSEIF(ABS(FC-FA).LT.0.01) THEN | |
35 | MA=2 | |
36 | ZMAX=FB/(FB+FC) | |
37 | ELSE | |
38 | MA=3 | |
39 | ZMAX=0.5*(FB+FC-SQRT((FB-FC)**2+4.*FA*FB))/(FC-FA) | |
40 | IF(ZMAX.GT.0.99.AND.FB.GT.100.) ZMAX=1.-FA/FB | |
41 | ENDIF | |
42 | ||
43 | C...Subdivide z range if distribution very peaked near endpoint. | |
44 | MMAX=2 | |
45 | IF(ZMAX.LT.0.1) THEN | |
46 | MMAX=1 | |
47 | ZDIV=2.75*ZMAX | |
48 | IF(MC.EQ.1) THEN | |
49 | FINT=1.-LOG(ZDIV) | |
50 | ELSE | |
51 | ZDIVC=ZDIV**(1.-FC) | |
52 | FINT=1.+(1.-1./ZDIVC)/(FC-1.) | |
53 | ENDIF | |
54 | ELSEIF(ZMAX.GT.0.85.AND.FB.GT.1.) THEN | |
55 | MMAX=3 | |
56 | FSCB=SQRT(4.+(FC/FB)**2) | |
57 | ZDIV=FSCB-1./ZMAX-(FC/FB)*LOG(ZMAX*0.5*(FSCB+FC/FB)) | |
58 | IF(MA.GE.2) ZDIV=ZDIV+(FA/FB)*LOG(1.-ZMAX) | |
59 | ZDIV=MIN(ZMAX,MAX(0.,ZDIV)) | |
60 | FINT=1.+FB*(1.-ZDIV) | |
61 | ENDIF | |
62 | ||
63 | C...Choice of z, preweighted for peaks at low or high z. | |
64 | 100 Z=RLU_HIJING(0) | |
65 | FPRE=1. | |
66 | IF(MMAX.EQ.1) THEN | |
67 | IF(FINT*RLU_HIJING(0).LE.1.) THEN | |
68 | Z=ZDIV*Z | |
69 | ELSEIF(MC.EQ.1) THEN | |
70 | Z=ZDIV**Z | |
71 | FPRE=ZDIV/Z | |
72 | ELSE | |
73 | Z=1./(ZDIVC+Z*(1.-ZDIVC))**(1./(1.-FC)) | |
74 | FPRE=(ZDIV/Z)**FC | |
75 | ENDIF | |
76 | ELSEIF(MMAX.EQ.3) THEN | |
77 | IF(FINT*RLU_HIJING(0).LE.1.) THEN | |
78 | Z=ZDIV+LOG(Z)/FB | |
79 | FPRE=EXP(FB*(Z-ZDIV)) | |
80 | ELSE | |
81 | Z=ZDIV+Z*(1.-ZDIV) | |
82 | ENDIF | |
83 | ENDIF | |
84 | ||
85 | C...Weighting according to correct formula. | |
86 | IF(Z.LE.FB/(50.+FB).OR.Z.GE.1.) GOTO 100 | |
87 | FVAL=(ZMAX/Z)**FC*EXP(FB*(1./ZMAX-1./Z)) | |
88 | IF(MA.GE.2) FVAL=((1.-Z)/(1.-ZMAX))**FA*FVAL | |
89 | IF(FVAL.LT.RLU_HIJING(0)*FPRE) GOTO 100 | |
90 | ||
91 | C...Generate z according to Field-Feynman, SLAC, (1-z)**c OR z**c. | |
92 | ELSE | |
93 | FC=PARJ(50+MAX(1,KFLH)) | |
94 | IF(MSTJ(91).EQ.1) FC=PARJ(59) | |
95 | 110 Z=RLU_HIJING(0) | |
96 | IF(FC.GE.0..AND.FC.LE.1.) THEN | |
97 | IF(FC.GT.RLU_HIJING(0)) Z=1.-Z**(1./3.) | |
98 | ELSEIF(FC.GT.-1.) THEN | |
99 | IF(-4.*FC*Z*(1.-Z)**2.LT.RLU_HIJING(0)*((1.-Z)**2-FC*Z)**2) | |
100 | $ GOTO 110 | |
101 | ELSE | |
102 | IF(FC.GT.0.) Z=1.-Z**(1./FC) | |
103 | IF(FC.LT.0.) Z=Z**(-1./FC) | |
104 | ENDIF | |
105 | ENDIF | |
106 | ||
107 | RETURN | |
108 | END |