]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ISAJET/code/qcdinz.F
Using AliITSgeomTGeo
[u/mrichter/AliRoot.git] / ISAJET / code / qcdinz.F
CommitLineData
0795afa3 1#include "isajet/pilot.h"
2 SUBROUTINE QCDINZ(J0)
3C
4C AUXILIARY ROUTINE FOR QCDINI. GENERATE A Z AND TWO DAUGHTER
5C PARTONS FOR SPACELIKE PARTON J0.
6C
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"
13C
14 DATA CA/3./,CF/1.333333333/
15C FUNCTIONS.
16 PQQ(Z)=CF*(1.+Z**2)/(1.-Z)
17 PQG(Z)=CF*(1.+(1.-Z)**2)/Z
18 PGQ(Z)=.5*(Z**2+(1.-Z)**2)
19 PGG(Z)=2.*CA*(1.-Z*(1.-Z))**2/(Z*(1.-Z))
20C
21C INITIALIZE
22 IDABS=IABS(JTYPE(J0))
23 AM0=ABS(PJSET(5,J0))
24 T0=AM0**2
25 JIN0=JIN(J0)
26 X0=(PJSET(4,J0)+SGN*PJSET(3,J0))/ECM
27 ZGOOD=.FALSE.
28 IF(ZMIN.GE.ZMAX) RETURN
29C
30C SELECT BRANCHING AND GENERATE Z ACCORDING TO ALTARELLI-PARISI
31C FUNCTIONS. THEN CHECK WITH STRUCTURE FUNCTIONS
32C
33C GLUON
34C
35 IF(IDABS.EQ.9) THEN
36C
37C GL->GL+GL
38 IF(JIN0.EQ.1) THEN
39110 ZGEN=DZMAX/ZMAX*(ZMAX*(1.-ZMIN)/(ZMIN*DZMAX))**RANF()
40 Z=1./(1.+ZGEN)
41 DZ=ZGEN/(1.+ZGEN)
42 GZ=2.*CA/(Z*DZ)
43 PGGZ=2.*CA*(1.-Z*(1.-Z))**2/(Z*DZ)
44 IF(PGGZ.LT.GZ*RANF()) GO TO 110
45 JTYPE(NJSET+1)=9
46 JTYPE(NJSET+2)=9
47 ZZC(J0)=Z
48C
49 X1=X0/Z
50 FX1=STRUC(X1,T0,1,IDIN(JET-10))
51 FX0=FXTEST(J0)
52 IF(FX1/FX0.GT.RANF()) ZGOOD=.TRUE.
53C
54C QK->GL+QK
55 ELSE
56120 RZMAX=SQRT(ZMAX)
57 RZMIN=SQRT(ZMIN)
58 ZGEN=1./RZMAX-RANF()*(1./RZMAX-1./RZMIN)
59 Z=1./ZGEN**2
60 RZ=SQRT(Z)
61 GZ=2.*CF/RZ**3
62 IF(PQG(Z)/RZ.LT.GZ*RANF()) GO TO 120
63 IFL=JIN0/2
64 IF(JIN0.NE.2*IFL) IFL=-IFL
65 JTYPE(NJSET+1)=IFL
66 JTYPE(NJSET+2)=IFL
67 ZZC(J0)=Z
68C
69 X1=X0/Z
70 FX1=STRUC(X1,T0,JIN0,IDIN(JET-10))
71 FX0=FXTEST(J0)
72 IF(RZ*FX1/FX0.GT.RANF()) ZGOOD=.TRUE.
73 ENDIF
74C
75C QUARK
76C
77 ELSE
78C
79C GL->QK+QB
80 IF(JIN0.EQ.1) THEN
81130 Z=ZMIN+(ZMAX-ZMIN)*RANF()
82 IF(PGQ(Z).LT..5*RANF()) GO TO 130
83 JTYPE(NJSET+1)=9
84 JTYPE(NJSET+2)=-JTYPE(J0)
85 ZZC(J0)=Z
86C
87 X1=X0/Z
88 FX1=STRUC(X1,T0,1,IDIN(JET-10))
89 FX0=FXTEST(J0)
90 IF(FX1/FX0.GT.RANF().OR.GLFORC(JET-10)) ZGOOD=.TRUE.
91C
92C QK->QK+GL
93 ELSE
94140 DZ=DZMAX*((1.-ZMIN)/DZMAX)**RANF()
95 Z=1.-DZ
96 GZ=2.*CF/DZ
97 RZ=1.
98 IF(IDABS.LE.3) RZ=SQRT(Z)
99 PQQZ=CF*(1.+Z**2)/DZ
100 IF(PQQZ/RZ.LT.GZ*RANF()) GO TO 140
101 JTYPE(NJSET+1)=JTYPE(J0)
102 JTYPE(NJSET+2)=9
103 ZZC(J0)=Z
104C
105 X1=X0/Z
106 FX1=STRUC(X1,T0,JIN0,IDIN(JET-10))
107 FX0=FXTEST(J0)
108 IF(RZ*FX1/FX0.GT.RANF()) ZGOOD=.TRUE.
109 ENDIF
110 ENDIF
111 JMATCH(NJSET+1)=0
112 JMATCH(NJSET+2)=0
113 RETURN
114 END