4 *CMZ :- -20/07/99 10:56:12 by Peter Richardson
6 *-- Author : Peter Richardson
8 C-----------------------------------------------------------------------
10 SUBROUTINE HWBRC2(COLP,IHEP,JC,CON,BVVUSE,BVVHRD)
12 C-----------------------------------------------------------------------
14 C--Function to search in the jet for the particle
16 C-----------------------------------------------------------------------
18 INCLUDE 'HERWIG61.INC'
20 INTEGER JC,JD,QHEP,LHEP,IHEP,JHEP,IDM,NCOUNT,ID,IP,IDM2,COLP
22 LOGICAL CON,BVVUSE,FLA,AFLA,BVVHRD
24 FLA(IP) = (IP.LE.6.OR.(IP.GE.115.AND.IP.LE.120).
26 & OR.(IP.GE.401.AND.IP.LE.406).
28 & OR.(IP.GE.413.AND.IP.LE.418))
30 AFLA(IP) = ((IP.LE.12.AND.IP.GE.7).OR.(IP.GE.109.AND.IP.LE.114).
32 & OR.(IP.GE.407.AND.IP.LE.412).
34 & OR.(IP.GE.419.AND.IP.LE.424))
40 C--begining and end of jet
42 IF(JDAHEP(1,JC).NE.0) THEN
62 C--SEARCH FOR A COLOUR PARTNER
68 IF (ISTHEP(JHEP).LT.145.OR.ISTHEP(JHEP).GT.152) GOTO 110
70 IF(AFLA(ID).AND.IDM.EQ.13) GOTO 110
72 IF (JDAHEP(2,JHEP).EQ.IHEP) LHEP=JHEP
74 IF ((BVVUSE.AND.JMOHEP(2,JHEP).NE.0).OR.
76 & (.NOT.BVVUSE.AND.JDAHEP(2,JHEP).NE.0)) GOTO 110
78 IF(BVVUSE.AND.ABS(IDHEP(JHEP)).GT.1000000) THEN
80 IF(BVVHRD.AND.AFLA(ID)) THEN
94 & ((FLA(ID).OR.ID.EQ.13.OR.ID.EQ.449).AND.AFLA(IDM)).
96 & OR.(AFLA(ID).AND.(FLA(IDM).OR.IDM.EQ.13.OR.IDM.EQ.449))))
100 IF(AFLA(ID).AND.(IDM.EQ.59.OR.IDM.EQ.449.OR.IDM.EQ.13)) GOTO 110
102 C---JOIN IHEP AND JHEP
106 IF(BVVUSE.OR.(ID.GE.7.AND.ID.LE.12.
108 & AND.((IDM.GE.7.AND.IDM.LE.12)))) RETURN
110 IF(IHEP.NE.HRDCOL(1,2).AND.
112 & (((FLA(ID).OR.ID.EQ.13.OR.ID.EQ.449.OR.ID.EQ.59)
114 & .AND.(AFLA(IDM).OR.IDM.EQ.13.OR.IDM.EQ.449.OR.IDM.EQ.59))
116 & .OR.(AFLA(ID).AND.(FLA(IDM).OR.IDM.EQ.59))))
118 & JDAHEP(2,JHEP)=IHEP
124 IF (LHEP.NE.0) COLP=LHEP
126 C--Additional Baryon number violating piece
132 IF(JMOHEP(1,JC).LT.6) THEN
138 ELSEIF(IDM2.GT.6) THEN
146 IF(IHEP.EQ.HRDCOL(1,2).OR.
148 & ((FLA(ID).OR.ID.EQ.13.OR.ID.EQ.449.OR.ID.EQ.15.OR.ID.EQ.59)
150 & .AND.(AFLA(IDM2).OR.IDM2.EQ.13.OR.IDM2.EQ.13))) THEN
156 IF(IDHEP(QHEP).EQ.0) GOTO 12
158 IF(IDHW(QHEP).EQ.59) THEN
160 IF(JC.EQ.JD.AND.IDHW(JMOHEP(1,QHEP)).EQ.59) THEN
176 11 IF(JDAHEP(2,QHEP).NE.0) THEN
178 IF(JMOHEP(2,JDAHEP(2,QHEP)).EQ.QHEP.AND.
180 & JDAHEP(2,QHEP).NE.QHEP) THEN
182 IF(JDAHEP(2,QHEP).GE.JC.AND.JDAHEP(2,QHEP).LE.JD) THEN
184 QHEP = JDAHEP(2,QHEP)
188 IF(NCOUNT.LT.NHEP) GOTO 11
202 IF(IDHEP(QHEP).EQ.0) GOTO 13
204 IF(IDHW(QHEP).EQ.59) THEN
206 IF(JC.EQ.JD.AND.IDHW(JMOHEP(1,QHEP)).EQ.59) THEN
222 9 IF(JMOHEP(2,QHEP).NE.0) THEN
224 IF(JDAHEP(2,JMOHEP(2,QHEP)).EQ.QHEP.AND.
226 & JMOHEP(2,QHEP).NE.QHEP) THEN
228 IF(JMOHEP(2,QHEP).GE.JC.AND.JMOHEP(2,QHEP).LE.JD) THEN
230 QHEP = JMOHEP(2,QHEP)
234 IF(NCOUNT.LT.NHEP) GOTO 9
244 IF(ABS(IDHEP(QHEP)).LT.1000000) COLP=QHEP
250 C--Search for an anticolour partner
254 IF (ISTHEP(JHEP).LT.145.OR.ISTHEP(JHEP).GT.152) GOTO 210
256 IF (JMOHEP(2,JHEP).EQ.IHEP) LHEP=JHEP
258 IF (JMOHEP(2,JHEP).NE.0) GOTO 210
260 C---JOIN IHEP AND JHEP
268 IF (LHEP.NE.0) COLP=LHEP
276 IF(JMOHEP(1,JC).LT.6) THEN
282 ELSEIF(IDM2.GT.6) THEN
290 C--Additional Baryon number violating piece
292 IF((FLA(ID).AND.AFLA(IDM2)).OR.
294 & ((AFLA(ID).OR.ID.EQ.13.OR.ID.EQ.449.OR.ID.EQ.15.OR.ID.EQ.59)
296 & .AND.(FLA(IDM2).OR.IDM2.EQ.13.OR.IDM2.EQ.449))) THEN
302 IF(IDHEP(QHEP).EQ.0) GOTO 211
304 IF(IDHW(QHEP).EQ.59) THEN
306 IF(JC.EQ.JD.AND.IDHW(JMOHEP(1,QHEP)).EQ.59) THEN
322 209 IF(JMOHEP(2,QHEP).NE.0) THEN
324 IF(JDAHEP(2,JMOHEP(2,QHEP)).EQ.QHEP.AND.
326 & JMOHEP(2,QHEP).NE.QHEP) THEN
328 IF(JMOHEP(2,QHEP).GE.JC.AND.JMOHEP(2,QHEP).LE.JD) THEN
330 QHEP = JMOHEP(2,QHEP)
334 IF(NCOUNT.LT.NHEP) GOTO 209
342 IF(QHEP.NE.0) COLP=QHEP
344 IF(JDAHEP(2,QHEP).EQ.0.AND.IHEP.NE.6) THEN
348 IF(FLA(IHEP).AND.FLA(QHEP).OR.
350 & ((AFLA(IHEP).OR.ID.EQ.13.OR.ID.EQ.449).AND.
352 & (AFLA(QHEP).OR.IDM2.EQ.13.OR.IDM2.EQ.449)))
354 & JDAHEP(2,QHEP)=IHEP
364 IF(IDHEP(QHEP).EQ.0) GOTO 220
366 IF(IDHW(QHEP).EQ.59) THEN
368 IF(JC.EQ.JD.AND.IDHW(JMOHEP(1,QHEP)).EQ.59) THEN
384 219 IF(JDAHEP(2,QHEP).NE.0) THEN
386 IF(JMOHEP(2,JDAHEP(2,QHEP)).EQ.QHEP) THEN
388 IF(JDAHEP(2,QHEP).GE.JC.AND.JDAHEP(2,QHEP).LE.JD) THEN
390 QHEP = JDAHEP(2,QHEP)
394 IF(NCOUNT.LT.200) GOTO 219
402 IF(QHEP.NE.0) COLP=QHEP
406 IF(JDAHEP(2,QHEP).EQ.0.AND.
408 & (((AFLA(ID).OR.ID.EQ.13).AND.(AFLA(IDM2).OR.IDM2.EQ.13)).OR.
410 & (FLA(ID).AND.FLA(IDM2)))) JDAHEP(2,QHEP)=IHEP