4 *CMZ :- -26/04/91 14.27.17 by Federico Carminati
6 *-- Author : Ian Knowles
8 C-----------------------------------------------------------------------
10 SUBROUTINE HWBTIM(INITBR,INTERF)
12 C-----------------------------------------------------------------------
14 C Constructs full 4-momentum & production vertices in time-like jet
16 C initiated by INITBR, interference partner INTERF and spin density
18 C RHOPAR(INITBR). DECPAR(INITBR) returns jet's spin density matrix.
20 C Includes azimuthal angular correlations between branching planes
22 C due to spin (if AZSPIN) using the algorithm of Knowles & Collins.
24 C Ses Nucl. Phys. B304 (1988) 794 & Comp. Phys. Comm. 58 (1990) 271.
26 C-----------------------------------------------------------------------
28 INCLUDE 'HERWIG61.INC'
30 DOUBLE PRECISION HWR,DMIN,PT,EIKON,EINUM,EIDEN1,EIDEN2,EISCR,
32 & WT,SPIN,Z1,Z2,PRMAX,CAZ,CX,SX,ROHEP(3),RMAT(3,3),ZERO2(2)
34 INTEGER INITBR,INTERF,IPAR,JPAR,KPAR,LPAR,MPAR,NTRY,JOLD
40 DATA ZERO2,DMIN/ZERO,ZERO,1.D-15/
42 IF (IERROR.NE.0) RETURN
48 IF ((JDAPAR(1,JPAR).NE.0).OR.(IDPAR(JPAR).EQ.13)) GOTO 30
50 C No branching, assign decay matrix
52 CALL HWVZRO(2,DECPAR(1,JPAR))
56 C Advance up the leader
58 C Find the parent and partner of J
60 10 IPAR=JMOPAR(1,JPAR)
66 IF (JMOPAR(1,KPAR).EQ.IPAR) THEN
70 CALL HWBAZF(IPAR,JPAR,PHIPAR(1,IPAR),RHOPAR(1,IPAR),
72 & ZERO2,RHOPAR(1,JPAR))
78 IF (JMOPAR(1,KPAR).NE.IPAR)
80 & CALL HWWARN('HWBTIM',100,*999)
84 CALL HWBAZF(IPAR,KPAR,RHOPAR(1,IPAR),PHIPAR(1,IPAR),
86 & DECPAR(1,KPAR),RHOPAR(1,JPAR))
90 C Generate azimuthal angle of J's branching
92 30 IF (JDAPAR(1,JPAR).EQ.0) THEN
96 CALL HWVZRO(2,DECPAR(1,JPAR))
98 IF (JPAR.EQ.INITBR) RETURN
104 C Assign an angle to a branching using an M-function
106 C Find the daughters of J
114 CALL HWUROT(PPAR(1,JPAR), ONE,ZERO,RMAT)
116 CALL HWUROF(RMAT,PPAR(1,KPAR),ROHEP)
118 PT=MAX(SQRT(ROHEP(1)*ROHEP(1)+ROHEP(2)*ROHEP(2)),DMIN)
124 EICOR=AZSOFT.AND.((IDPAR(LPAR).EQ.13).OR.(IDPAR(MPAR).EQ.13))
128 C Rearrange s.t. LPAR is the (softest) gluon
130 IF (IDPAR(MPAR).EQ.13) THEN
132 IF (IDPAR(LPAR).NE.13.OR.
134 & PPAR(4,MPAR).LT.PPAR(4,LPAR)) THEN
146 EINUM=(PPAR(4,KPAR)*PPAR(4,LPAR))
148 & *ABS(PPAR(2,LPAR)-PPAR(2,MPAR))
150 EIDEN1=(PPAR(4,KPAR)*PPAR(4,LPAR))-ROHEP(3)*PPAR(3,LPAR)
152 EIDEN2=PT*ABS(PPAR(1,LPAR))
154 EISCR=1.-(PPAR(5,MPAR)/PPAR(4,MPAR))**2
156 & /MIN(PPAR(2,LPAR),PPAR(2,MPAR))
158 EIKON=EISCR+EINUM/MAX(EIDEN1-EIDEN2,DMIN)
170 Z1=PPAR(4,LPAR)/PPAR(4,JPAR)
174 IF (IDPAR(JPAR).EQ.13.AND.IDPAR(LPAR).EQ.13) THEN
176 WT=Z1*Z2/(Z1/Z2+Z2/Z1+Z1*Z2)
178 ELSEIF (IDPAR(JPAR).EQ.13.AND.IDPAR(LPAR).LT.13) THEN
180 WT=-2.*Z1*Z2/(Z1*Z1+Z2*Z2)
186 C Assign the azimuthal angle
188 PRMAX=(1.+ABS(WT))*EIKON
194 IF (NTRY.GT.NBTRY) CALL HWWARN('HWBTIM',101,*999)
196 CALL HWRAZM( ONE,CX,SX)
198 CALL HWUROT(PPAR(1,JPAR),CX,SX,RMAT)
200 C Determine the angle between the branching planes
202 CALL HWUROF(RMAT,PPAR(1,KPAR),ROHEP)
206 PHIPAR(1,JPAR)=2.*CAZ*CAZ-1.
208 PHIPAR(2,JPAR)=2.*CAZ*ROHEP(2)/PT
210 IF (EICOR) EIKON=EISCR+EINUM/MAX(EIDEN1-EIDEN2*CAZ,DMIN)
212 IF (AZSPIN) SPIN=1.+WT*(RHOPAR(1,JPAR)*PHIPAR(1,JPAR)
214 & +RHOPAR(2,JPAR)*PHIPAR(2,JPAR))
216 IF (SPIN*EIKON.LT.HWR()*PRMAX) GOTO 50
218 C Construct full 4-momentum of L and M
224 PPAR(1,LPAR)=-PPAR(1,LPAR)
226 PPAR(1,MPAR)=-PPAR(1,MPAR)
238 CALL HWUROB(RMAT,PPAR(1,LPAR),PPAR(1,LPAR))
242 CALL HWUROB(RMAT,PPAR(1,MPAR),PPAR(1,MPAR))
244 C Assign production vertex to L and M
246 CALL HWUDKL(IDPAR(JOLD),PPAR(1,JOLD),VPAR(1,LPAR))
248 CALL HWVSUM(4,VPAR(1,JOLD),VPAR(1,LPAR),VPAR(1,LPAR))
250 CALL HWVEQU(4,VPAR(1,LPAR),VPAR(1,MPAR))
254 60 IF (JDAPAR(1,JPAR).NE.0) GOTO 10
256 C Assign decay matrix
258 CALL HWVZRO(2,DECPAR(1,JPAR))
260 C Backtrack down the leader
262 70 IPAR=JMOPAR(1,JPAR)
266 IF (KPAR.EQ.JPAR) THEN
268 C Develop the side branch
276 C Construct decay matrix
278 CALL HWBAZF(IPAR,KPAR,DECPAR(1,JPAR),DECPAR(1,KPAR),
280 & PHIPAR(1,IPAR),DECPAR(1,IPAR))
284 IF (IPAR.EQ.INITBR) RETURN
294 *CMZ :- -14/10/99 18.04.56 by Mike Seymour
296 *-- Author : Gennaro Corcella
298 C-----------------------------------------------------------------------
302 C-----------------------------------------------------------------------
304 INCLUDE 'HERWIG61.INC'
306 DOUBLE PRECISION HWBVMC,HWR,HWUALF,HWUSQR,X(3),W,
308 & X3MIN,X3MAX,X1MIN,X1MAX,QSCALE,GLUFAC,R(3,3),M(3),
310 & E(3),AW,PTSQ,EM,EPS,MASDEP,A,B,C,GAMDEP,LAMBDA,
312 & PW(5),PT(5),PW1(5),CS,SN,EPG,QQ,RR,CC
314 INTEGER ID,ID3,IHEP,KHEP,WHEP,ICMF,K
316 EXTERNAL HWBVMC,HWUALF,HWUSQR,HWR
318 LAMBDA(A,B,C)=(A**2+B**2+C**2-2*A*B-2*B*C-2*C*A)/(4*A)
320 C---FIND AN UNTREATED CMF
326 C----FIND A DECAYING TOP QUARK
328 10 IF (ISTHEP(IHEP).EQ.155.AND.ISTHEP(JDAHEP(1,IHEP)).EQ.113
330 & .AND.(IDHW(IHEP).EQ.6.OR.IDHW(IHEP).EQ.12))
334 IF (ICMF.EQ.0) RETURN
340 C---GENERATE X(1),X(3) ACCORDING TO 1/((1-X(1))*X(3)**2)
346 AW=(PHEP(5,JDAHEP(1,ICMF))/EM)**2
352 X(3)=X3MIN*X3MAX/(X3MIN+(X3MAX-X3MIN)*HWR())
354 C--CC, QQ AND RR ARE THE VARIABLE DEFINED IN OUR PAPER
356 C--IN ORDER TO SOLVE THE CUBIC EQUATION
360 QQ=(AW**2-4*(1-X(3))*(2-CC-X(3))-2*AW*(3+2*X(3)))/3
362 & -((3+2*AW-4*X(3))**2)/9
364 RR=((3+2*AW-4*X(3))*(AW**2-4*(1-X(3))*(2-CC-X(3))
366 & -2*AW*(3+2*X(3)))-3*(AW*(4-AW)*(2-CC)+(1-CC)
368 & *(2*(1-X(3))-AW)**2))/6-(ONE/27)*(3+2*AW-4*X(3))**3
372 X1MAX=2*(-QQ**3)**(ONE/6)*COS(ACOS(RR/SQRT(-QQ**3))/3)
376 X1MIN=1-X(3)+(AW*X(3))/(1-X(3))
378 IF (X1MAX.GE.1.OR.X1MIN.GE.1.OR.X1MAX.LE.X1MIN) GOTO 100
380 X(1)=1-(1-X1MAX)*((1-X1MIN)/(1-X1MAX))**HWR()
384 W=((1+1/AW-2*AW)*((1-AW)*X(3)-(1-X(1))*(1-X(3))-X(3)**2)
386 & +(1+1/(2*AW))*X(3)*(X(1)+X(3)-1)**2+2*X(3)**2*(1-X(1)))
388 & *(1/X3MIN-1/X3MAX)*LOG((1-X1MIN)/(1-X1MAX))
390 C---QSCALE=DURHAM-LIKE TRANSVERSE MOMENTUM OF THE GLUON
392 QSCALE=EM*HWUSQR(X(3)*(1-X(1))/(2-X(1)-X(3)-AW))
394 C---FACTOR FOR GLUON EMISSION
396 ID=IDHW(JDAHEP(2,ICMF))
400 IF (QSCALE.GT.HWBVMC(13)) GLUFAC=CFFAC*HWUALF(1,QSCALE)
402 & /(PIFAC*(1-AW)*(1-2*AW+1/AW))
404 C---IN FRACTION GLUFAC*W OF EVENTS ADD A GLUON
406 IF (GLUFAC*W.GT.HWR()) THEN
416 C---CHECK INFRA-RED CUT-OFF FOR GLUON
418 M(1)=PHEP(5,JDAHEP(1,ICMF))
424 E(1)=HALF*EM*(X(1)+AW+(-M(2)**2-M(3)**2)/EM**2)
430 PTSQ=-LAMBDA(E(1)**2-M(1)**2,E(3)**2-M(3)**2,
434 IF (PTSQ.LE.0.OR.E(1).LE.M(1).OR.E(2).LE.M(2).OR.E(3).LE.M(3))
438 C---CALCULATE MASS-DEPENDENT SUPPRESSION
440 EPS=(RMASS(ID)/EM)**2
442 EPG=(RMASS(ID3)/EM)**2
444 GAMDEP=(1-AW)*(1+1/AW-2*AW)/(SQRT(1+AW**2+EPS**2
446 & -2*AW-2*EPS-2*AW*EPS)*(1+EPS+(1-EPS)**2/AW-2*AW))
448 MASDEP=GAMDEP/(1-X(1))*((1+EPS+(1-EPS)**2/AW-2*AW)
450 & *((1-AW+EPS)*X(3)*(1-X(1))-(1-X(1))**2*(1-X(3))
452 & -X(3)**2*(1-X(1)+EPS))+(1+(1+EPS)/(2*AW))*X(3)
454 & *(1-X(1))*(X(1)+X(3)-1)**2+2*X(3)**2*(1-X(1))**2)
456 IF (MASDEP.LT.HWR()*((1+1/AW-2*AW)*((1-AW)*X(3)
458 & -(1-X(1))*(1-X(3))-X(3)**2)+(1+1/(2*AW))*X(3)
460 & *(X(1)+X(3)-1)**2+2*X(3)**2*(1-X(1)))) RETURN
462 C---STORE OLD MOMENTA
464 c---PT = TOP MOMENTUM, PW= W MOMENTUM
466 CALL HWVEQU(5,PHEP(1,ICMF),PT)
468 CALL HWVEQU(5,PHEP(1,JDAHEP(1,ICMF)),PW)
470 C--------GET THE NON-EMITTING PARTON CMF DIRECTION
472 CALL HWULOF(PHEP(1,ICMF),PW,PW)
474 CALL HWRAZM(ONE,CS,SN)
476 CALL HWUROT(PW,CS,SN,R)
482 C---REORDER ENTRIES: IHEP=EMITTER, KHEP=EMITTED
492 C---SET UP MOMENTA IN TOP REST FRAME
504 PHEP(4,IHEP)=HALF*EM*(2-X(1)-X(3)+EPS-AW+EPG)
506 PHEP(4,KHEP)=HALF*EM*X(3)
508 PHEP(5,IHEP)=RMASS(ID)
510 PHEP(5,KHEP)=RMASS(ID3)
512 PHEP(3,KHEP)=HALF*EM*((X(1)+AW-EPS-EPG)*X(3)-2*(1+EPS-AW
514 $ -EPG-(2+EPS+EPG-AW-X(1)-X(3))))/HWUSQR((X(1)+AW
518 PHEP(3,IHEP)=-PHEP(3,KHEP)-HALF*EM
520 $ *HWUSQR((X(1)+AW-EPS-EPG)**2-4*AW)
524 PHEP(1,KHEP)=HWUSQR(PHEP(4,KHEP)**2-PHEP(5,KHEP)**2
528 PHEP(1,IHEP)=-PHEP(1,KHEP)
532 CALL HWVSUM(4,PHEP(1,IHEP),PHEP(1,KHEP),PW1)
534 CALL HWVDIF(4,PHEP(1,ICMF),PW1,PW1)
544 C---ORIENT IN CMF, THEN BOOST TO LAB
546 CALL HWUROB(R,PHEP(1,ICMF),PHEP(1,ICMF))
548 CALL HWUROB(R,PHEP(1,IHEP),PHEP(1,IHEP))
550 CALL HWUROB(R,PHEP(1,WHEP),PHEP(1,WHEP))
552 CALL HWUROB(R,PHEP(1,KHEP),PHEP(1,KHEP))
554 CALL HWULOB(PT,PHEP(1,IHEP),PHEP(1,IHEP))
556 CALL HWULOB(PT,PHEP(1,KHEP),PHEP(1,KHEP))
558 CALL HWULOB(PT,PHEP(1,ICMF),PHEP(1,ICMF))
560 CALL HWULOB(PT,PHEP(1,WHEP),PHEP(1,WHEP))
562 C---STATUS AND COLOUR CONNECTION
568 IDHEP(KHEP)=IDPDG(ID3)
590 *CMZ :- -26/04/91 11.11.54 by Bryan Webber
592 *-- Author : Bryan Webber
594 C-----------------------------------------------------------------------
598 C-----------------------------------------------------------------------
600 C VIRTUAL MASS CUTOFF FOR PARTON TYPE ID
602 C-----------------------------------------------------------------------
604 INCLUDE 'HERWIG61.INC'
606 DOUBLE PRECISION HWBVMC
612 HWBVMC=RMASS(ID)+VGCUT
614 ELSEIF (ID.LT.13) THEN
616 HWBVMC=RMASS(ID)+VQCUT
618 ELSEIF (ID.EQ.59) THEN
620 HWBVMC=RMASS(ID)+VPCUT