4 *CMZ :- -26/04/91 14.29.39 by Federico Carminati
6 *-- Author : Bryan Webber
8 C-----------------------------------------------------------------------
10 SUBROUTINE HWCCUT(JHEP,KHEP,PCL,BTCLUS,SPLIT)
12 C-----------------------------------------------------------------------
14 C Cuts into 2 the cluster, momentum PCL, made of partons JHEP & KHEP
16 C-----------------------------------------------------------------------
18 INCLUDE 'HERWIG61.INC'
20 DOUBLE PRECISION HWREXQ,HWUPCM,HWR,HWVDOT,EMC,QM1,QM2,EMX,EMY,
22 & QM3,PXY,PCX,PCY,RCM,PCL(5),AX(5),PA(5),PB(5),PC(5),SKAPPA,DELTM,
24 & VSCA,VTMP(4),RKAPPA,VCLUS
26 INTEGER HWRINT,JHEP,KHEP,LHEP,MHEP,ID1,ID2,ID3,NTRY,NTRYMX,J,IB
30 EXTERNAL HWREXQ,HWUPCM,HWR,HWVDOT,HWRINT
32 COMMON/HWCFRM/VCLUS(4,NMXHEP)
34 PARAMETER (SKAPPA=1.,NTRYMX=100)
36 IF (IERROR.NE.0) RETURN
52 C Decide if cluster contains a b-(anti)quark
54 IF (ID1.EQ.5.OR.ID1.EQ.11.OR.ID2.EQ.5.OR.ID2.EQ.11) THEN
66 C Split beam and target clusters as soft clusters
68 C Both (remnant) children treated like soft clusters if IOPREM=0(1)
74 IF (EMC.LE.QM1+QM2+2.*QM3) THEN
80 IF (EMC.LE.QM1+QM2+2.*QM3) RETURN
84 PXY=EMC-QM1-QM2-TWO*QM3
86 IF (ISTHEP(JHEP).EQ.153.OR.ISTHEP(JHEP).EQ.154.OR.
90 EMX=QM1+QM3+HWREXQ(BTCLM,PXY)
94 EMX=QM1+QM3+PXY*HWR()**PSPLT(IB)
98 IF (ISTHEP(KHEP).EQ.153.OR.ISTHEP(KHEP).EQ.154.OR.
102 EMY=QM2+QM3+HWREXQ(BTCLM,PXY)
106 EMY=QM2+QM3+PXY*HWR()**PSPLT(IB)
110 IF (EMX+EMY.GE.EMC) THEN
114 IF (NTRY.GT.NTRYMX) RETURN
120 PCX=HWUPCM(EMX,QM1,QM3)
122 PCY=HWUPCM(EMY,QM2,QM3)
126 C Choose fragment masses for ordinary cluster
132 IF (NTRY.GT.NTRYMX) RETURN
134 30 EMX=QM1+PXY*HWR()**PSPLT(IB)
136 EMY=QM2+PXY*HWR()**PSPLT(IB)
138 IF (EMX+EMY.GE.EMC) GOTO 30
140 C u,d,s pair production with weights QWT
144 IF (QWT(ID3).LT.HWR()) GOTO 40
148 PCX=HWUPCM(EMX,QM1,QM3)
150 IF (PCX.LT.ZERO) GOTO 20
152 PCY=HWUPCM(EMY,QM2,QM3)
154 IF (PCY.LT.ZERO) GOTO 20
160 C Boost antiquark to CoM frame to find axis
162 CALL HWULOF(PCL,PHEP(1,KHEP),AX)
164 RCM=1./SQRT(HWVDOT(3,AX,AX))
166 CALL HWVSCA(3,RCM,AX,AX)
168 C Construct new CoM momenta (collinear)
170 PXY=HWUPCM(EMC,EMX,EMY)
172 CALL HWVSCA(3,PXY,AX,PC)
174 PC(4)=SQRT(PXY**2+EMY**2)
178 CALL HWVSCA(3,PCY,AX,PA)
180 PA(4)=SQRT(PCY**2+QM2**2)
184 CALL HWULOB(PC,PA,PB)
186 CALL HWVDIF(4,PC,PB,PA)
194 CALL HWULOB(PCL,PB,PHEP(1,KHEP))
196 CALL HWULOB(PCL,PA,PHEP(1,MHEP))
198 CALL HWVSCA(3,-ONE,PC,PC)
204 CALL HWVSCA(3,PCX,AX,PA)
206 PA(4)=SQRT(PCX**2+QM3**2)
208 CALL HWULOB(PC,PA,PB)
210 CALL HWULOB(PCL,PB,PHEP(1,LHEP))
214 50 PHEP(J,JHEP)=PCL(J)-PHEP(J,KHEP)-PHEP(J,LHEP)-PHEP(J,MHEP)
218 CALL HWVEQU(4,VHEP(1,LHEP),VHEP(1,MHEP))
220 C Construct new vertex positions
224 CALL HWVSCA(3,RKAPPA,AX,AX)
226 DELTM=(EMX-EMY)*(EMX+EMY)/(TWO*EMC)
228 CALL HWVSCA(3,DELTM,AX,VTMP)
230 VTMP(4)=(HALF*EMC-PXY)*RKAPPA
232 CALL HWULB4(PCL,VTMP,VTMP)
234 CALL HWVSUM(4,VTMP,VCLUS(1,JHEP),VHEP(1,LHEP))
236 CALL HWVEQU(4,VHEP(1,LHEP),VHEP(1,MHEP))
238 VSCA=0.25*EMC+HALF*(PXY+DELTM)
240 CALL HWVSCA(3,VSCA,AX,VTMP)
242 VTMP(4)=(EMC-VSCA)*RKAPPA
244 CALL HWULB4(PCL,VTMP,VTMP)
246 CALL HWVSUM(4,VTMP,VCLUS(1,JHEP),VCLUS(1,MHEP))
248 VSCA=-0.25*EMC+HALF*(DELTM-PXY)
250 CALL HWVSCA(3,VSCA,AX,VTMP)
252 VTMP(4)=(EMC+VSCA)*RKAPPA
254 CALL HWULB4(PCL,VTMP,VTMP)
256 CALL HWVSUM(4,VTMP,VCLUS(1,JHEP),VCLUS(1,JHEP))
264 IDHEP(MHEP)= IDPDG(ID3)
266 IDHEP(LHEP)=-IDPDG(ID3)
276 JMOHEP(1,LHEP)=JMOHEP(1,KHEP)
284 JMOHEP(1,MHEP)=JMOHEP(1,JHEP)
298 *CMZ :- -26/04/91 10.18.56 by Bryan Webber
300 *-- Author : Bryan Webber
302 C-----------------------------------------------------------------------
306 C-----------------------------------------------------------------------
308 C DECAYS CLUSTERS INTO PRIMARY HADRONS
310 C-----------------------------------------------------------------------
312 INCLUDE 'HERWIG61.INC'
314 INTEGER JCL,KCL,IP,JP,KP,IST,ID1,ID2,ID3
316 IF (IERROR.NE.0) RETURN
318 IF (IPROC/1000.EQ.9.OR.IPROC/1000.EQ.5) THEN
320 C---RELABEL CLUSTER CONNECTED TO REMNANT IN DIS
324 IF (ISTHEP(JCL).EQ.164) GOTO 20
326 IF (ISTHEP(JCL).EQ.165) THEN
334 IF (ISTHEP(IP).EQ.162) THEN
342 IF (JMOHEP(2,KP).NE.JP) THEN
354 IF (ISTHEP(KCL)/10.NE.16) CALL HWWARN('HWCDEC',100,*999)
372 IF (IST.GT.162.AND.IST.LT.166) THEN
374 C---DON'T HADRONIZE BEAM/TARGET CLUSTERS
376 IF (IST.EQ.163.OR..NOT.GENSOF) THEN
378 C---SET UP FLAVOURS FOR CLUSTER DECAY
380 CALL HWCFLA(IDHW(JMOHEP(1,JCL)),IDHW(JMOHEP(2,JCL)),ID1,ID3)
382 CALL HWCHAD(JCL,ID1,ID3,ID2)
396 *CMZ :- -26/04/91 10.18.56 by Bryan Webber
398 *-- Author : Bryan Webber
400 C-----------------------------------------------------------------------
402 SUBROUTINE HWCFLA(JD1,JD2,ID1,ID2)
404 C-----------------------------------------------------------------------
406 C SETS UP FLAVOURS FOR CLUSTER DECAY
408 C-----------------------------------------------------------------------
410 INTEGER JD1,JD2,ID1,ID2,JD,JDEC(12)
412 DATA JDEC/1,2,3,10,11,12,4,5,6,7,8,9/
416 IF (JD.GT.12) JD=JD-108
422 IF (JD.GT.12) JD=JD-96