]>
Commit | Line | Data |
---|---|---|
e74335a4 | 1 | * $Id$ |
2 | ||
3 | C********************************************************************* | |
4 | ||
5 | SUBROUTINE LULIST_HIJING(MLIST) | |
6 | ||
7 | C...Purpose: to give program heading, or list an event, or particle | |
8 | C...data, or current parameter values. | |
9 | #include "lujets_hijing.inc" | |
10 | #include "ludat1_hijing.inc" | |
11 | #include "ludat2_hijing.inc" | |
12 | #include "ludat3_hijing.inc" | |
13 | CHARACTER CHAP*16,CHAC*16,CHAN*16,CHAD(5)*16,CHMO(12)*3,CHDL(7)*4 | |
14 | DIMENSION PS(6) | |
15 | DATA CHMO/'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep', | |
16 | &'Oct','Nov','Dec'/,CHDL/'(())',' ','()','!!','<>','==','(==)'/ | |
17 | ||
18 | C...Initialization printout: version number and date of last change. | |
19 | C IF(MLIST.EQ.0.OR.MSTU(12).EQ.1) THEN | |
20 | C WRITE(MSTU(11),1000) MSTU(181),MSTU(182),MSTU(185), | |
21 | C & CHMO(MSTU(184)),MSTU(183) | |
22 | C MSTU(12)=0 | |
23 | C IF(MLIST.EQ.0) RETURN | |
24 | C ENDIF | |
25 | ||
26 | C...List event data, including additional lines after N. | |
27 | IF(MLIST.GE.1.AND.MLIST.LE.3) THEN | |
28 | IF(MLIST.EQ.1) WRITE(MSTU(11),1100) | |
29 | IF(MLIST.EQ.2) WRITE(MSTU(11),1200) | |
30 | IF(MLIST.EQ.3) WRITE(MSTU(11),1300) | |
31 | LMX=12 | |
32 | IF(MLIST.GE.2) LMX=16 | |
33 | ISTR=0 | |
34 | IMAX=N | |
35 | IF(MSTU(2).GT.0) IMAX=MSTU(2) | |
36 | DO 120 I=MAX(1,MSTU(1)),MAX(IMAX,N+MAX(0,MSTU(3))) | |
37 | IF((I.GT.IMAX.AND.I.LE.N).OR.K(I,1).LT.0) GOTO 120 | |
38 | ||
39 | C...Get particle name, pad it and check it is not too long. | |
40 | CALL LUNAME_HIJING(K(I,2),CHAP) | |
41 | LEN=0 | |
42 | DO 100 LEM=1,16 | |
43 | 100 IF(CHAP(LEM:LEM).NE.' ') LEN=LEM | |
44 | MDL=(K(I,1)+19)/10 | |
45 | LDL=0 | |
46 | IF(MDL.EQ.2.OR.MDL.GE.8) THEN | |
47 | CHAC=CHAP | |
48 | IF(LEN.GT.LMX) CHAC(LMX:LMX)='?' | |
49 | ELSE | |
50 | LDL=1 | |
51 | IF(MDL.EQ.1.OR.MDL.EQ.7) LDL=2 | |
52 | IF(LEN.EQ.0) THEN | |
53 | CHAC=CHDL(MDL)(1:2*LDL)//' ' | |
54 | ELSE | |
55 | CHAC=CHDL(MDL)(1:LDL)//CHAP(1:MIN(LEN,LMX-2*LDL))// | |
56 | & CHDL(MDL)(LDL+1:2*LDL)//' ' | |
57 | IF(LEN+2*LDL.GT.LMX) CHAC(LMX:LMX)='?' | |
58 | ENDIF | |
59 | ENDIF | |
60 | ||
61 | C...Add information on string connection. | |
62 | IF(K(I,1).EQ.1.OR.K(I,1).EQ.2.OR.K(I,1).EQ.11.OR.K(I,1).EQ.12) | |
63 | & THEN | |
64 | KC=LUCOMP_HIJING(K(I,2)) | |
65 | KCC=0 | |
66 | IF(KC.NE.0) KCC=KCHG(KC,2) | |
67 | IF(KCC.NE.0.AND.ISTR.EQ.0) THEN | |
68 | ISTR=1 | |
69 | IF(LEN+2*LDL+3.LE.LMX) CHAC(LMX-1:LMX-1)='A' | |
70 | ELSEIF(KCC.NE.0.AND.(K(I,1).EQ.2.OR.K(I,1).EQ.12)) THEN | |
71 | IF(LEN+2*LDL+3.LE.LMX) CHAC(LMX-1:LMX-1)='I' | |
72 | ELSEIF(KCC.NE.0) THEN | |
73 | ISTR=0 | |
74 | IF(LEN+2*LDL+3.LE.LMX) CHAC(LMX-1:LMX-1)='V' | |
75 | ENDIF | |
76 | ENDIF | |
77 | ||
78 | C...Write data for particle/jet. | |
79 | IF(MLIST.EQ.1.AND.ABS(P(I,4)).LT.9999.) THEN | |
80 | WRITE(MSTU(11),1400) I,CHAC(1:12),(K(I,J1),J1=1,3), | |
81 | & (P(I,J2),J2=1,5) | |
82 | ELSEIF(MLIST.EQ.1.AND.ABS(P(I,4)).LT.99999.) THEN | |
83 | WRITE(MSTU(11),1500) I,CHAC(1:12),(K(I,J1),J1=1,3), | |
84 | & (P(I,J2),J2=1,5) | |
85 | ELSEIF(MLIST.EQ.1) THEN | |
86 | WRITE(MSTU(11),1600) I,CHAC(1:12),(K(I,J1),J1=1,3), | |
87 | & (P(I,J2),J2=1,5) | |
88 | ELSEIF(MSTU(5).EQ.10000.AND.(K(I,1).EQ.3.OR.K(I,1).EQ.13.OR. | |
89 | & K(I,1).EQ.14)) THEN | |
90 | WRITE(MSTU(11),1700) I,CHAC,(K(I,J1),J1=1,3), | |
91 | & K(I,4)/100000000,MOD(K(I,4)/10000,10000),MOD(K(I,4),10000), | |
92 | & K(I,5)/100000000,MOD(K(I,5)/10000,10000),MOD(K(I,5),10000), | |
93 | & (P(I,J2),J2=1,5) | |
94 | ELSE | |
95 | WRITE(MSTU(11),1800) I,CHAC,(K(I,J1),J1=1,5),(P(I,J2),J2=1,5) | |
96 | ENDIF | |
97 | IF(MLIST.EQ.3) WRITE(MSTU(11),1900) (V(I,J),J=1,5) | |
98 | ||
99 | C...Insert extra separator lines specified by user. | |
100 | IF(MSTU(70).GE.1) THEN | |
101 | ISEP=0 | |
102 | DO 110 J=1,MIN(10,MSTU(70)) | |
103 | 110 IF(I.EQ.MSTU(70+J)) ISEP=1 | |
104 | IF(ISEP.EQ.1.AND.MLIST.EQ.1) WRITE(MSTU(11),2000) | |
105 | IF(ISEP.EQ.1.AND.MLIST.GE.2) WRITE(MSTU(11),2100) | |
106 | ENDIF | |
107 | 120 CONTINUE | |
108 | ||
109 | C...Sum of charges and momenta. | |
110 | DO 130 J=1,6 | |
111 | 130 PS(J)=PLU_HIJING(0,J) | |
112 | IF(MLIST.EQ.1.AND.ABS(PS(4)).LT.9999.) THEN | |
113 | WRITE(MSTU(11),2200) PS(6),(PS(J),J=1,5) | |
114 | ELSEIF(MLIST.EQ.1.AND.ABS(PS(4)).LT.99999.) THEN | |
115 | WRITE(MSTU(11),2300) PS(6),(PS(J),J=1,5) | |
116 | ELSEIF(MLIST.EQ.1) THEN | |
117 | WRITE(MSTU(11),2400) PS(6),(PS(J),J=1,5) | |
118 | ELSE | |
119 | WRITE(MSTU(11),2500) PS(6),(PS(J),J=1,5) | |
120 | ENDIF | |
121 | ||
122 | C...Give simple list of KF codes defined in program. | |
123 | ELSEIF(MLIST.EQ.11) THEN | |
124 | WRITE(MSTU(11),2600) | |
125 | DO 140 KF=1,40 | |
126 | CALL LUNAME_HIJING(KF,CHAP) | |
127 | CALL LUNAME_HIJING(-KF,CHAN) | |
128 | IF(CHAP.NE.' '.AND.CHAN.EQ.' ') WRITE(MSTU(11),2700) KF,CHAP | |
129 | 140 IF(CHAN.NE.' ') WRITE(MSTU(11),2700) KF,CHAP,-KF,CHAN | |
130 | DO 150 KFLS=1,3,2 | |
131 | DO 150 KFLA=1,8 | |
132 | DO 150 KFLB=1,KFLA-(3-KFLS)/2 | |
133 | KF=1000*KFLA+100*KFLB+KFLS | |
134 | CALL LUNAME_HIJING(KF,CHAP) | |
135 | CALL LUNAME_HIJING(-KF,CHAN) | |
136 | 150 WRITE(MSTU(11),2700) KF,CHAP,-KF,CHAN | |
137 | DO 170 KMUL=0,5 | |
138 | KFLS=3 | |
139 | IF(KMUL.EQ.0.OR.KMUL.EQ.3) KFLS=1 | |
140 | IF(KMUL.EQ.5) KFLS=5 | |
141 | KFLR=0 | |
142 | IF(KMUL.EQ.2.OR.KMUL.EQ.3) KFLR=1 | |
143 | IF(KMUL.EQ.4) KFLR=2 | |
144 | DO 170 KFLB=1,8 | |
145 | DO 160 KFLC=1,KFLB-1 | |
146 | KF=10000*KFLR+100*KFLB+10*KFLC+KFLS | |
147 | CALL LUNAME_HIJING(KF,CHAP) | |
148 | CALL LUNAME_HIJING(-KF,CHAN) | |
149 | 160 WRITE(MSTU(11),2700) KF,CHAP,-KF,CHAN | |
150 | KF=10000*KFLR+110*KFLB+KFLS | |
151 | CALL LUNAME_HIJING(KF,CHAP) | |
152 | 170 WRITE(MSTU(11),2700) KF,CHAP | |
153 | KF=130 | |
154 | CALL LUNAME_HIJING(KF,CHAP) | |
155 | WRITE(MSTU(11),2700) KF,CHAP | |
156 | KF=310 | |
157 | CALL LUNAME_HIJING(KF,CHAP) | |
158 | WRITE(MSTU(11),2700) KF,CHAP | |
159 | DO 190 KFLSP=1,3 | |
160 | KFLS=2+2*(KFLSP/3) | |
161 | DO 190 KFLA=1,8 | |
162 | DO 190 KFLB=1,KFLA | |
163 | DO 180 KFLC=1,KFLB | |
164 | IF(KFLSP.EQ.1.AND.(KFLA.EQ.KFLB.OR.KFLB.EQ.KFLC)) GOTO 180 | |
165 | IF(KFLSP.EQ.2.AND.KFLA.EQ.KFLC) GOTO 180 | |
166 | IF(KFLSP.EQ.1) KF=1000*KFLA+100*KFLC+10*KFLB+KFLS | |
167 | IF(KFLSP.GE.2) KF=1000*KFLA+100*KFLB+10*KFLC+KFLS | |
168 | CALL LUNAME_HIJING(KF,CHAP) | |
169 | CALL LUNAME_HIJING(-KF,CHAN) | |
170 | WRITE(MSTU(11),2700) KF,CHAP,-KF,CHAN | |
171 | 180 CONTINUE | |
172 | 190 CONTINUE | |
173 | ||
174 | C...List parton/particle data table. Check whether to be listed. | |
175 | ELSEIF(MLIST.EQ.12) THEN | |
176 | WRITE(MSTU(11),2800) | |
177 | MSTJ24=MSTJ(24) | |
178 | MSTJ(24)=0 | |
179 | KFMAX=20883 | |
180 | IF(MSTU(2).NE.0) KFMAX=MSTU(2) | |
181 | DO 220 KF=MAX(1,MSTU(1)),KFMAX | |
182 | KC=LUCOMP_HIJING(KF) | |
183 | IF(KC.EQ.0) GOTO 220 | |
184 | IF(MSTU(14).EQ.0.AND.KF.GT.100.AND.KC.LE.100) GOTO 220 | |
185 | IF(MSTU(14).GT.0.AND.KF.GT.100.AND.MAX(MOD(KF/1000,10), | |
186 | & MOD(KF/100,10)).GT.MSTU(14)) GOTO 220 | |
187 | ||
188 | C...Find particle name and mass. Print information. | |
189 | CALL LUNAME_HIJING(KF,CHAP) | |
190 | IF(KF.LE.100.AND.CHAP.EQ.' '.AND.MDCY(KC,2).EQ.0) GOTO 220 | |
191 | CALL LUNAME_HIJING(-KF,CHAN) | |
192 | PM=ULMASS_HIJING(KF) | |
193 | WRITE(MSTU(11),2900) KF,KC,CHAP,CHAN,KCHG(KC,1),KCHG(KC,2), | |
194 | & KCHG(KC,3),PM,PMAS(KC,2),PMAS(KC,3),PMAS(KC,4),MDCY(KC,1) | |
195 | ||
196 | C...Particle decay: channel number, branching ration, matrix element, | |
197 | C...decay products. | |
198 | IF(KF.GT.100.AND.KC.LE.100) GOTO 220 | |
199 | DO 210 IDC=MDCY(KC,2),MDCY(KC,2)+MDCY(KC,3)-1 | |
200 | DO 200 J=1,5 | |
201 | 200 CALL LUNAME_HIJING(KFDP(IDC,J),CHAD(J)) | |
202 | 210 WRITE(MSTU(11),3000) IDC,MDME(IDC,1),MDME(IDC,2),BRAT(IDC), | |
203 | & (CHAD(J),J=1,5) | |
204 | 220 CONTINUE | |
205 | MSTJ(24)=MSTJ24 | |
206 | ||
207 | C...List parameter value table. | |
208 | ELSEIF(MLIST.EQ.13) THEN | |
209 | WRITE(MSTU(11),3100) | |
210 | DO 230 I=1,200 | |
211 | 230 WRITE(MSTU(11),3200) I,MSTU(I),PARU(I),MSTJ(I),PARJ(I),PARF(I) | |
212 | ENDIF | |
213 | ||
214 | C...Format statements for output on unit MSTU(11) (by default 6). | |
215 | 1000 FORMAT(///20X,'The Lund Monte Carlo - JETSET version ',I1,'.',I1/ | |
216 | &20X,'** Last date of change: ',I2,1X,A3,1X,I4,' **'/) | |
217 | 1100 FORMAT(///28X,'Event listing (summary)'//4X,'I particle/jet KS', | |
218 | &5X,'KF orig p_x p_y p_z E m'/) | |
219 | 1200 FORMAT(///28X,'Event listing (standard)'//4X,'I particle/jet', | |
220 | &' K(I,1) K(I,2) K(I,3) K(I,4) K(I,5) P(I,1)', | |
221 | &' P(I,2) P(I,3) P(I,4) P(I,5)'/) | |
222 | 1300 FORMAT(///28X,'Event listing (with vertices)'//4X,'I particle/j', | |
223 | &'et K(I,1) K(I,2) K(I,3) K(I,4) K(I,5) P(I,1)', | |
224 | &' P(I,2) P(I,3) P(I,4) P(I,5)'/73X, | |
225 | &'V(I,1) V(I,2) V(I,3) V(I,4) V(I,5)'/) | |
226 | 1400 FORMAT(1X,I4,2X,A12,1X,I2,1X,I6,1X,I4,5F9.3) | |
227 | 1500 FORMAT(1X,I4,2X,A12,1X,I2,1X,I6,1X,I4,5F9.2) | |
228 | 1600 FORMAT(1X,I4,2X,A12,1X,I2,1X,I6,1X,I4,5F9.1) | |
229 | 1700 FORMAT(1X,I4,2X,A16,1X,I3,1X,I8,2X,I4,2(3X,I1,2I4),5F13.5) | |
230 | 1800 FORMAT(1X,I4,2X,A16,1X,I3,1X,I8,2X,I4,2(3X,I9),5F13.5) | |
231 | 1900 FORMAT(66X,5(1X,F12.3)) | |
232 | 2000 FORMAT(1X,78('=')) | |
233 | 2100 FORMAT(1X,130('=')) | |
234 | 2200 FORMAT(19X,'sum:',F6.2,5X,5F9.3) | |
235 | 2300 FORMAT(19X,'sum:',F6.2,5X,5F9.2) | |
236 | 2400 FORMAT(19X,'sum:',F6.2,5X,5F9.1) | |
237 | 2500 FORMAT(19X,'sum charge:',F6.2,3X,'sum momentum and inv. mass:', | |
238 | &5F13.5) | |
239 | 2600 FORMAT(///20X,'List of KF codes in program'/) | |
240 | 2700 FORMAT(4X,I6,4X,A16,6X,I6,4X,A16) | |
241 | 2800 FORMAT(///30X,'Particle/parton data table'//5X,'KF',5X,'KC',4X, | |
242 | &'particle',8X,'antiparticle',6X,'chg col anti',8X,'mass',7X, | |
243 | &'width',7X,'w-cut',5X,'lifetime',1X,'decay'/11X,'IDC',1X,'on/off', | |
244 | &1X,'ME',3X,'Br.rat.',4X,'decay products') | |
245 | 2900 FORMAT(/1X,I6,3X,I4,4X,A16,A16,3I5,1X,F12.5,2(1X,F11.5), | |
246 | &2X,F12.5,3X,I2) | |
247 | 3000 FORMAT(10X,I4,2X,I3,2X,I3,2X,F8.5,4X,5A16) | |
248 | 3100 FORMAT(///20X,'Parameter value table'//4X,'I',3X,'MSTU(I)', | |
249 | &8X,'PARU(I)',3X,'MSTJ(I)',8X,'PARJ(I)',8X,'PARF(I)') | |
250 | 3200 FORMAT(1X,I4,1X,I9,1X,F14.5,1X,I9,1X,F14.5,1X,F14.5) | |
251 | ||
252 | RETURN | |
253 | END |