]>
Commit | Line | Data |
---|---|---|
0795afa3 | 1 | #include "isajet/pilot.h" |
2 | SUBROUTINE QCDINT(J0) | |
3 | C | |
4 | C AUXILIARY ROUTINE FOR QCDINI. GENERATE A NEW MASS FOR | |
5 | C SPACELIKE PARTON J0. | |
6 | C | |
7 | #include "isajet/itapes.inc" | |
8 | #include "isajet/jetset.inc" | |
9 | #include "isajet/jwork.inc" | |
10 | #include "isajet/jwork2.inc" | |
11 | #include "isajet/qcdpar.inc" | |
12 | #include "isajet/primar.inc" | |
13 | C | |
14 | DIMENSION GAMS(13),FX0S(13) | |
15 | DATA CA/3./,CF/1.333333333/ | |
16 | C | |
17 | C FUNCTIONS -- USE DZMAX FOR PRECISION | |
18 | GQQ(Z,DZ)=CF*(-2.*ALOG(DZ)+Z*(-1.-.5*Z)) | |
19 | GQG(Z)=CF*(+2.*ALOG(Z)+Z*(-2.+.5*Z)) | |
20 | GGQ(Z)=(Z**3-(1.-Z)**3)/6. | |
21 | GGG(Z,DZ)=2.*CA*(ALOG(Z/DZ)+Z*(-2.+Z*(.5-Z/3.))) | |
22 | GBQQ(RZ,DZ)=CF*(2.*ALOG((1.+RZ)**2/DZ)+RZ*(-2.-2./3.*RZ**2)) | |
23 | GBQG(RZ)=CF*(-4./RZ+RZ*(-4.+2./3.*RZ**2)) | |
24 | C | |
25 | GLFORC(JET-10)=.FALSE. | |
26 | IDABS=IABS(JTYPE(J0)) | |
27 | IF(JTYPE(J0).EQ.9) THEN | |
28 | ITYP=1 | |
29 | ELSEIF(JTYPE(J0).GT.0) THEN | |
30 | ITYP=2*IDABS | |
31 | ELSE | |
32 | ITYP=2.*IDABS+1 | |
33 | ENDIF | |
34 | IBEAM=JET-10 | |
35 | AM0=ABS(PJSET(5,J0)) | |
36 | 1 T0=AM0**2 | |
37 | X0=ZMIN | |
38 | ANF=3 | |
39 | DO 110 I=4,6 | |
40 | AMQ2=AMASS(I)**2 | |
41 | 110 ANF=ANF+T0/(AMQ2+T0) | |
42 | B0=11.-2.*ANF/3. | |
43 | C | |
44 | C SET UP ANOMALOUS DIMENSIONS. ALSO USE THESE TO DETERMINE TYPE | |
45 | C OF INCOMING PARTON (TO BE USED IN QCDINZ). | |
46 | C | |
47 | C GLUON | |
48 | IF(IDABS.EQ.9) THEN | |
49 | AMQ=0. | |
50 | GAMG=GGG(ZMAX,DZMAX)-GGG(ZMIN,1.-ZMIN) | |
51 | GAMS(1)=GAMG | |
52 | FX0=STRUC(X0,T0,1,IDIN(IBEAM)) | |
53 | FX0S(1)=FX0 | |
54 | GAMFAC=(GBQG(SQRT(ZMAX))-GBQG(SQRT(ZMIN)))/FX0 | |
55 | GAMQ=0. | |
56 | DO 210 IQ=2,13 | |
57 | FX0S(IQ)=STRUC(X0,T0,IQ,IDIN(IBEAM)) | |
58 | GAMS(IQ)=GAMFAC*FX0S(IQ) | |
59 | 210 GAMQ=GAMQ+GAMS(IQ) | |
60 | GAM=GAMG+GAMQ | |
61 | AM1=CUTJET | |
62 | C | |
63 | TRY=RANF() | |
64 | SUM=0. | |
65 | DO 220 IQ=1,13 | |
66 | SUM=SUM+GAMS(IQ)/GAM | |
67 | IF(SUM.LT.TRY) GO TO 220 | |
68 | JIN(J0)=IQ | |
69 | FXTEST(J0)=FX0S(IQ) | |
70 | GO TO 300 | |
71 | 220 CONTINUE | |
72 | C | |
73 | C LIGHT QUARK | |
74 | ELSEIF(IDABS.LE.3) THEN | |
75 | AMQ=AMASS(IDABS) | |
76 | GAMQ=GBQQ(SQRT(ZMAX),DZMAX)-GBQQ(SQRT(ZMIN),1.-ZMIN) | |
77 | FX0=STRUC(X0,T0,ITYP,IDIN(IBEAM)) | |
78 | FXG=STRUC(X0,T0,1,IDIN(IBEAM)) | |
79 | GAMFAC=FXG/FX0 | |
80 | GAMG=GAMFAC*(GGQ(ZMAX)-GGQ(ZMIN)) | |
81 | GAM=GAMQ+GAMG | |
82 | AM1=AMQ+CUTJET | |
83 | C | |
84 | IF(GAMQ/GAM.GT.RANF()) THEN | |
85 | JIN(J0)=ITYP | |
86 | FXTEST(J0)=FX0 | |
87 | ELSE | |
88 | JIN(J0)=1 | |
89 | FXTEST(J0)=FXG | |
90 | ENDIF | |
91 | C | |
92 | C HEAVY QUARK -- SPECIAL TREATMENT NEEDED TO ALWAYS FORCE | |
93 | C GL-->QK+QB BEFORE END OF EVOLUTION. | |
94 | C USE SMALLER MASS FOR FORCED DECAYS TO PREVENT INFINITE LOOP. | |
95 | ELSE | |
96 | AMQ=AMASS(IDABS) | |
97 | THRESH=4.*AMQ**2*X0/(1.-X0) | |
98 | THRESH=(SQRT(THRESH)+CUTJET)**2 | |
99 | IF(STRUC(X0,T0,ITYP,IDIN(IBEAM)).LE.0..OR. | |
100 | $ T0.LE.THRESH) THEN | |
101 | PJSET(5,J0)=-AM0*SQRT(RANF())-ALAM | |
102 | GLFORC(JET-10)=.TRUE. | |
103 | JDCAY(J0)=-2 | |
104 | JIN(J0)=1 | |
105 | FXTEST(J0)=1. | |
106 | RETURN | |
107 | ENDIF | |
108 | T1=SQRT(T0*THRESH) | |
109 | 230 AM1=SQRT(T1) | |
110 | FX0=STRUC(X0,T1,ITYP,IDIN(IBEAM)) | |
111 | IF(FX0.LE.0.) THEN | |
112 | T1=SQRT(T1*T0) | |
113 | GO TO 230 | |
114 | ENDIF | |
115 | FXG=STRUC(X0,T1,1,IDIN(IBEAM)) | |
116 | GAMFAC=FXG/FX0 | |
117 | GAMQ=GQQ(ZMAX,DZMAX)-GQQ(ZMIN,1.-ZMIN) | |
118 | GAMG=GAMFAC*(GGQ(ZMAX)-GGQ(ZMIN)) | |
119 | GAM=GAMQ+GAMG | |
120 | C | |
121 | IF(GAMQ/GAM.GT.RANF()) THEN | |
122 | JIN(J0)=ITYP | |
123 | FXTEST(J0)=FX0 | |
124 | ELSE | |
125 | JIN(J0)=1 | |
126 | FXTEST(J0)=FXG | |
127 | ENDIF | |
128 | ENDIF | |
129 | C | |
130 | C LEADING-LOG MASS GENERATION. | |
131 | C | |
132 | 300 GB=2.*GAM/B0 | |
133 | IF(AM1.GT.ALAM.AND.AM0.GT.ALAM) THEN | |
134 | PROBL=GB*ALOG(ALOG(AM1/ALAM)/ALOG(AM0/ALAM)) | |
135 | ELSE | |
136 | PROBL=0. | |
137 | ENDIF | |
138 | IF(PROBL.GT.0.) THEN | |
139 | PROB=1. | |
140 | ELSEIF(PROBL.GT.-50.) THEN | |
141 | PROB=EXP(PROBL) | |
142 | ELSE | |
143 | PROB=0. | |
144 | ENDIF | |
145 | IF(PROB.GT.RANF()) THEN | |
146 | IF(IDABS.LE.3.OR.IDABS.EQ.9) THEN | |
147 | PJSET(5,J0)=AMQ | |
148 | JDCAY(J0)=JPACK*J0+J0 | |
149 | RETURN | |
150 | ELSEIF(AM0.LT.AM1+CUTJET) THEN | |
151 | PJSET(5,J0)=-SQRT(T0) | |
152 | GLFORC(JET-10)=.TRUE. | |
153 | JDCAY(J0)=-2 | |
154 | JIN(J0)=1 | |
155 | FXTEST(J0)=1 | |
156 | RETURN | |
157 | ELSE | |
158 | AM0=AM1 | |
159 | GO TO 1 | |
160 | ENDIF | |
161 | ELSE | |
162 | POW=(1.-(1.-PROB)*RANF())**(1./GB) | |
163 | AMNEW=ALAM*(AM0/ALAM)**POW | |
164 | IF(AMNEW.GE.AM1) THEN | |
165 | PJSET(5,J0)=-AMNEW | |
166 | JDCAY(J0)=-2 | |
167 | RETURN | |
168 | ELSEIF(IDABS.LE.3.OR.IDABS.EQ.9) THEN | |
169 | PJSET(5,J0)=AMQ | |
170 | JDCAY(J0)=JPACK*J0+J0 | |
171 | RETURN | |
172 | ELSEIF(AM0.LT.AM1+CUTJET) THEN | |
173 | PJSET(5,J0)=-AM0*SQRT(RANF())-ALAM | |
174 | GLFORC(JET-10)=.TRUE. | |
175 | JDCAY(J0)=-2 | |
176 | JIN(J0)=1 | |
177 | FXTEST(J0)=1 | |
178 | RETURN | |
179 | ELSE | |
180 | AM0=AM1 | |
181 | GO TO 1 | |
182 | ENDIF | |
183 | ENDIF | |
184 | END |