2 C*********************************************************************
6 C...Handles the decumentation of the process in MSTI and PARI,
7 C...and also computes cross-sections based on accumulated statistics.
8 COMMON/LUJETS/N,K(4000,5),P(4000,5),V(4000,5)
9 COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
10 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
11 COMMON/PYSUBS/MSEL,MSUB(200),KFIN(2,-40:40),CKIN(200)
12 COMMON/PYINT1/MINT(400),VINT(400)
13 COMMON/PYINT2/ISET(200),KFPR(200,2),COEF(200,20),ICOL(40,4,2)
14 COMMON/PYINT5/NGEN(0:200,3),XSEC(0:200,3)
15 COMMON/PYINT9/DXSEC(0:200)
16 DOUBLE PRECISION DXSEC
17 SAVE /LUJETS/,/LUDAT1/
18 SAVE /PYSUBS/,/PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYINT9/
20 C...Calculate Monte Carlo estimates of cross-sections.
22 IF(MSTP(111).NE.-1) NGEN(ISUB,3)=NGEN(ISUB,3)+1
26 IF(I.EQ.96.OR.I.EQ.97) THEN
28 ELSEIF(MSUB(95).EQ.1.AND.(I.EQ.11.OR.I.EQ.12.OR.I.EQ.13.OR.
29 &I.EQ.28.OR.I.EQ.53.OR.I.EQ.68)) THEN
30 XSEC(I,3)=DXSEC(96)*NGEN(I,3)/MAX(1.,FLOAT(NGEN(96,1))*
32 ELSEIF(MSUB(I).EQ.0.OR.NGEN(I,1).EQ.0) THEN
34 ELSEIF(NGEN(I,2).EQ.0) THEN
35 XSEC(I,3)=DXSEC(I)*NGEN(0,3)/(FLOAT(NGEN(I,1))*
38 XSEC(I,3)=DXSEC(I)*NGEN(I,3)/(FLOAT(NGEN(I,1))*
41 XSEC(0,3)=XSEC(0,3)+XSEC(I,3)
44 C...Rescale to known low-pT cross-section for standard QCD processes.
45 IF(MSUB(95).EQ.1) THEN
46 XSECH=XSEC(11,3)+XSEC(12,3)+XSEC(13,3)+XSEC(28,3)+XSEC(53,3)+
47 & XSEC(68,3)+XSEC(95,3)
48 XSECW=DXSEC(97)/MAX(1.,FLOAT(NGEN(97,1)))
49 IF(XSECH.GT.1E-10.AND.XSECW.GT.1E-10) THEN
51 XSEC(11,3)=FAC*XSEC(11,3)
52 XSEC(12,3)=FAC*XSEC(12,3)
53 XSEC(13,3)=FAC*XSEC(13,3)
54 XSEC(28,3)=FAC*XSEC(28,3)
55 XSEC(53,3)=FAC*XSEC(53,3)
56 XSEC(68,3)=FAC*XSEC(68,3)
57 XSEC(95,3)=FAC*XSEC(95,3)
58 XSEC(0,3)=XSEC(0,3)-XSECH+XSECW
62 C...Save information for gamma-p and gamma-gamma.
63 IF(MINT(121).GT.1) THEN
69 C...Reset information on hard interaction.
75 C...Copy integer valued information from MINT into MSTI.
79 IF(MINT(121).GT.1) MSTI(9)=MINT(122)
81 C...Store cross-section variables in PARI.
83 PARI(2)=XSEC(0,3)/MINT(5)
86 VINT(98)=VINT(98)+VINT(100)
87 IF(MSTP(142).EQ.1) PARI(2)=XSEC(0,3)/VINT(98)
89 C...Store kinematics variables in PARI.
100 PARI(35)=PARI(33)-PARI(34)
107 PARI(42)=2.*VINT(47)/VINT(1)
110 C...Store information on scattered partons in PARI.
111 IF(ISUB.NE.95.AND.MINT(7)*MINT(8).NE.0) THEN
114 PARI(36+IS)=P(I,3)/VINT(1)
115 PARI(38+IS)=P(I,4)/VINT(1)
116 PR=MAX(1E-20,P(I,5)**2+P(I,1)**2+P(I,2)**2)
117 PARI(40+IS)=SIGN(LOG(MIN((SQRT(PR+P(I,3)**2)+ABS(P(I,3)))/
118 & SQRT(PR),1E20)),P(I,3))
119 PR=MAX(1E-20,P(I,1)**2+P(I,2)**2)
120 PARI(42+IS)=SIGN(LOG(MIN((SQRT(PR+P(I,3)**2)+ABS(P(I,3)))/
121 & SQRT(PR),1E20)),P(I,3))
122 PARI(44+IS)=P(I,3)/SQRT(1E-20+P(I,1)**2+P(I,2)**2+P(I,3)**2)
123 PARI(46+IS)=ULANGL(P(I,3),SQRT(P(I,1)**2+P(I,2)**2))
124 PARI(48+IS)=ULANGL(P(I,1),P(I,2))
128 C...Store sum up transverse and longitudinal momenta.
130 IF(ISUB.LE.90.OR.ISUB.GE.95) THEN
131 DO 150 I=MSTP(126)+1,N
132 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 150
133 PT=SQRT(P(I,1)**2+P(I,2)**2)
135 IF(I.LE.MINT(52)) PARI(66)=PARI(66)+PT
136 IF(I.GT.MINT(52).AND.I.LE.MINT(53)) PARI(68)=PARI(68)+PT
148 C...Store various other pieces of information into PARI.
156 C...Set information for LUTABU.
157 IF(ISET(ISUB).EQ.1.OR.ISET(ISUB).EQ.3) THEN
160 ELSEIF(ISET(ISUB).EQ.5) THEN