File indexing completed on 2025-08-05 08:21:19
0001
0002
0003
0004
0005
0006
0007
0008
0009 SUBROUTINE PYTABU(MTABU)
0010
0011
0012 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0013 IMPLICIT INTEGER(I-N)
0014 INTEGER PYK,PYCHGE,PYCOMP
0015
0016 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KTECHN=3000000,
0017 &KEXCIT=4000000,KDIMEN=5000000)
0018
0019 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
0020 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0021 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
0022 COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
0023 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/
0024
0025 DIMENSION KFIS(100,2),NPIS(100,0:10),KFFS(400),NPFS(400,4),
0026 &FEVFM(10,4),FM1FM(3,10,4),FM2FM(3,10,4),FMOMA(4),FMOMS(4),
0027 &FEVEE(50),FE1EC(50),FE2EC(50),FE1EA(25),FE2EA(25),
0028 &KFDM(8),KFDC(200,0:8),NPDC(200)
0029 SAVE NEVIS,NKFIS,KFIS,NPIS,NEVFS,NPRFS,NFIFS,NCHFS,NKFFS,
0030 &KFFS,NPFS,NEVFM,NMUFM,FM1FM,FM2FM,NEVEE,FE1EC,FE2EC,FE1EA,
0031 &FE2EA,NEVDC,NKFDC,NREDC,KFDC,NPDC
0032 CHARACTER CHAU*16,CHIS(2)*12,CHDC(8)*12
0033 DATA NEVIS/0/,NKFIS/0/,NEVFS/0/,NPRFS/0/,NFIFS/0/,NCHFS/0/,
0034 &NKFFS/0/,NEVFM/0/,NMUFM/0/,FM1FM/120*0D0/,FM2FM/120*0D0/,
0035 &NEVEE/0/,FE1EC/50*0D0/,FE2EC/50*0D0/,FE1EA/25*0D0/,FE2EA/25*0D0/,
0036 &NEVDC/0/,NKFDC/0/,NREDC/0/
0037
0038
0039 IF(MTABU.EQ.10) THEN
0040 NEVIS=0
0041 NKFIS=0
0042
0043
0044 ELSEIF(MTABU.EQ.11) THEN
0045 NEVIS=NEVIS+1
0046 KFM1=2*IABS(MSTU(161))
0047 IF(MSTU(161).GT.0) KFM1=KFM1-1
0048 KFM2=2*IABS(MSTU(162))
0049 IF(MSTU(162).GT.0) KFM2=KFM2-1
0050 KFMN=MIN(KFM1,KFM2)
0051 KFMX=MAX(KFM1,KFM2)
0052 DO 100 I=1,NKFIS
0053 IF(KFMN.EQ.KFIS(I,1).AND.KFMX.EQ.KFIS(I,2)) THEN
0054 IKFIS=-I
0055 GOTO 110
0056 ELSEIF(KFMN.LT.KFIS(I,1).OR.(KFMN.EQ.KFIS(I,1).AND.
0057 & KFMX.LT.KFIS(I,2))) THEN
0058 IKFIS=I
0059 GOTO 110
0060 ENDIF
0061 100 CONTINUE
0062 IKFIS=NKFIS+1
0063 110 IF(IKFIS.LT.0) THEN
0064 IKFIS=-IKFIS
0065 ELSE
0066 IF(NKFIS.GE.100) RETURN
0067 DO 130 I=NKFIS,IKFIS,-1
0068 KFIS(I+1,1)=KFIS(I,1)
0069 KFIS(I+1,2)=KFIS(I,2)
0070 DO 120 J=0,10
0071 NPIS(I+1,J)=NPIS(I,J)
0072 120 CONTINUE
0073 130 CONTINUE
0074 NKFIS=NKFIS+1
0075 KFIS(IKFIS,1)=KFMN
0076 KFIS(IKFIS,2)=KFMX
0077 DO 140 J=0,10
0078 NPIS(IKFIS,J)=0
0079 140 CONTINUE
0080 ENDIF
0081 NPIS(IKFIS,0)=NPIS(IKFIS,0)+1
0082
0083
0084 NP=0
0085 DO 160 I=1,N
0086 IF(K(I,1).LE.0.OR.K(I,1).GT.12) THEN
0087 ELSEIF(IABS(K(I,2)).GT.80.AND.IABS(K(I,2)).LE.100) THEN
0088 ELSEIF(IABS(K(I,2)).GT.100.AND.MOD(IABS(K(I,2))/10,10).NE.0)
0089 & THEN
0090 ELSE
0091 IM=I
0092 150 IM=K(IM,3)
0093 IF(IM.LE.0.OR.IM.GT.N) THEN
0094 NP=NP+1
0095 ELSEIF(K(IM,1).LE.0.OR.K(IM,1).GT.20) THEN
0096 NP=NP+1
0097 ELSEIF(IABS(K(IM,2)).GT.80.AND.IABS(K(IM,2)).LE.100) THEN
0098 ELSEIF(IABS(K(IM,2)).GT.100.AND.MOD(IABS(K(IM,2))/10,10)
0099 & .NE.0) THEN
0100 ELSE
0101 GOTO 150
0102 ENDIF
0103 ENDIF
0104 160 CONTINUE
0105 NPCO=MAX(NP,1)
0106 IF(NP.GE.6) NPCO=6
0107 IF(NP.GE.8) NPCO=7
0108 IF(NP.GE.11) NPCO=8
0109 IF(NP.GE.16) NPCO=9
0110 IF(NP.GE.26) NPCO=10
0111 NPIS(IKFIS,NPCO)=NPIS(IKFIS,NPCO)+1
0112 MSTU(62)=NP
0113
0114
0115 ELSEIF(MTABU.EQ.12) THEN
0116 FAC=1D0/MAX(1,NEVIS)
0117 WRITE(MSTU(11),5000) NEVIS
0118 DO 170 I=1,NKFIS
0119 KFMN=KFIS(I,1)
0120 IF(KFMN.EQ.0) KFMN=KFIS(I,2)
0121 KFM1=(KFMN+1)/2
0122 IF(2*KFM1.EQ.KFMN) KFM1=-KFM1
0123 CALL PYNAME(KFM1,CHAU)
0124 CHIS(1)=CHAU(1:12)
0125 IF(CHAU(13:13).NE.' ') CHIS(1)(12:12)='?'
0126 KFMX=KFIS(I,2)
0127 IF(KFIS(I,1).EQ.0) KFMX=0
0128 KFM2=(KFMX+1)/2
0129 IF(2*KFM2.EQ.KFMX) KFM2=-KFM2
0130 CALL PYNAME(KFM2,CHAU)
0131 CHIS(2)=CHAU(1:12)
0132 IF(CHAU(13:13).NE.' ') CHIS(2)(12:12)='?'
0133 WRITE(MSTU(11),5100) CHIS(1),CHIS(2),FAC*NPIS(I,0),
0134 & (NPIS(I,J)/DBLE(NPIS(I,0)),J=1,10)
0135 170 CONTINUE
0136
0137
0138 ELSEIF(MTABU.EQ.13) THEN
0139 FAC=1D0/MAX(1,NEVIS)
0140 DO 190 I=1,NKFIS
0141 KFMN=KFIS(I,1)
0142 IF(KFMN.EQ.0) KFMN=KFIS(I,2)
0143 KFM1=(KFMN+1)/2
0144 IF(2*KFM1.EQ.KFMN) KFM1=-KFM1
0145 KFMX=KFIS(I,2)
0146 IF(KFIS(I,1).EQ.0) KFMX=0
0147 KFM2=(KFMX+1)/2
0148 IF(2*KFM2.EQ.KFMX) KFM2=-KFM2
0149 K(I,1)=32
0150 K(I,2)=99
0151 K(I,3)=KFM1
0152 K(I,4)=KFM2
0153 K(I,5)=NPIS(I,0)
0154 DO 180 J=1,5
0155 P(I,J)=FAC*NPIS(I,J)
0156 V(I,J)=FAC*NPIS(I,J+5)
0157 180 CONTINUE
0158 190 CONTINUE
0159 N=NKFIS
0160 DO 200 J=1,5
0161 K(N+1,J)=0
0162 P(N+1,J)=0D0
0163 V(N+1,J)=0D0
0164 200 CONTINUE
0165 K(N+1,1)=32
0166 K(N+1,2)=99
0167 K(N+1,5)=NEVIS
0168 MSTU(3)=1
0169
0170
0171 ELSEIF(MTABU.EQ.20) THEN
0172 NEVFS=0
0173 NPRFS=0
0174 NFIFS=0
0175 NCHFS=0
0176 NKFFS=0
0177
0178
0179 ELSEIF(MTABU.EQ.21) THEN
0180 NEVFS=NEVFS+1
0181 MSTU(62)=0
0182 DO 260 I=1,N
0183 IF(K(I,1).LE.0.OR.K(I,1).GT.20.OR.K(I,1).EQ.13) GOTO 260
0184 MSTU(62)=MSTU(62)+1
0185 KC=PYCOMP(K(I,2))
0186 MPRI=0
0187 IF(K(I,3).LE.0.OR.K(I,3).GT.N) THEN
0188 MPRI=1
0189 ELSEIF(K(K(I,3),1).LE.0.OR.K(K(I,3),1).GT.20) THEN
0190 MPRI=1
0191 ELSEIF(K(K(I,3),2).GE.91.AND.K(K(I,3),2).LE.93) THEN
0192 MPRI=1
0193 ELSEIF(KC.EQ.0) THEN
0194 ELSEIF(K(K(I,3),1).EQ.13) THEN
0195 IM=K(K(I,3),3)
0196 IF(IM.LE.0.OR.IM.GT.N) THEN
0197 MPRI=1
0198 ELSEIF(K(IM,1).LE.0.OR.K(IM,1).GT.20) THEN
0199 MPRI=1
0200 ENDIF
0201 ELSEIF(KCHG(KC,2).EQ.0) THEN
0202 KCM=PYCOMP(K(K(I,3),2))
0203 IF(KCM.NE.0) THEN
0204 IF(KCHG(KCM,2).NE.0) MPRI=1
0205 ENDIF
0206 ENDIF
0207 IF(KC.NE.0.AND.MPRI.EQ.1) THEN
0208 IF(KCHG(KC,2).EQ.0) NPRFS=NPRFS+1
0209 ENDIF
0210 IF(K(I,1).LE.10) THEN
0211 NFIFS=NFIFS+1
0212 IF(PYCHGE(K(I,2)).NE.0) NCHFS=NCHFS+1
0213 ENDIF
0214
0215
0216 KFA=IABS(K(I,2))
0217 KFS=3-ISIGN(1,K(I,2))-MPRI
0218 DO 210 IP=1,NKFFS
0219 IF(KFA.EQ.KFFS(IP)) THEN
0220 IKFFS=-IP
0221 GOTO 220
0222 ELSEIF(KFA.LT.KFFS(IP)) THEN
0223 IKFFS=IP
0224 GOTO 220
0225 ENDIF
0226 210 CONTINUE
0227 IKFFS=NKFFS+1
0228 220 IF(IKFFS.LT.0) THEN
0229 IKFFS=-IKFFS
0230 ELSE
0231 IF(NKFFS.GE.400) RETURN
0232 DO 240 IP=NKFFS,IKFFS,-1
0233 KFFS(IP+1)=KFFS(IP)
0234 DO 230 J=1,4
0235 NPFS(IP+1,J)=NPFS(IP,J)
0236 230 CONTINUE
0237 240 CONTINUE
0238 NKFFS=NKFFS+1
0239 KFFS(IKFFS)=KFA
0240 DO 250 J=1,4
0241 NPFS(IKFFS,J)=0
0242 250 CONTINUE
0243 ENDIF
0244 NPFS(IKFFS,KFS)=NPFS(IKFFS,KFS)+1
0245 260 CONTINUE
0246
0247
0248 ELSEIF(MTABU.EQ.22) THEN
0249 FAC=1D0/MAX(1,NEVFS)
0250 WRITE(MSTU(11),5200) NEVFS,FAC*NPRFS,FAC*NFIFS,FAC*NCHFS
0251 DO 270 I=1,NKFFS
0252 CALL PYNAME(KFFS(I),CHAU)
0253 KC=PYCOMP(KFFS(I))
0254 MDCYF=0
0255 IF(KC.NE.0) MDCYF=MDCY(KC,1)
0256 WRITE(MSTU(11),5300) KFFS(I),CHAU,MDCYF,(FAC*NPFS(I,J),J=1,4),
0257 & FAC*(NPFS(I,1)+NPFS(I,2)+NPFS(I,3)+NPFS(I,4))
0258 270 CONTINUE
0259
0260
0261 ELSEIF(MTABU.EQ.23) THEN
0262 FAC=1D0/MAX(1,NEVFS)
0263 DO 290 I=1,NKFFS
0264 K(I,1)=32
0265 K(I,2)=99
0266 K(I,3)=KFFS(I)
0267 K(I,4)=0
0268 K(I,5)=NPFS(I,1)+NPFS(I,2)+NPFS(I,3)+NPFS(I,4)
0269 DO 280 J=1,4
0270 P(I,J)=FAC*NPFS(I,J)
0271 V(I,J)=0D0
0272 280 CONTINUE
0273 P(I,5)=FAC*K(I,5)
0274 V(I,5)=0D0
0275 290 CONTINUE
0276 N=NKFFS
0277 DO 300 J=1,5
0278 K(N+1,J)=0
0279 P(N+1,J)=0D0
0280 V(N+1,J)=0D0
0281 300 CONTINUE
0282 K(N+1,1)=32
0283 K(N+1,2)=99
0284 K(N+1,5)=NEVFS
0285 P(N+1,1)=FAC*NPRFS
0286 P(N+1,2)=FAC*NFIFS
0287 P(N+1,3)=FAC*NCHFS
0288 MSTU(3)=1
0289
0290
0291 ELSEIF(MTABU.EQ.30) THEN
0292 NEVFM=0
0293 NMUFM=0
0294 DO 330 IM=1,3
0295 DO 320 IB=1,10
0296 DO 310 IP=1,4
0297 FM1FM(IM,IB,IP)=0D0
0298 FM2FM(IM,IB,IP)=0D0
0299 310 CONTINUE
0300 320 CONTINUE
0301 330 CONTINUE
0302
0303
0304 ELSEIF(MTABU.EQ.31) THEN
0305 NEVFM=NEVFM+1
0306 NLOW=N+MSTU(3)
0307 NUPP=NLOW
0308 DO 410 I=1,N
0309 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 410
0310 IF(MSTU(41).GE.2) THEN
0311 KC=PYCOMP(K(I,2))
0312 IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR.
0313 & KC.EQ.18.OR.K(I,2).EQ.KSUSY1+22.OR.K(I,2).EQ.39.OR.
0314 & K(I,2).EQ.KSUSY1+39) GOTO 410
0315 IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.
0316 & PYCHGE(K(I,2)).EQ.0) GOTO 410
0317 ENDIF
0318 PMR=0D0
0319 IF(MSTU(42).EQ.1.AND.K(I,2).NE.22) PMR=PYMASS(211)
0320 IF(MSTU(42).GE.2) PMR=P(I,5)
0321 PR=MAX(1D-20,PMR**2+P(I,1)**2+P(I,2)**2)
0322 YETA=SIGN(LOG(MIN((SQRT(PR+P(I,3)**2)+ABS(P(I,3)))/SQRT(PR),
0323 & 1D20)),P(I,3))
0324 IF(ABS(YETA).GT.PARU(57)) GOTO 410
0325 PHI=PYANGL(P(I,1),P(I,2))
0326 IYETA=512D0*(YETA+PARU(57))/(2D0*PARU(57))
0327 IYETA=MAX(0,MIN(511,IYETA))
0328 IPHI=512D0*(PHI+PARU(1))/PARU(2)
0329 IPHI=MAX(0,MIN(511,IPHI))
0330 IYEP=0
0331 DO 340 IB=0,9
0332 IYEP=IYEP+4**IB*(2*MOD(IYETA/2**IB,2)+MOD(IPHI/2**IB,2))
0333 340 CONTINUE
0334
0335
0336 IF(NUPP.GT.MSTU(4)-5-MSTU(32)) THEN
0337 CALL PYERRM(11,'(PYTABU:) no more memory left in PYJETS')
0338 RETURN
0339 ENDIF
0340 NUPP=NUPP+1
0341 IF(NUPP.EQ.NLOW+1) THEN
0342 K(NUPP,1)=IYETA
0343 K(NUPP,2)=IPHI
0344 K(NUPP,3)=IYEP
0345 ELSE
0346 DO 350 I1=NUPP-1,NLOW+1,-1
0347 IF(IYETA.GE.K(I1,1)) GOTO 360
0348 K(I1+1,1)=K(I1,1)
0349 350 CONTINUE
0350 360 K(I1+1,1)=IYETA
0351 DO 370 I1=NUPP-1,NLOW+1,-1
0352 IF(IPHI.GE.K(I1,2)) GOTO 380
0353 K(I1+1,2)=K(I1,2)
0354 370 CONTINUE
0355 380 K(I1+1,2)=IPHI
0356 DO 390 I1=NUPP-1,NLOW+1,-1
0357 IF(IYEP.GE.K(I1,3)) GOTO 400
0358 K(I1+1,3)=K(I1,3)
0359 390 CONTINUE
0360 400 K(I1+1,3)=IYEP
0361 ENDIF
0362 410 CONTINUE
0363 K(NUPP+1,1)=2**10
0364 K(NUPP+1,2)=2**10
0365 K(NUPP+1,3)=4**10
0366
0367
0368 DO 480 IM=1,3
0369 DO 430 IB=1,10
0370 DO 420 IP=1,4
0371 FEVFM(IB,IP)=0D0
0372 420 CONTINUE
0373 430 CONTINUE
0374 DO 450 IB=1,10
0375 IF(IM.LE.2) IBIN=2**(10-IB)
0376 IF(IM.EQ.3) IBIN=4**(10-IB)
0377 IAGR=K(NLOW+1,IM)/IBIN
0378 NAGR=1
0379 DO 440 I=NLOW+2,NUPP+1
0380 ICUT=K(I,IM)/IBIN
0381 IF(ICUT.EQ.IAGR) THEN
0382 NAGR=NAGR+1
0383 ELSE
0384 IF(NAGR.EQ.1) THEN
0385 ELSEIF(NAGR.EQ.2) THEN
0386 FEVFM(IB,1)=FEVFM(IB,1)+2D0
0387 ELSEIF(NAGR.EQ.3) THEN
0388 FEVFM(IB,1)=FEVFM(IB,1)+6D0
0389 FEVFM(IB,2)=FEVFM(IB,2)+6D0
0390 ELSEIF(NAGR.EQ.4) THEN
0391 FEVFM(IB,1)=FEVFM(IB,1)+12D0
0392 FEVFM(IB,2)=FEVFM(IB,2)+24D0
0393 FEVFM(IB,3)=FEVFM(IB,3)+24D0
0394 ELSE
0395 FEVFM(IB,1)=FEVFM(IB,1)+NAGR*(NAGR-1D0)
0396 FEVFM(IB,2)=FEVFM(IB,2)+NAGR*(NAGR-1D0)*(NAGR-2D0)
0397 FEVFM(IB,3)=FEVFM(IB,3)+NAGR*(NAGR-1D0)*(NAGR-2D0)*
0398 & (NAGR-3D0)
0399 FEVFM(IB,4)=FEVFM(IB,4)+NAGR*(NAGR-1D0)*(NAGR-2D0)*
0400 & (NAGR-3D0)*(NAGR-4D0)
0401 ENDIF
0402 IAGR=ICUT
0403 NAGR=1
0404 ENDIF
0405 440 CONTINUE
0406 450 CONTINUE
0407
0408
0409 DO 470 IB=10,1,-1
0410 DO 460 IP=1,4
0411 IF(FEVFM(1,IP).LT.0.5D0) THEN
0412 FEVFM(IB,IP)=0D0
0413 ELSEIF(IM.LE.2) THEN
0414 FEVFM(IB,IP)=2D0**((IB-1)*IP)*FEVFM(IB,IP)/FEVFM(1,IP)
0415 ELSE
0416 FEVFM(IB,IP)=4D0**((IB-1)*IP)*FEVFM(IB,IP)/FEVFM(1,IP)
0417 ENDIF
0418 FM1FM(IM,IB,IP)=FM1FM(IM,IB,IP)+FEVFM(IB,IP)
0419 FM2FM(IM,IB,IP)=FM2FM(IM,IB,IP)+FEVFM(IB,IP)**2
0420 460 CONTINUE
0421 470 CONTINUE
0422 480 CONTINUE
0423 NMUFM=NMUFM+(NUPP-NLOW)
0424 MSTU(62)=NUPP-NLOW
0425
0426
0427 ELSEIF(MTABU.EQ.32) THEN
0428 FAC=1D0/MAX(1,NEVFM)
0429 IF(MSTU(42).LE.0) WRITE(MSTU(11),5400) NEVFM,'eta'
0430 IF(MSTU(42).EQ.1) WRITE(MSTU(11),5400) NEVFM,'ypi'
0431 IF(MSTU(42).GE.2) WRITE(MSTU(11),5400) NEVFM,'y '
0432 DO 510 IM=1,3
0433 WRITE(MSTU(11),5500)
0434 DO 500 IB=1,10
0435 BYETA=2D0*PARU(57)
0436 IF(IM.NE.2) BYETA=BYETA/2**(IB-1)
0437 BPHI=PARU(2)
0438 IF(IM.NE.1) BPHI=BPHI/2**(IB-1)
0439 IF(IM.LE.2) BNAVE=FAC*NMUFM/DBLE(2**(IB-1))
0440 IF(IM.EQ.3) BNAVE=FAC*NMUFM/DBLE(4**(IB-1))
0441 DO 490 IP=1,4
0442 FMOMA(IP)=FAC*FM1FM(IM,IB,IP)
0443 FMOMS(IP)=SQRT(MAX(0D0,FAC*(FAC*FM2FM(IM,IB,IP)-
0444 & FMOMA(IP)**2)))
0445 490 CONTINUE
0446 WRITE(MSTU(11),5600) BYETA,BPHI,BNAVE,(FMOMA(IP),FMOMS(IP),
0447 & IP=1,4)
0448 500 CONTINUE
0449 510 CONTINUE
0450
0451
0452 ELSEIF(MTABU.EQ.33) THEN
0453 FAC=1D0/MAX(1,NEVFM)
0454 DO 540 IM=1,3
0455 DO 530 IB=1,10
0456 I=10*(IM-1)+IB
0457 K(I,1)=32
0458 K(I,2)=99
0459 K(I,3)=1
0460 IF(IM.NE.2) K(I,3)=2**(IB-1)
0461 K(I,4)=1
0462 IF(IM.NE.1) K(I,4)=2**(IB-1)
0463 K(I,5)=0
0464 P(I,1)=2D0*PARU(57)/K(I,3)
0465 V(I,1)=PARU(2)/K(I,4)
0466 DO 520 IP=1,4
0467 P(I,IP+1)=FAC*FM1FM(IM,IB,IP)
0468 V(I,IP+1)=SQRT(MAX(0D0,FAC*(FAC*FM2FM(IM,IB,IP)-
0469 & P(I,IP+1)**2)))
0470 520 CONTINUE
0471 530 CONTINUE
0472 540 CONTINUE
0473 N=30
0474 DO 550 J=1,5
0475 K(N+1,J)=0
0476 P(N+1,J)=0D0
0477 V(N+1,J)=0D0
0478 550 CONTINUE
0479 K(N+1,1)=32
0480 K(N+1,2)=99
0481 K(N+1,5)=NEVFM
0482 MSTU(3)=1
0483
0484
0485 ELSEIF(MTABU.EQ.40) THEN
0486 NEVEE=0
0487 DO 560 J=1,25
0488 FE1EC(J)=0D0
0489 FE2EC(J)=0D0
0490 FE1EC(51-J)=0D0
0491 FE2EC(51-J)=0D0
0492 FE1EA(J)=0D0
0493 FE2EA(J)=0D0
0494 560 CONTINUE
0495
0496
0497 ELSEIF(MTABU.EQ.41) THEN
0498 NEVEE=NEVEE+1
0499 NLOW=N+MSTU(3)
0500 NUPP=NLOW
0501 ECM=0D0
0502 DO 570 I=1,N
0503 IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 570
0504 IF(MSTU(41).GE.2) THEN
0505 KC=PYCOMP(K(I,2))
0506 IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR.
0507 & KC.EQ.18.OR.K(I,2).EQ.KSUSY1+22.OR.K(I,2).EQ.39.OR.
0508 & K(I,2).EQ.KSUSY1+39) GOTO 570
0509 IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.
0510 & PYCHGE(K(I,2)).EQ.0) GOTO 570
0511 ENDIF
0512 PMR=0D0
0513 IF(MSTU(42).EQ.1.AND.K(I,2).NE.22) PMR=PYMASS(211)
0514 IF(MSTU(42).GE.2) PMR=P(I,5)
0515 IF(NUPP.GT.MSTU(4)-5-MSTU(32)) THEN
0516 CALL PYERRM(11,'(PYTABU:) no more memory left in PYJETS')
0517 RETURN
0518 ENDIF
0519 NUPP=NUPP+1
0520 P(NUPP,1)=P(I,1)
0521 P(NUPP,2)=P(I,2)
0522 P(NUPP,3)=P(I,3)
0523 P(NUPP,4)=SQRT(PMR**2+P(I,1)**2+P(I,2)**2+P(I,3)**2)
0524 P(NUPP,5)=MAX(1D-10,SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2))
0525 ECM=ECM+P(NUPP,4)
0526 570 CONTINUE
0527 IF(NUPP.EQ.NLOW) RETURN
0528
0529
0530 FAC=(2D0/ECM**2)*50D0/PARU(1)
0531 DO 580 J=1,50
0532 FEVEE(J)=0D0
0533 580 CONTINUE
0534 DO 600 I1=NLOW+2,NUPP
0535 DO 590 I2=NLOW+1,I1-1
0536 CTHE=(P(I1,1)*P(I2,1)+P(I1,2)*P(I2,2)+P(I1,3)*P(I2,3))/
0537 & (P(I1,5)*P(I2,5))
0538 THE=ACOS(MAX(-1D0,MIN(1D0,CTHE)))
0539 ITHE=MAX(1,MIN(50,1+INT(50D0*THE/PARU(1))))
0540 FEVEE(ITHE)=FEVEE(ITHE)+FAC*P(I1,4)*P(I2,4)
0541 590 CONTINUE
0542 600 CONTINUE
0543 DO 610 J=1,25
0544 FE1EC(J)=FE1EC(J)+FEVEE(J)
0545 FE2EC(J)=FE2EC(J)+FEVEE(J)**2
0546 FE1EC(51-J)=FE1EC(51-J)+FEVEE(51-J)
0547 FE2EC(51-J)=FE2EC(51-J)+FEVEE(51-J)**2
0548 FE1EA(J)=FE1EA(J)+(FEVEE(51-J)-FEVEE(J))
0549 FE2EA(J)=FE2EA(J)+(FEVEE(51-J)-FEVEE(J))**2
0550 610 CONTINUE
0551 MSTU(62)=NUPP-NLOW
0552
0553
0554 ELSEIF(MTABU.EQ.42) THEN
0555 FAC=1D0/MAX(1,NEVEE)
0556 WRITE(MSTU(11),5700) NEVEE
0557 DO 620 J=1,25
0558 FEEC1=FAC*FE1EC(J)
0559 FEES1=SQRT(MAX(0D0,FAC*(FAC*FE2EC(J)-FEEC1**2)))
0560 FEEC2=FAC*FE1EC(51-J)
0561 FEES2=SQRT(MAX(0D0,FAC*(FAC*FE2EC(51-J)-FEEC2**2)))
0562 FEECA=FAC*FE1EA(J)
0563 FEESA=SQRT(MAX(0D0,FAC*(FAC*FE2EA(J)-FEECA**2)))
0564 WRITE(MSTU(11),5800) 3.6D0*(J-1),3.6D0*J,FEEC1,FEES1,
0565 & FEEC2,FEES2,FEECA,FEESA
0566 620 CONTINUE
0567
0568
0569 ELSEIF(MTABU.EQ.43) THEN
0570 FAC=1D0/MAX(1,NEVEE)
0571 DO 630 I=1,25
0572 K(I,1)=32
0573 K(I,2)=99
0574 K(I,3)=0
0575 K(I,4)=0
0576 K(I,5)=0
0577 P(I,1)=FAC*FE1EC(I)
0578 V(I,1)=SQRT(MAX(0D0,FAC*(FAC*FE2EC(I)-P(I,1)**2)))
0579 P(I,2)=FAC*FE1EC(51-I)
0580 V(I,2)=SQRT(MAX(0D0,FAC*(FAC*FE2EC(51-I)-P(I,2)**2)))
0581 P(I,3)=FAC*FE1EA(I)
0582 V(I,3)=SQRT(MAX(0D0,FAC*(FAC*FE2EA(I)-P(I,3)**2)))
0583 P(I,4)=PARU(1)*(I-1)/50D0
0584 P(I,5)=PARU(1)*I/50D0
0585 V(I,4)=3.6D0*(I-1)
0586 V(I,5)=3.6D0*I
0587 630 CONTINUE
0588 N=25
0589 DO 640 J=1,5
0590 K(N+1,J)=0
0591 P(N+1,J)=0D0
0592 V(N+1,J)=0D0
0593 640 CONTINUE
0594 K(N+1,1)=32
0595 K(N+1,2)=99
0596 K(N+1,5)=NEVEE
0597 MSTU(3)=1
0598
0599
0600 ELSEIF(MTABU.EQ.50) THEN
0601 NEVDC=0
0602 NKFDC=0
0603 NREDC=0
0604
0605
0606 ELSEIF(MTABU.EQ.51) THEN
0607 NEVDC=NEVDC+1
0608 NDS=0
0609 DO 670 I=1,N
0610 IF(K(I,1).LE.0.OR.K(I,1).GE.6) GOTO 670
0611 NDS=NDS+1
0612 IF(NDS.GT.8) THEN
0613 NREDC=NREDC+1
0614 RETURN
0615 ENDIF
0616 KFM=2*IABS(K(I,2))
0617 IF(K(I,2).LT.0) KFM=KFM-1
0618 DO 650 IDS=NDS-1,1,-1
0619 IIN=IDS+1
0620 IF(KFM.LT.KFDM(IDS)) GOTO 660
0621 KFDM(IDS+1)=KFDM(IDS)
0622 650 CONTINUE
0623 IIN=1
0624 660 KFDM(IIN)=KFM
0625 670 CONTINUE
0626
0627
0628 DO 690 IDC=1,NKFDC
0629 IF(NDS.LT.KFDC(IDC,0)) THEN
0630 IKFDC=IDC
0631 GOTO 700
0632 ELSEIF(NDS.EQ.KFDC(IDC,0)) THEN
0633 DO 680 I=1,NDS
0634 IF(KFDM(I).LT.KFDC(IDC,I)) THEN
0635 IKFDC=IDC
0636 GOTO 700
0637 ELSEIF(KFDM(I).GT.KFDC(IDC,I)) THEN
0638 GOTO 690
0639 ENDIF
0640 680 CONTINUE
0641 IKFDC=-IDC
0642 GOTO 700
0643 ENDIF
0644 690 CONTINUE
0645 IKFDC=NKFDC+1
0646 700 IF(IKFDC.LT.0) THEN
0647 IKFDC=-IKFDC
0648 ELSEIF(NKFDC.GE.200) THEN
0649 NREDC=NREDC+1
0650 RETURN
0651 ELSE
0652 DO 720 IDC=NKFDC,IKFDC,-1
0653 NPDC(IDC+1)=NPDC(IDC)
0654 DO 710 I=0,8
0655 KFDC(IDC+1,I)=KFDC(IDC,I)
0656 710 CONTINUE
0657 720 CONTINUE
0658 NKFDC=NKFDC+1
0659 KFDC(IKFDC,0)=NDS
0660 DO 730 I=1,NDS
0661 KFDC(IKFDC,I)=KFDM(I)
0662 730 CONTINUE
0663 NPDC(IKFDC)=0
0664 ENDIF
0665 NPDC(IKFDC)=NPDC(IKFDC)+1
0666
0667
0668 ELSEIF(MTABU.EQ.52) THEN
0669 FAC=1D0/MAX(1,NEVDC)
0670 WRITE(MSTU(11),5900) NEVDC
0671 DO 750 IDC=1,NKFDC
0672 DO 740 I=1,KFDC(IDC,0)
0673 KFM=KFDC(IDC,I)
0674 KF=(KFM+1)/2
0675 IF(2*KF.NE.KFM) KF=-KF
0676 CALL PYNAME(KF,CHAU)
0677 CHDC(I)=CHAU(1:12)
0678 IF(CHAU(13:13).NE.' ') CHDC(I)(12:12)='?'
0679 740 CONTINUE
0680 WRITE(MSTU(11),6000) FAC*NPDC(IDC),(CHDC(I),I=1,KFDC(IDC,0))
0681 750 CONTINUE
0682 IF(NREDC.NE.0) WRITE(MSTU(11),6100) FAC*NREDC
0683
0684
0685 ELSEIF(MTABU.EQ.53) THEN
0686 FAC=1D0/MAX(1,NEVDC)
0687 DO 780 IDC=1,NKFDC
0688 K(IDC,1)=32
0689 K(IDC,2)=99
0690 K(IDC,3)=0
0691 K(IDC,4)=0
0692 K(IDC,5)=KFDC(IDC,0)
0693 DO 760 J=1,5
0694 P(IDC,J)=0D0
0695 V(IDC,J)=0D0
0696 760 CONTINUE
0697 DO 770 I=1,KFDC(IDC,0)
0698 KFM=KFDC(IDC,I)
0699 KF=(KFM+1)/2
0700 IF(2*KF.NE.KFM) KF=-KF
0701 IF(I.LE.5) P(IDC,I)=KF
0702 IF(I.GE.6) V(IDC,I-5)=KF
0703 770 CONTINUE
0704 V(IDC,5)=FAC*NPDC(IDC)
0705 780 CONTINUE
0706 N=NKFDC
0707 DO 790 J=1,5
0708 K(N+1,J)=0
0709 P(N+1,J)=0D0
0710 V(N+1,J)=0D0
0711 790 CONTINUE
0712 K(N+1,1)=32
0713 K(N+1,2)=99
0714 K(N+1,5)=NEVDC
0715 V(N+1,5)=FAC*NREDC
0716 MSTU(3)=1
0717 ENDIF
0718
0719
0720 5000 FORMAT(///20X,'Event statistics - initial state'/
0721 &20X,'based on an analysis of ',I6,' events'//
0722 &3X,'Main flavours after',8X,'Fraction',4X,'Subfractions ',
0723 &'according to fragmenting system multiplicity'/
0724 &4X,'hard interaction',24X,'1',7X,'2',7X,'3',7X,'4',7X,'5',
0725 &6X,'6-7',5X,'8-10',3X,'11-15',3X,'16-25',4X,'>25'/)
0726 5100 FORMAT(3X,A12,1X,A12,F10.5,1X,10F8.4)
0727 5200 FORMAT(///20X,'Event statistics - final state'/
0728 &20X,'based on an analysis of ',I7,' events'//
0729 &5X,'Mean primary multiplicity =',F10.4/
0730 &5X,'Mean final multiplicity =',F10.4/
0731 &5X,'Mean charged multiplicity =',F10.4//
0732 &5X,'Number of particles produced per event (directly and via ',
0733 &'decays/branchings)'/
0734 &8X,'KF Particle/jet MDCY',10X,'Particles',13X,'Antiparticles',
0735 &8X,'Total'/35X,'prim seco prim seco'/)
0736 5300 FORMAT(1X,I9,4X,A16,I2,5(1X,F11.6))
0737 5400 FORMAT(///20X,'Factorial moments analysis of multiplicity'/
0738 &20X,'based on an analysis of ',I6,' events'//
0739 &3X,'delta-',A3,' delta-phi <n>/bin',10X,'<F2>',18X,'<F3>',
0740 &18X,'<F4>',18X,'<F5>'/35X,4(' value error '))
0741 5500 FORMAT(10X)
0742 5600 FORMAT(2X,2F10.4,F12.4,4(F12.4,F10.4))
0743 5700 FORMAT(///20X,'Energy-Energy Correlation and Asymmetry'/
0744 &20X,'based on an analysis of ',I6,' events'//
0745 &2X,'theta range',8X,'EEC(theta)',8X,'EEC(180-theta)',7X,
0746 &'EECA(theta)'/2X,'in degrees ',3(' value error')/)
0747 5800 FORMAT(2X,F4.1,' - ',F4.1,3(F11.4,F9.4))
0748 5900 FORMAT(///20X,'Decay channel analysis - final state'/
0749 &20X,'based on an analysis of ',I6,' events'//
0750 &2X,'Probability',10X,'Complete final state'/)
0751 6000 FORMAT(2X,F9.5,5X,8(A12,1X))
0752 6100 FORMAT(2X,F9.5,5X,'into other channels (more than 8 particles ',
0753 &'or table overflow)')
0754
0755 RETURN
0756 END