]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HIJING/hipyset1_35/lulist_hijing.F
A new method DrawPMDModule is added
[u/mrichter/AliRoot.git] / HIJING / hipyset1_35 / lulist_hijing.F
CommitLineData
e74335a4 1* $Id$
2
3C*********************************************************************
4
5 SUBROUTINE LULIST_HIJING(MLIST)
6
7C...Purpose: to give program heading, or list an event, or particle
8C...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
18C...Initialization printout: version number and date of last change.
19C IF(MLIST.EQ.0.OR.MSTU(12).EQ.1) THEN
20C WRITE(MSTU(11),1000) MSTU(181),MSTU(182),MSTU(185),
21C & CHMO(MSTU(184)),MSTU(183)
22C MSTU(12)=0
23C IF(MLIST.EQ.0) RETURN
24C ENDIF
25
26C...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
39C...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
61C...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
78C...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
99C...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
109C...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
122C...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
174C...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
188C...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
196C...Particle decay: channel number, branching ration, matrix element,
197C...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
207C...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
214C...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