1 #include "isajet/pilot.h"
4 C AUXILIARY ROUTINE FOR QCDINI. GENERATE A NEW MASS FOR
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"
14 DIMENSION GAMS(13),FX0S(13)
15 DATA CA/3./,CF/1.333333333/
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))
25 GLFORC(JET-10)=.FALSE.
27 IF(JTYPE(J0).EQ.9) THEN
29 ELSEIF(JTYPE(J0).GT.0) THEN
41 110 ANF=ANF+T0/(AMQ2+T0)
44 C SET UP ANOMALOUS DIMENSIONS. ALSO USE THESE TO DETERMINE TYPE
45 C OF INCOMING PARTON (TO BE USED IN QCDINZ).
50 GAMG=GGG(ZMAX,DZMAX)-GGG(ZMIN,1.-ZMIN)
52 FX0=STRUC(X0,T0,1,IDIN(IBEAM))
54 GAMFAC=(GBQG(SQRT(ZMAX))-GBQG(SQRT(ZMIN)))/FX0
57 FX0S(IQ)=STRUC(X0,T0,IQ,IDIN(IBEAM))
58 GAMS(IQ)=GAMFAC*FX0S(IQ)
59 210 GAMQ=GAMQ+GAMS(IQ)
67 IF(SUM.LT.TRY) GO TO 220
74 ELSEIF(IDABS.LE.3) THEN
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))
80 GAMG=GAMFAC*(GGQ(ZMAX)-GGQ(ZMIN))
84 IF(GAMQ/GAM.GT.RANF()) THEN
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.
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.
101 PJSET(5,J0)=-AM0*SQRT(RANF())-ALAM
102 GLFORC(JET-10)=.TRUE.
110 FX0=STRUC(X0,T1,ITYP,IDIN(IBEAM))
115 FXG=STRUC(X0,T1,1,IDIN(IBEAM))
117 GAMQ=GQQ(ZMAX,DZMAX)-GQQ(ZMIN,1.-ZMIN)
118 GAMG=GAMFAC*(GGQ(ZMAX)-GGQ(ZMIN))
121 IF(GAMQ/GAM.GT.RANF()) THEN
130 C LEADING-LOG MASS GENERATION.
133 IF(AM1.GT.ALAM.AND.AM0.GT.ALAM) THEN
134 PROBL=GB*ALOG(ALOG(AM1/ALAM)/ALOG(AM0/ALAM))
140 ELSEIF(PROBL.GT.-50.) THEN
145 IF(PROB.GT.RANF()) THEN
146 IF(IDABS.LE.3.OR.IDABS.EQ.9) THEN
148 JDCAY(J0)=JPACK*J0+J0
150 ELSEIF(AM0.LT.AM1+CUTJET) THEN
151 PJSET(5,J0)=-SQRT(T0)
152 GLFORC(JET-10)=.TRUE.
162 POW=(1.-(1.-PROB)*RANF())**(1./GB)
163 AMNEW=ALAM*(AM0/ALAM)**POW
164 IF(AMNEW.GE.AM1) THEN
168 ELSEIF(IDABS.LE.3.OR.IDABS.EQ.9) THEN
170 JDCAY(J0)=JPACK*J0+J0
172 ELSEIF(AM0.LT.AM1+CUTJET) THEN
173 PJSET(5,J0)=-AM0*SQRT(RANF())-ALAM
174 GLFORC(JET-10)=.TRUE.