CDECK ID>, HWMULT. *CMZ :- -04/05/99 11.11.55 by Bryan Webber *-- Author : David Ward, modified by Bryan Webber C----------------------------------------------------------------------- SUBROUTINE HWMULT(EPPBAR,NCHT) C----------------------------------------------------------------------- C Chooses charged multiplicity NCHT at the p-pbar c.m. energy EPPBAR C----------------------------------------------------------------------- INCLUDE 'HERWIG61.INC' DOUBLE PRECISION HWMNBI,HWR,EPPBAR,E0,ALOGS,RK,EK,AVN,SUM,R, & CUM(500) INTEGER NCHT,IMAX,I,N SAVE IMAX,CUM EXTERNAL HWMNBI,HWR DATA E0/0/ IF (EPPBAR.NE.E0) THEN E0=EPPBAR C---Initialize ALOGS=2.*LOG(EPPBAR) RK=PMBK1*ALOGS+PMBK2 IF (ABS(RK).GT.1000.) RK=1000. EK=1./RK AVN=PMBN1*EXP(PMBN2*ALOGS)+PMBN3 IF (AVN.LT.ONE) AVN=1. SUM=0. IMAX=1 DO 10 I=1,500 N=2*I CUM(I)=HWMNBI(N,AVN,EK) IF (CUM(I).LT.1D-7*SUM) GOTO 11 IMAX=I SUM=SUM+CUM(I) CUM(I)=SUM 10 CONTINUE 11 CONTINUE IF (IMAX.LE.1) THEN IMAX=1 CUM(1)=1 ELSEIF (IMAX.EQ.500) THEN CALL HWWARN('HWMULT',200,*999) ELSE DO 12 I=1,IMAX 12 CUM(I)=CUM(I)/SUM ENDIF ENDIF C --- Select NCHT R=HWR() DO 20 I=1,IMAX IF(R.GT.CUM(I)) GOTO 20 NCHT=2*I RETURN 20 CONTINUE CALL HWWARN('HWMULT',100,*999) 999 END CDECK ID>, HWMWGT. *CMZ :- -02/11/93 11.11.55 by Bryan Webber *-- Author : Bryan Webber C----------------------------------------------------------------------- SUBROUTINE HWMWGT C----------------------------------------------------------------------- C COMPUTES WEIGHT FOR MINIMUM-BIAS EVENT C----------------------------------------------------------------------- INCLUDE 'HERWIG61.INC' DOUBLE PRECISION S,X,Y INTEGER IDB,IDT,IDBT IF (IERROR.NE.0) RETURN IDB=IDHW(1) IF (JDAHEP(1,1).NE.0) IDB=IDHW(JDAHEP(1,1)) IDT=IDHW(2) IF (JDAHEP(1,2).NE.0) IDT=IDHW(JDAHEP(1,2)) IDBT=100*IDB+IDT IF (IDT.GT.IDB) IDBT=100*IDT+IDB C---USE TOTAL CROSS SECTION FITS OF DONNACHIE & LANDSHOFF C CERN-TH.6635/92 IF (IDBT.EQ.9173) THEN X=21.70 Y=98.39 ELSEIF (IDBT.EQ.7373) THEN X=21.70 Y=56.08 ELSEIF (IDBT.EQ.7330) THEN X=13.63 Y=36.02 ELSEIF (IDBT.EQ.7338) THEN X=13.63 Y=27.56 ELSEIF (IDBT.EQ.7334) THEN X=11.82 Y=26.36 ELSEIF (IDBT.EQ.7346) THEN X=11.82 Y= 8.15 ELSEIF (IDBT.EQ.7359) THEN X=.0677 Y=.1290 ELSEIF (IDBT.EQ.9175) THEN X=21.70 Y=92.71 ELSEIF (IDBT.EQ.7573) THEN X=21.70 Y=54.77 ELSEIF (IDBT.EQ.5959) THEN C---FOR GAMMA-GAMMA ASSUME X AND Y FACTORIZE X=2.1E-4 Y=3.0E-4 ELSE PRINT *,' IDBT=',IDBT CALL HWWARN('HWMWGT',100,*999) ENDIF S=PHEP(5,3)**2 C---EVWGT IS NON-DIFFRACTIVE CROSS SECTION IN NANOBARNS C ASSUMING NON-DIFFRACTIVE = TOTAL*0.7 EVWGT=.7E6*(X*S**.0808 + Y*S**(-.4525)) 999 END CDECK ID>, HWRAZM. *CMZ :- -26/04/91 11.11.55 by Bryan Webber *-- Author : Bryan Webber C----------------------------------------------------------------------- SUBROUTINE HWRAZM(PT,PX,PY) C----------------------------------------------------------------------- C RANDOMLY ROTATED 2-VECTOR (PX,PY) OF LENGTH PT C----------------------------------------------------------------------- DOUBLE PRECISION HWR,PT,PX,PY,C,S,CS,QT,ONE,ZERO PARAMETER(ONE=1.0D0, ZERO=0.0D0) EXTERNAL HWR 10 C=2.*HWR()-1. S=2.*HWR()-1. CS=C*C+S*S IF (CS.GT.ONE .OR. CS.EQ.ZERO) GOTO 10 QT=PT/CS PX=(C*C-S*S)*QT PY=2.*C*S*QT END