File indexing completed on 2025-08-05 08:15:43
0001
0002
0003
0004 SUBROUTINE LULIST(MLIST)
0005
0006
0007
0008 COMMON/LUJETS/N,K(9000,5),P(9000,5),V(9000,5)
0009 SAVE /LUJETS/
0010 COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0011 SAVE /LUDAT1/
0012 COMMON/LUDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4)
0013 SAVE /LUDAT2/
0014 COMMON/LUDAT3/MDCY(500,3),MDME(2000,2),BRAT(2000),KFDP(2000,5)
0015 SAVE /LUDAT3/
0016 CHARACTER CHAP*16,CHAC*16,CHAN*16,CHAD(5)*16,CHMO(12)*3,CHDL(7)*4
0017 DIMENSION PS(6)
0018 DATA CHMO/'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep',
0019 &'Oct','Nov','Dec'/,CHDL/'(())',' ','()','!!','<>','==','(==)'/
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030 IF(MLIST.GE.1.AND.MLIST.LE.3) THEN
0031 IF(MLIST.EQ.1) WRITE(MSTU(11),1100)
0032 IF(MLIST.EQ.2) WRITE(MSTU(11),1200)
0033 IF(MLIST.EQ.3) WRITE(MSTU(11),1300)
0034 LMX=12
0035 IF(MLIST.GE.2) LMX=16
0036 ISTR=0
0037 IMAX=N
0038 IF(MSTU(2).GT.0) IMAX=MSTU(2)
0039 DO 120 I=MAX(1,MSTU(1)),MAX(IMAX,N+MAX(0,MSTU(3)))
0040 IF((I.GT.IMAX.AND.I.LE.N).OR.K(I,1).LT.0) GOTO 120
0041
0042
0043 CALL LUNAME(K(I,2),CHAP)
0044 LEN=0
0045 DO 100 LEM=1,16
0046 100 IF(CHAP(LEM:LEM).NE.' ') LEN=LEM
0047 MDL=(K(I,1)+19)/10
0048 LDL=0
0049 IF(MDL.EQ.2.OR.MDL.GE.8) THEN
0050 CHAC=CHAP
0051 IF(LEN.GT.LMX) CHAC(LMX:LMX)='?'
0052 ELSE
0053 LDL=1
0054 IF(MDL.EQ.1.OR.MDL.EQ.7) LDL=2
0055 IF(LEN.EQ.0) THEN
0056 CHAC=CHDL(MDL)(1:2*LDL)//' '
0057 ELSE
0058 CHAC=CHDL(MDL)(1:LDL)//CHAP(1:MIN(LEN,LMX-2*LDL))//
0059 & CHDL(MDL)(LDL+1:2*LDL)//' '
0060 IF(LEN+2*LDL.GT.LMX) CHAC(LMX:LMX)='?'
0061 ENDIF
0062 ENDIF
0063
0064
0065 IF(K(I,1).EQ.1.OR.K(I,1).EQ.2.OR.K(I,1).EQ.11.OR.K(I,1).EQ.12)
0066 & THEN
0067 KC=LUCOMP(K(I,2))
0068 KCC=0
0069 IF(KC.NE.0) KCC=KCHG(KC,2)
0070 IF(KCC.NE.0.AND.ISTR.EQ.0) THEN
0071 ISTR=1
0072 IF(LEN+2*LDL+3.LE.LMX) CHAC(LMX-1:LMX-1)='A'
0073 ELSEIF(KCC.NE.0.AND.(K(I,1).EQ.2.OR.K(I,1).EQ.12)) THEN
0074 IF(LEN+2*LDL+3.LE.LMX) CHAC(LMX-1:LMX-1)='I'
0075 ELSEIF(KCC.NE.0) THEN
0076 ISTR=0
0077 IF(LEN+2*LDL+3.LE.LMX) CHAC(LMX-1:LMX-1)='V'
0078 ENDIF
0079 ENDIF
0080
0081
0082 IF(MLIST.EQ.1.AND.ABS(P(I,4)).LT.9999.) THEN
0083 WRITE(MSTU(11),1400) I,CHAC(1:12),(K(I,J1),J1=1,3),
0084 & (P(I,J2),J2=1,5)
0085 ELSEIF(MLIST.EQ.1.AND.ABS(P(I,4)).LT.99999.) THEN
0086 WRITE(MSTU(11),1500) I,CHAC(1:12),(K(I,J1),J1=1,3),
0087 & (P(I,J2),J2=1,5)
0088 ELSEIF(MLIST.EQ.1) THEN
0089 WRITE(MSTU(11),1600) I,CHAC(1:12),(K(I,J1),J1=1,3),
0090 & (P(I,J2),J2=1,5)
0091 ELSEIF(MSTU(5).EQ.10000.AND.(K(I,1).EQ.3.OR.K(I,1).EQ.13.OR.
0092 & K(I,1).EQ.14)) THEN
0093 WRITE(MSTU(11),1700) I,CHAC,(K(I,J1),J1=1,3),
0094 & K(I,4)/100000000,MOD(K(I,4)/10000,10000),MOD(K(I,4),10000),
0095 & K(I,5)/100000000,MOD(K(I,5)/10000,10000),MOD(K(I,5),10000),
0096 & (P(I,J2),J2=1,5)
0097 ELSE
0098 WRITE(MSTU(11),1800) I,CHAC,(K(I,J1),J1=1,5),(P(I,J2),J2=1,5)
0099 ENDIF
0100 IF(MLIST.EQ.3) WRITE(MSTU(11),1900) (V(I,J),J=1,5)
0101
0102
0103 IF(MSTU(70).GE.1) THEN
0104 ISEP=0
0105 DO 110 J=1,MIN(10,MSTU(70))
0106 110 IF(I.EQ.MSTU(70+J)) ISEP=1
0107 IF(ISEP.EQ.1.AND.MLIST.EQ.1) WRITE(MSTU(11),2000)
0108 IF(ISEP.EQ.1.AND.MLIST.GE.2) WRITE(MSTU(11),2100)
0109 ENDIF
0110 120 CONTINUE
0111
0112
0113 DO 130 J=1,6
0114 130 PS(J)=PLU(0,J)
0115 IF(MLIST.EQ.1.AND.ABS(PS(4)).LT.9999.) THEN
0116 WRITE(MSTU(11),2200) PS(6),(PS(J),J=1,5)
0117 ELSEIF(MLIST.EQ.1.AND.ABS(PS(4)).LT.99999.) THEN
0118 WRITE(MSTU(11),2300) PS(6),(PS(J),J=1,5)
0119 ELSEIF(MLIST.EQ.1) THEN
0120 WRITE(MSTU(11),2400) PS(6),(PS(J),J=1,5)
0121 ELSE
0122 WRITE(MSTU(11),2500) PS(6),(PS(J),J=1,5)
0123 ENDIF
0124
0125
0126 ELSEIF(MLIST.EQ.11) THEN
0127 WRITE(MSTU(11),2600)
0128 DO 140 KF=1,40
0129 CALL LUNAME(KF,CHAP)
0130 CALL LUNAME(-KF,CHAN)
0131 IF(CHAP.NE.' '.AND.CHAN.EQ.' ') WRITE(MSTU(11),2700) KF,CHAP
0132 140 IF(CHAN.NE.' ') WRITE(MSTU(11),2700) KF,CHAP,-KF,CHAN
0133 DO 150 KFLS=1,3,2
0134 DO 150 KFLA=1,8
0135 DO 150 KFLB=1,KFLA-(3-KFLS)/2
0136 KF=1000*KFLA+100*KFLB+KFLS
0137 CALL LUNAME(KF,CHAP)
0138 CALL LUNAME(-KF,CHAN)
0139 150 WRITE(MSTU(11),2700) KF,CHAP,-KF,CHAN
0140 DO 170 KMUL=0,5
0141 KFLS=3
0142 IF(KMUL.EQ.0.OR.KMUL.EQ.3) KFLS=1
0143 IF(KMUL.EQ.5) KFLS=5
0144 KFLR=0
0145 IF(KMUL.EQ.2.OR.KMUL.EQ.3) KFLR=1
0146 IF(KMUL.EQ.4) KFLR=2
0147 DO 170 KFLB=1,8
0148 DO 160 KFLC=1,KFLB-1
0149 KF=10000*KFLR+100*KFLB+10*KFLC+KFLS
0150 CALL LUNAME(KF,CHAP)
0151 CALL LUNAME(-KF,CHAN)
0152 160 WRITE(MSTU(11),2700) KF,CHAP,-KF,CHAN
0153 KF=10000*KFLR+110*KFLB+KFLS
0154 CALL LUNAME(KF,CHAP)
0155 170 WRITE(MSTU(11),2700) KF,CHAP
0156 KF=130
0157 CALL LUNAME(KF,CHAP)
0158 WRITE(MSTU(11),2700) KF,CHAP
0159 KF=310
0160 CALL LUNAME(KF,CHAP)
0161 WRITE(MSTU(11),2700) KF,CHAP
0162 DO 190 KFLSP=1,3
0163 KFLS=2+2*(KFLSP/3)
0164 DO 190 KFLA=1,8
0165 DO 190 KFLB=1,KFLA
0166 DO 180 KFLC=1,KFLB
0167 IF(KFLSP.EQ.1.AND.(KFLA.EQ.KFLB.OR.KFLB.EQ.KFLC)) GOTO 180
0168 IF(KFLSP.EQ.2.AND.KFLA.EQ.KFLC) GOTO 180
0169 IF(KFLSP.EQ.1) KF=1000*KFLA+100*KFLC+10*KFLB+KFLS
0170 IF(KFLSP.GE.2) KF=1000*KFLA+100*KFLB+10*KFLC+KFLS
0171 CALL LUNAME(KF,CHAP)
0172 CALL LUNAME(-KF,CHAN)
0173 WRITE(MSTU(11),2700) KF,CHAP,-KF,CHAN
0174 180 CONTINUE
0175 190 CONTINUE
0176
0177
0178 ELSEIF(MLIST.EQ.12) THEN
0179 WRITE(MSTU(11),2800)
0180 MSTJ24=MSTJ(24)
0181 MSTJ(24)=0
0182 KFMAX=20883
0183 IF(MSTU(2).NE.0) KFMAX=MSTU(2)
0184 DO 220 KF=MAX(1,MSTU(1)),KFMAX
0185 KC=LUCOMP(KF)
0186 IF(KC.EQ.0) GOTO 220
0187 IF(MSTU(14).EQ.0.AND.KF.GT.100.AND.KC.LE.100) GOTO 220
0188 IF(MSTU(14).GT.0.AND.KF.GT.100.AND.MAX(MOD(KF/1000,10),
0189 & MOD(KF/100,10)).GT.MSTU(14)) GOTO 220
0190
0191
0192 CALL LUNAME(KF,CHAP)
0193 IF(KF.LE.100.AND.CHAP.EQ.' '.AND.MDCY(KC,2).EQ.0) GOTO 220
0194 CALL LUNAME(-KF,CHAN)
0195 PM=ULMASS(KF)
0196 WRITE(MSTU(11),2900) KF,KC,CHAP,CHAN,KCHG(KC,1),KCHG(KC,2),
0197 & KCHG(KC,3),PM,PMAS(KC,2),PMAS(KC,3),PMAS(KC,4),MDCY(KC,1)
0198
0199
0200
0201 IF(KF.GT.100.AND.KC.LE.100) GOTO 220
0202 DO 210 IDC=MDCY(KC,2),MDCY(KC,2)+MDCY(KC,3)-1
0203 DO 200 J=1,5
0204 200 CALL LUNAME(KFDP(IDC,J),CHAD(J))
0205 210 WRITE(MSTU(11),3000) IDC,MDME(IDC,1),MDME(IDC,2),BRAT(IDC),
0206 & (CHAD(J),J=1,5)
0207 220 CONTINUE
0208 MSTJ(24)=MSTJ24
0209
0210
0211 ELSEIF(MLIST.EQ.13) THEN
0212 WRITE(MSTU(11),3100)
0213 DO 230 I=1,200
0214 230 WRITE(MSTU(11),3200) I,MSTU(I),PARU(I),MSTJ(I),PARJ(I),PARF(I)
0215 ENDIF
0216
0217
0218 1000 FORMAT(///20X,'The Lund Monte Carlo - JETSET version ',I1,'.',I1/
0219 &20X,'** Last date of change: ',I2,1X,A3,1X,I4,' **'/)
0220 1100 FORMAT(///28X,'Event listing (summary)'//4X,'I particle/jet KS',
0221 &5X,'KF orig p_x p_y p_z E m'/)
0222 1200 FORMAT(///28X,'Event listing (standard)'//4X,'I particle/jet',
0223 &' K(I,1) K(I,2) K(I,3) K(I,4) K(I,5) P(I,1)',
0224 &' P(I,2) P(I,3) P(I,4) P(I,5)'/)
0225 1300 FORMAT(///28X,'Event listing (with vertices)'//4X,'I particle/j',
0226 &'et K(I,1) K(I,2) K(I,3) K(I,4) K(I,5) P(I,1)',
0227 &' P(I,2) P(I,3) P(I,4) P(I,5)'/73X,
0228 &'V(I,1) V(I,2) V(I,3) V(I,4) V(I,5)'/)
0229 1400 FORMAT(1X,I4,2X,A12,1X,I2,1X,I6,1X,I4,5F9.3)
0230 1500 FORMAT(1X,I4,2X,A12,1X,I2,1X,I6,1X,I4,5F9.2)
0231 1600 FORMAT(1X,I4,2X,A12,1X,I2,1X,I6,1X,I4,5F9.1)
0232 1700 FORMAT(1X,I4,2X,A16,1X,I3,1X,I8,2X,I4,2(3X,I1,2I4),5F13.5)
0233 1800 FORMAT(1X,I4,2X,A16,1X,I3,1X,I8,2X,I4,2(3X,I9),5F13.5)
0234 1900 FORMAT(66X,5(1X,F12.3))
0235 2000 FORMAT(1X,78('='))
0236 2100 FORMAT(1X,130('='))
0237 2200 FORMAT(19X,'sum:',F6.2,5X,5F9.3)
0238 2300 FORMAT(19X,'sum:',F6.2,5X,5F9.2)
0239 2400 FORMAT(19X,'sum:',F6.2,5X,5F9.1)
0240 2500 FORMAT(19X,'sum charge:',F6.2,3X,'sum momentum and inv. mass:',
0241 &5F13.5)
0242 2600 FORMAT(///20X,'List of KF codes in program'/)
0243 2700 FORMAT(4X,I6,4X,A16,6X,I6,4X,A16)
0244 2800 FORMAT(///30X,'Particle/parton data table'//5X,'KF',5X,'KC',4X,
0245 &'particle',8X,'antiparticle',6X,'chg col anti',8X,'mass',7X,
0246 &'width',7X,'w-cut',5X,'lifetime',1X,'decay'/11X,'IDC',1X,'on/off',
0247 &1X,'ME',3X,'Br.rat.',4X,'decay products')
0248 2900 FORMAT(/1X,I6,3X,I4,4X,A16,A16,3I5,1X,F12.5,2(1X,F11.5),
0249 &2X,F12.5,3X,I2)
0250 3000 FORMAT(10X,I4,2X,I3,2X,I3,2X,F8.5,4X,5A16)
0251 3100 FORMAT(///20X,'Parameter value table'//4X,'I',3X,'MSTU(I)',
0252 &8X,'PARU(I)',3X,'MSTJ(I)',8X,'PARJ(I)',8X,'PARF(I)')
0253 3200 FORMAT(1X,I4,1X,I9,1X,F14.5,1X,I9,1X,F14.5,1X,F14.5)
0254
0255 RETURN
0256 END