File indexing completed on 2025-08-05 08:21:12
0001
0002
0003
0004
0005
0006
0007
0008 SUBROUTINE PYLIST(MLIST)
0009
0010
0011 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0012 IMPLICIT INTEGER(I-N)
0013 INTEGER PYK,PYCHGE,PYCOMP
0014
0015 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KTECHN=3000000,
0016 &KEXCIT=4000000,KDIMEN=5000000)
0017
0018
0019 PARAMETER (NMXHEP=4000)
0020 COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
0021 &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
0022 DOUBLE PRECISION PHEP,VHEP
0023 SAVE /HEPEVT/
0024
0025
0026 INTEGER MAXNUP
0027 PARAMETER (MAXNUP=500)
0028 INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
0029 DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP
0030 COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP),
0031 &ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP),
0032 &VTIMUP(MAXNUP),SPINUP(MAXNUP)
0033 SAVE /HEPEUP/
0034
0035
0036 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
0037 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0038 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
0039 COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
0040 COMMON/PYCTAG/NCT,MCT(4000,2)
0041 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYCTAG/
0042
0043 CHARACTER CHAP*16,CHAC*16,CHAN*16,CHAD(5)*16,CHDL(7)*4
0044 DIMENSION PS(6)
0045 DATA CHDL/'(())',' ','()','!!','<>','==','(==)'/
0046
0047
0048 IF(MLIST.EQ.0.OR.MSTU(12).EQ.1) THEN
0049 CALL PYLOGO
0050 MSTU(12)=12345
0051 IF(MLIST.EQ.0) RETURN
0052 ENDIF
0053
0054
0055 IF(MLIST.GE.1.AND.MLIST.LE.4) THEN
0056 IF(MLIST.EQ.1) WRITE(MSTU(11),5100)
0057 IF(MLIST.EQ.2) WRITE(MSTU(11),5200)
0058 IF(MLIST.EQ.3) WRITE(MSTU(11),5300)
0059 IF(MLIST.EQ.4) WRITE(MSTU(11),5400)
0060 LMX=12
0061 IF(MLIST.GE.2) LMX=16
0062 ISTR=0
0063 IMAX=N
0064 IF(MSTU(2).GT.0) IMAX=MSTU(2)
0065 DO 120 I=MAX(1,MSTU(1)),MAX(IMAX,N+MAX(0,MSTU(3)))
0066 IF(I.GT.IMAX.AND.I.LE.N) GOTO 120
0067 IF(MSTU(15).EQ.0.AND.K(I,1).LE.0) GOTO 120
0068 IF(MSTU(15).EQ.1.AND.K(I,1).LT.0) GOTO 120
0069
0070
0071 CALL PYNAME(K(I,2),CHAP)
0072 LEN=0
0073 DO 100 LEM=1,16
0074 IF(CHAP(LEM:LEM).NE.' ') LEN=LEM
0075 100 CONTINUE
0076 MDL=(K(I,1)+19)/10
0077 LDL=0
0078 IF(MDL.EQ.2.OR.MDL.GE.8) THEN
0079 CHAC=CHAP
0080 IF(LEN.GT.LMX) CHAC(LMX:LMX)='?'
0081 ELSE
0082 LDL=1
0083 IF(MDL.EQ.1.OR.MDL.EQ.7) LDL=2
0084 IF(LEN.EQ.0) THEN
0085 CHAC=CHDL(MDL)(1:2*LDL)//' '
0086 ELSE
0087 CHAC=CHDL(MDL)(1:LDL)//CHAP(1:MIN(LEN,LMX-2*LDL))//
0088 & CHDL(MDL)(LDL+1:2*LDL)//' '
0089 IF(LEN+2*LDL.GT.LMX) CHAC(LMX:LMX)='?'
0090 ENDIF
0091 ENDIF
0092
0093
0094 IF(K(I,1).EQ.1.OR.K(I,1).EQ.2.OR.K(I,1).EQ.11.OR.K(I,1).EQ.12)
0095 & THEN
0096 KC=PYCOMP(K(I,2))
0097 KCC=0
0098 IF(KC.NE.0) KCC=KCHG(KC,2)
0099 IF(IABS(K(I,2)).EQ.39) THEN
0100 IF(LEN+2*LDL+3.LE.LMX) CHAC(LMX-1:LMX-1)='X'
0101 ELSEIF(KCC.NE.0.AND.ISTR.EQ.0) THEN
0102 ISTR=1
0103 IF(LEN+2*LDL+3.LE.LMX) CHAC(LMX-1:LMX-1)='A'
0104 ELSEIF(KCC.NE.0.AND.(K(I,1).EQ.2.OR.K(I,1).EQ.12)) THEN
0105 IF(LEN+2*LDL+3.LE.LMX) CHAC(LMX-1:LMX-1)='I'
0106 ELSEIF(KCC.NE.0) THEN
0107 ISTR=0
0108 IF(LEN+2*LDL+3.LE.LMX) CHAC(LMX-1:LMX-1)='V'
0109 ENDIF
0110 ENDIF
0111 IF((K(I,1).EQ.41.OR.K(I,1).EQ.51).AND.LEN+2*LDL+3.LE.LMX)
0112 & CHAC(LMX-1:LMX-1)='I'
0113
0114
0115 IF(MLIST.EQ.1.AND.ABS(P(I,4)).LT.9999D0) THEN
0116 WRITE(MSTU(11),5500) I,CHAC(1:12),(K(I,J1),J1=1,3),
0117 & (P(I,J2),J2=1,5)
0118 ELSEIF(MLIST.EQ.1.AND.ABS(P(I,4)).LT.99999D0) THEN
0119 WRITE(MSTU(11),5600) I,CHAC(1:12),(K(I,J1),J1=1,3),
0120 & (P(I,J2),J2=1,5)
0121 ELSEIF(MLIST.EQ.1) THEN
0122 WRITE(MSTU(11),5700) I,CHAC(1:12),(K(I,J1),J1=1,3),
0123 & (P(I,J2),J2=1,5)
0124 ELSEIF(MSTU(5).EQ.10000.AND.(K(I,1).EQ.3.OR.K(I,1).EQ.13.OR.
0125 & K(I,1).EQ.14.OR.K(I,1).EQ.42.OR.K(I,1).EQ.52)) THEN
0126 IF(MLIST.NE.4) WRITE(MSTU(11),5800) I,CHAC,(K(I,J1),J1=1,3),
0127 & K(I,4)/100000000,MOD(K(I,4)/10000,10000),MOD(K(I,4),10000),
0128 & K(I,5)/100000000,MOD(K(I,5)/10000,10000),MOD(K(I,5),10000),
0129 & (P(I,J2),J2=1,5)
0130 IF(MLIST.EQ.4) WRITE(MSTU(11),5900) I,CHAC,(K(I,J1),J1=1,3),
0131 & K(I,4)/100000000,MOD(K(I,4)/10000,10000),MOD(K(I,4),10000),
0132 & K(I,5)/100000000,MOD(K(I,5)/10000,10000),MOD(K(I,5)
0133 & ,10000),MCT(I,1),MCT(I,2)
0134 ELSE
0135 IF(MLIST.NE.4) WRITE(MSTU(11),6000) I,CHAC,(K(I,J1),J1=1,5),
0136 & (P(I,J2),J2=1,5)
0137 IF(MLIST.EQ.4) WRITE(MSTU(11),6100) I,CHAC,(K(I,J1),J1=1,5)
0138 & ,MCT(I,1),MCT(I,2)
0139 ENDIF
0140 IF(MLIST.EQ.3) WRITE(MSTU(11),6200) (V(I,J),J=1,5)
0141
0142
0143 IF(MSTU(70).GE.1) THEN
0144 ISEP=0
0145 DO 110 J=1,MIN(10,MSTU(70))
0146 IF(I.EQ.MSTU(70+J)) ISEP=1
0147 110 CONTINUE
0148 IF(ISEP.EQ.1) THEN
0149 IF(MLIST.EQ.1) WRITE(MSTU(11),6300)
0150 IF(MLIST.EQ.2.OR.MLIST.EQ.3) WRITE(MSTU(11),6400)
0151 IF(MLIST.EQ.4) WRITE(MSTU(11),6500)
0152 ENDIF
0153 ENDIF
0154 120 CONTINUE
0155
0156
0157 DO 130 J=1,6
0158 PS(J)=PYP(0,J)
0159 130 CONTINUE
0160 IF(MLIST.EQ.1.AND.ABS(PS(4)).LT.9999D0) THEN
0161 WRITE(MSTU(11),6600) PS(6),(PS(J),J=1,5)
0162 ELSEIF(MLIST.EQ.1.AND.ABS(PS(4)).LT.99999D0) THEN
0163 WRITE(MSTU(11),6700) PS(6),(PS(J),J=1,5)
0164 ELSEIF(MLIST.EQ.1) THEN
0165 WRITE(MSTU(11),6800) PS(6),(PS(J),J=1,5)
0166 ELSEIF(MLIST.LE.3) THEN
0167 WRITE(MSTU(11),6900) PS(6),(PS(J),J=1,5)
0168 ELSE
0169 WRITE(MSTU(11),7000) PS(6)
0170 ENDIF
0171
0172
0173 ELSEIF(MLIST.EQ.5) THEN
0174 WRITE(MSTU(11),7100)
0175 DO 140 I=1,NHEP
0176 IF(ISTHEP(I).EQ.0) GOTO 140
0177 WRITE(MSTU(11),7200) I,ISTHEP(I),IDHEP(I),JMOHEP(1,I),
0178 & JMOHEP(2,I),JDAHEP(1,I),JDAHEP(2,I),(PHEP(J,I),J=1,5)
0179 140 CONTINUE
0180
0181
0182
0183 ELSEIF(MLIST.EQ.7) THEN
0184 WRITE(MSTU(11),7300)
0185 DO 150 I=1,NUP
0186 WRITE(MSTU(11),7400) I,ISTUP(I),IDUP(I),MOTHUP(1,I),
0187 & MOTHUP(2,I),ICOLUP(1,I),ICOLUP(2,I),(PUP(J,I),J=1,5)
0188 150 CONTINUE
0189
0190
0191 ELSEIF(MLIST.EQ.11) THEN
0192 WRITE(MSTU(11),7500)
0193 DO 160 KF=1,80
0194 CALL PYNAME(KF,CHAP)
0195 CALL PYNAME(-KF,CHAN)
0196 IF(CHAP.NE.' '.AND.CHAN.EQ.' ') WRITE(MSTU(11),7600) KF,CHAP
0197 IF(CHAN.NE.' ') WRITE(MSTU(11),7600) KF,CHAP,-KF,CHAN
0198 160 CONTINUE
0199 DO 190 KFLS=1,3,2
0200 DO 180 KFLA=1,5
0201 DO 170 KFLB=1,KFLA-(3-KFLS)/2
0202 KF=1000*KFLA+100*KFLB+KFLS
0203 CALL PYNAME(KF,CHAP)
0204 CALL PYNAME(-KF,CHAN)
0205 WRITE(MSTU(11),7600) KF,CHAP,-KF,CHAN
0206 170 CONTINUE
0207 180 CONTINUE
0208 190 CONTINUE
0209 DO 220 KMUL=0,5
0210 KFLS=3
0211 IF(KMUL.EQ.0.OR.KMUL.EQ.3) KFLS=1
0212 IF(KMUL.EQ.5) KFLS=5
0213 KFLR=0
0214 IF(KMUL.EQ.2.OR.KMUL.EQ.3) KFLR=1
0215 IF(KMUL.EQ.4) KFLR=2
0216 DO 210 KFLB=1,5
0217 DO 200 KFLC=1,KFLB-1
0218 KF=10000*KFLR+100*KFLB+10*KFLC+KFLS
0219 CALL PYNAME(KF,CHAP)
0220 CALL PYNAME(-KF,CHAN)
0221 WRITE(MSTU(11),7600) KF,CHAP,-KF,CHAN
0222 IF(KF.EQ.311) THEN
0223 KFK=130
0224 CALL PYNAME(KFK,CHAP)
0225 WRITE(MSTU(11),7600) KFK,CHAP
0226 KFK=310
0227 CALL PYNAME(KFK,CHAP)
0228 WRITE(MSTU(11),7600) KFK,CHAP
0229 ENDIF
0230 200 CONTINUE
0231 KF=10000*KFLR+110*KFLB+KFLS
0232 CALL PYNAME(KF,CHAP)
0233 WRITE(MSTU(11),7600) KF,CHAP
0234 210 CONTINUE
0235 220 CONTINUE
0236 KF=100443
0237 CALL PYNAME(KF,CHAP)
0238 WRITE(MSTU(11),7600) KF,CHAP
0239 KF=100553
0240 CALL PYNAME(KF,CHAP)
0241 WRITE(MSTU(11),7600) KF,CHAP
0242 DO 260 KFLSP=1,3
0243 KFLS=2+2*(KFLSP/3)
0244 DO 250 KFLA=1,5
0245 DO 240 KFLB=1,KFLA
0246 DO 230 KFLC=1,KFLB
0247 IF(KFLSP.EQ.1.AND.(KFLA.EQ.KFLB.OR.KFLB.EQ.KFLC))
0248 & GOTO 230
0249 IF(KFLSP.EQ.2.AND.KFLA.EQ.KFLC) GOTO 230
0250 IF(KFLSP.EQ.1) KF=1000*KFLA+100*KFLC+10*KFLB+KFLS
0251 IF(KFLSP.GE.2) KF=1000*KFLA+100*KFLB+10*KFLC+KFLS
0252 CALL PYNAME(KF,CHAP)
0253 CALL PYNAME(-KF,CHAN)
0254 WRITE(MSTU(11),7600) KF,CHAP,-KF,CHAN
0255 230 CONTINUE
0256 240 CONTINUE
0257 250 CONTINUE
0258 260 CONTINUE
0259 DO 270 KC=1,500
0260 KF=KCHG(KC,4)
0261 IF(KF.LT.1000000) GOTO 270
0262 CALL PYNAME(KF,CHAP)
0263 CALL PYNAME(-KF,CHAN)
0264 IF(CHAP.NE.' '.AND.CHAN.EQ.' ') WRITE(MSTU(11),7600) KF,CHAP
0265 IF(CHAN.NE.' ') WRITE(MSTU(11),7600) KF,CHAP,-KF,CHAN
0266 270 CONTINUE
0267
0268
0269 ELSEIF(MLIST.EQ.12) THEN
0270 WRITE(MSTU(11),7700)
0271 DO 300 KC=1,MSTU(6)
0272 KF=KCHG(KC,4)
0273 IF(KF.EQ.0) GOTO 300
0274 IF(KF.LT.MSTU(1).OR.(MSTU(2).GT.0.AND.KF.GT.MSTU(2)))
0275 & GOTO 300
0276
0277
0278 CALL PYNAME(KF,CHAP)
0279 IF(KF.LE.100.AND.CHAP.EQ.' '.AND.MDCY(KC,2).EQ.0) GOTO 300
0280 CALL PYNAME(-KF,CHAN)
0281 WRITE(MSTU(11),7800) KF,KC,CHAP,CHAN,(KCHG(KC,J1),J1=1,3),
0282 & (PMAS(KC,J2),J2=1,4),MDCY(KC,1)
0283
0284
0285
0286 DO 290 IDC=MDCY(KC,2),MDCY(KC,2)+MDCY(KC,3)-1
0287 DO 280 J=1,5
0288 CALL PYNAME(KFDP(IDC,J),CHAD(J))
0289 280 CONTINUE
0290 WRITE(MSTU(11),7900) IDC,MDME(IDC,1),MDME(IDC,2),BRAT(IDC),
0291 & (CHAD(J),J=1,5)
0292 290 CONTINUE
0293 300 CONTINUE
0294
0295
0296 ELSEIF(MLIST.EQ.13) THEN
0297 WRITE(MSTU(11),8000)
0298 DO 310 I=1,200
0299 WRITE(MSTU(11),8100) I,MSTU(I),PARU(I),MSTJ(I),PARJ(I),PARF(I)
0300 310 CONTINUE
0301 ENDIF
0302
0303
0304 5100 FORMAT(///28X,'Event listing (summary)'//4X,'I particle/jet KS',
0305 &5X,'KF orig p_x p_y p_z E m'/)
0306 5200 FORMAT(///28X,'Event listing (standard)'//4X,'I particle/jet',
0307 &' K(I,1) K(I,2) K(I,3) K(I,4) K(I,5) P(I,1)',
0308 &' P(I,2) P(I,3) P(I,4) P(I,5)'/)
0309 5300 FORMAT(///28X,'Event listing (with vertices)'//4X,'I particle/j',
0310 &'et K(I,1) K(I,2) K(I,3) K(I,4) K(I,5) P(I,1)',
0311 &' P(I,2) P(I,3) P(I,4) P(I,5)'/73X,
0312 &'V(I,1) V(I,2) V(I,3) V(I,4) V(I,5)'/)
0313 5400 FORMAT(///28X,'Event listing (no momenta)'//4X,'I particle/jet',
0314 & ' K(I,1) K(I,2) K(I,3) K(I,4) K(I,5)',1X
0315 & ,' C tag AC tag'/)
0316 5500 FORMAT(1X,I4,1X,A12,1X,I2,I8,1X,I4,5F9.3)
0317 5600 FORMAT(1X,I4,1X,A12,1X,I2,I8,1X,I4,5F9.2)
0318 5700 FORMAT(1X,I4,1X,A12,1X,I2,I8,1X,I4,5F9.1)
0319 5800 FORMAT(1X,I4,2X,A16,1X,I3,1X,I9,1X,I4,2(3X,I1,2I4),5F13.5)
0320 5900 FORMAT(1X,I4,2X,A16,1X,I3,1X,I9,1X,I4,2(3X,I1,2I4),1X,2I8)
0321 6000 FORMAT(1X,I4,2X,A16,1X,I3,1X,I9,1X,I4,2(3X,I9),5F13.5)
0322 6100 FORMAT(1X,I4,2X,A16,1X,I3,1X,I9,1X,I4,2(3X,I9),1X,2I8)
0323 6200 FORMAT(66X,5(1X,F12.3))
0324 6300 FORMAT(1X,78('='))
0325 6400 FORMAT(1X,130('='))
0326 6500 FORMAT(1X,65('='))
0327 6600 FORMAT(19X,'sum:',F6.2,5X,5F9.3)
0328 6700 FORMAT(19X,'sum:',F6.2,5X,5F9.2)
0329 6800 FORMAT(19X,'sum:',F6.2,5X,5F9.1)
0330 6900 FORMAT(19X,'sum charge:',F6.2,3X,'sum momentum and inv. mass:',
0331 &5F13.5)
0332 7000 FORMAT(19X,'sum charge:',F6.2)
0333 7100 FORMAT(/10X,'Event listing of HEPEVT common block (simplified)'
0334 &//' I IST ID Mothers Daughters p_x p_y p_z',
0335 &' E m')
0336 7200 FORMAT(1X,I4,I2,I8,4I5,5F9.3)
0337 7300 FORMAT(/10X,'Event listing of user process at input (simplified)'
0338 &//' I IST ID Mothers Colours p_x p_y p_z',
0339 &' E m')
0340 7400 FORMAT(1X,I3,I3,I8,2I4,2I5,5F9.3)
0341 7500 FORMAT(///20X,'List of KF codes in program'/)
0342 7600 FORMAT(4X,I9,4X,A16,6X,I9,4X,A16)
0343 7700 FORMAT(///30X,'Particle/parton data table'//8X,'KF',5X,'KC',4X,
0344 &'particle',8X,'antiparticle',6X,'chg col anti',8X,'mass',7X,
0345 &'width',7X,'w-cut',5X,'lifetime',1X,'decay'/11X,'IDC',1X,'on/off',
0346 &1X,'ME',3X,'Br.rat.',4X,'decay products')
0347 7800 FORMAT(/1X,I9,3X,I4,4X,A16,A16,3I5,1X,F12.5,2(1X,F11.5),
0348 &1X,1P,E13.5,3X,I2)
0349 7900 FORMAT(10X,I4,2X,I3,2X,I3,2X,F10.6,4X,5A16)
0350 8000 FORMAT(///20X,'Parameter value table'//4X,'I',3X,'MSTU(I)',
0351 &8X,'PARU(I)',3X,'MSTJ(I)',8X,'PARJ(I)',8X,'PARF(I)')
0352 8100 FORMAT(1X,I4,1X,I9,1X,F14.5,1X,I9,1X,F14.5,1X,F14.5)
0353
0354 RETURN
0355 END