1 #include "isajet/pilot.h"
2 SUBROUTINE ISAHEP(MCONV)
4 C...Purpose: to convert ISAJET event record contents to or from
5 C...the standard event record common block.
7 C Thanks to Lynn Garren, Fermilab.
9 #if defined(CERNLIB_IMPNONE)
12 #include "isajet/hepevt.inc"
15 #include "isajet/idrun.inc"
17 #include "isajet/pjets.inc"
18 #include "isajet/primar.inc"
19 C...partons created during decay
20 #include "isajet/jetset.inc"
21 C...particles created in the decay, including final state particles
22 #include "isajet/partcl.inc"
26 INTEGER I1,IHP,MPART,JET,NPOFF,NJHEP,NWHEP,IMO,IJT
27 INTEGER JPMO(2,MXJSET),JPDA(2,MXJSET),JMX(MXJSET),JMN(MXJSET)
28 INTEGER JTMO(2,MXPTCL),JTDA(2,MXPTCL)
29 INTEGER IP,IJ3,IJ2,IJ1,NSUM2,NSUM1,IPT,I,J,KST,KND,K
32 C...Conversion from ISAJET to standard
45 JDAHEP(2,NHEP)= NJET + 1
46 IDHEP(NHEP) = ITRANS(IDENTW,1)
48 100 PHEP(J,NHEP) = QWJET(J)
57 IF(IDENTW.NE.0) JMOHEP(1,NHEP) = 1
61 IDHEP(NHEP) = ITRANS(IDJETS(I),1)
63 110 PHEP(J,NHEP) = PJETS(J,I)
72 JMOHEP(1,NHEP)= JPAIR(I) + NWHEP
73 JMOHEP(2,NHEP)= JPAIR(I)
76 IDHEP(NHEP) = ITRANS(IDPAIR(I),1)
78 140 PHEP(J,NHEP) = PPAIR(J,I)
84 C...save offset into hep list
89 C...use JMX and JMN to find daughters in hadron list
91 JMN(I) = NHEP + NPTCL + 1
92 IDHEP(IHP) = ITRANS(JTYPE(I),1)
93 MPART=MOD(JORIG(I),JPACK)
97 JMOHEP(1,IHP)=MPART+NHEP
98 ELSEIF(MPART.EQ.0 .AND. IJT.LT.10)THEN
99 C...find mother in jet/pair list
101 IF(NJHEP.LT.NPOFF)THEN
104 IF(IDHEP(K).EQ.IDHEP(IHP)) IMO=K
108 IF(JDAHEP(1,IMO).EQ.0) JDAHEP(1,IMO)=IHP
109 JDAHEP(1,IMO) = MIN(IHP,JDAHEP(1,IMO))
110 JDAHEP(2,IMO) = MAX(IHP,JDAHEP(2,IMO))
111 C...amend information if a parton thinks this is it's daughter
114 IF(IHP.GE.JDAHEP(1,K) .AND. IHP.LE.JDAHEP(2,K))
119 IF(JDCAY(I).EQ.0)THEN
125 JDAHEP(1,IHP) = JDCAY(I)/JPACK + NHEP
126 JDAHEP(2,IHP) = MOD(JDCAY(I),JPACK) + NHEP
129 180 PHEP(J,IHP) = PJSET(J,I)
137 IDHEP(IHP) = ITRANS(IDENT(I),1)
138 I1 = MOD(IABS(IORIG(I)),IPACK)
140 JMOHEP(2,IHP)=IABS(IORIG(I))/IPACK
141 C...mother is pomeron
143 C...mother is in parton list
144 ELSEIF(IORIG(I).LT.0)THEN
145 JMOHEP(1,IHP) = I1 + NPOFF
146 JMN(I1) = MIN(JMN(I1),I)
147 JMX(I1) = MAX(JMX(I1),I)
148 C...mother is in hadron list
149 ELSEIF(IORIG(I).GT.0)THEN
150 JMOHEP(1,IHP) = I1 + NHEP
152 IF(IDCAY(I).EQ.0)THEN
158 JDAHEP(1,IHP) = IDCAY(I)/IPACK + NHEP
159 JDAHEP(2,IHP) = MOD(IDCAY(I),IPACK) + NHEP
162 210 PHEP(J,IHP) = PPTCL(J,I)
167 C...fill in missing daughter info for partons
170 JDAHEP(1,I+NPOFF) = JMN(I) + NPOFF + NJSET
171 JDAHEP(2,I+NPOFF) = JMX(I) + NPOFF + NJSET
175 C...Conversion from standard to ISAJET
177 ELSEIF(MCONV.EQ.2)THEN
179 C... missing information
199 IF(ISTHEP(I).EQ.11)THEN
201 IDJETS(IJ1) = ITRANS(IDHEP(I),2)
203 410 PJETS(J,IJ1) = PHEP(J,I)
205 ELSEIF(ISTHEP(I).EQ.12)THEN
207 IDENTW = ITRANS(IDHEP(I),2)
209 420 QWJET(J) = PHEP(J,I)
211 ELSEIF(ISTHEP(I).EQ.13)THEN
213 IDPAIR(IJ3) = ITRANS(IDHEP(I),2)
214 JPAIR(IJ3) = JMOHEP(2,I)
216 430 PPAIR(J,IJ3) = PHEP(J,I)
218 ELSEIF(ISTHEP(I).EQ.21 .OR. ISTHEP(I).EQ.22)THEN
220 JTYPE(IP) = ITRANS(IDHEP(I),2)
222 440 PJSET(J,IP) = PHEP(J,I)
223 C... temporary storage until have counts
224 JPMO(1,IP) = JMOHEP(1,I)
225 JPMO(2,IP) = JMOHEP(2,I)
226 JPDA(1,IP) = JDAHEP(1,I)
227 JPDA(2,IP) = JDAHEP(2,I)
231 IDENT(IPT) = ITRANS(IDHEP(I),2)
233 450 PPTCL(J,IPT) = PHEP(J,I)
234 C... temporary storage until have counts
235 JTMO(1,IPT) = JMOHEP(1,I)
236 JTMO(2,IPT) = JMOHEP(2,I)
237 JTDA(1,IPT) = JDAHEP(1,I)
238 JTDA(2,IPT) = JDAHEP(2,I)
246 C...get mother/daughter information
247 NSUM1 = NJET + IJ2 + NPAIR
248 NSUM2 = NSUM1 + NJSET
250 IF(JPDA(1,I).EQ.0)THEN
252 ELSEIF(JPDA(1,I).GT.NSUM2)THEN
255 JDCAY(I) = JPACK*(JPDA(1,I)-NSUM1) + JPDA(2,I)-NSUM1
257 IF(JPMO(1,I).LE.NSUM1)THEN
258 JORIG(I) = JPACK*JPMO(2,I)
260 JORIG(I) = JPACK*JPMO(2,I) + JPMO(1,I)-NSUM1
264 IF(JTDA(1,I).EQ.0)THEN
267 IDCAY(I) = IPACK*(JTDA(1,I)-NSUM2) + JTDA(2,I)-NSUM2
269 IF(JTMO(1,I).LE.NSUM1)THEN
270 IORIG(I) = JTMO(2,I)*IPACK + 0
271 ELSEIF(JTMO(1,I).LE.NSUM2)THEN
272 IORIG(I) = -(JTMO(2,I)*IPACK + JTMO(1,I)-NSUM1)
274 IORIG(I) = JTMO(2,I)*IPACK + JTMO(1,I)-NSUM2