X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=HERWIG%2Fhwlhin.f;h=d239c88773a5032a1c2a367f0561cc5a9f43d2dc;hb=a9d2ffa786657bd507a244516bcbb32ba2e7a63b;hp=83db9f14e2e335b22220cddf413bddf19f4327c4;hpb=31d78ebd647a6c5cc4c6d706bfa0a87f779049db;p=u%2Fmrichter%2FAliRoot.git diff --git a/HERWIG/hwlhin.f b/HERWIG/hwlhin.f index 83db9f14e2e..d239c88773a 100644 --- a/HERWIG/hwlhin.f +++ b/HERWIG/hwlhin.f @@ -6,7 +6,7 @@ C---------------------------------------------------------------------- C---------------------------------------------------------------------- C Reads MC@NLO input files and fills Les Houches event common HEPEUP C---------------------------------------------------------------------- - INCLUDE 'HERWIG65.INC' + INCLUDE 'herwig65.inc' C---Les Houches Event Common Block INTEGER MAXNUP PARAMETER (MAXNUP=500) @@ -17,12 +17,13 @@ C---Les Houches Event Common Block & IDUP(MAXNUP),ISTUP(MAXNUP),MOTHUP(2,MAXNUP), & ICOLUP(2,MAXNUP),PUP(5,MAXNUP),VTIMUP(MAXNUP), & SPINUP(MAXNUP) - DOUBLE PRECISION PCM(5),PTR,XMTR,HWULDO - INTEGER I,J,IC,JPR,IHVY,MQQ,NQQ,IUNIT,ISCALE,I1HPRO,IBOS, - & ID,IA,IB,ICOL4(4,4),ICOL5(5,18) + DOUBLE PRECISION PCM(5),PTR,XMTR,HWVDOT,HWULDO,PDB(5) + INTEGER I,J,IC,JPR,MQQ,NQQ,IUNIT,ISCALE,I1HPRO,IBOS,NP,IG, + & ILEP,ID,IA,IB,ICOL4(4,4),ICOL5(5,18),JJPROC,IVHVEC,IVHLEP,MUP PARAMETER (IUNIT=61) - LOGICAL BOPRO,REMIT + LOGICAL BOPRO,NODEC,REMIT COMMON/NQQCOM/MQQ,NQQ + COMMON/VHLIN/IVHVEC,IVHLEP C---Colour flows for heavy quark pair production DATA ICOL4/ & 10,02,10,02,01,20,20,01,12,23,10,03,12,31,30,02/ @@ -37,13 +38,31 @@ C---Colour flows for heavy quark pair production & 12,23,43,10,04, 12,31,34,40,02, & 12,34,14,30,02, 12,31,42,30,04/ IF (IERROR.NE.0) RETURN -C---READ AN EVENT -! PRINT*,'NQQ= ',NQQ,' MQQ=',MQQ +C---READ AN EVENT IF(NQQ.GE.MQQ)CALL HWWARN('UPEVNT',201,*999) + READ(IUNIT,901) I1HPRO,IC,NP + READ(IUNIT,902) (IDUP(I),I=1,NP) + READ(IUNIT,903) XWGTUP +C---Les Houches expects mean weight to be the cross section in pb + XWGTUP= XWGTUP*MQQ + READ(IUNIT,904) ((PUP(J,I),J=1,4),I=1,NP) NQQ=NQQ+1 - NUP=5 +C---Input format is now (px,py,pz,m) + DO I=1,NP + E=SQRT(HWVDOT(4,PUP(1,I),PUP(1,I))) + PUP(5,I)=PUP(4,I) + PUP(4,I)=E + ENDDO + CALL HWVSUM(4,PUP(1,1),PUP(1,2),PCM) + CALL HWUMAS(PCM) +C---REMIT MEANS A REAL PARTON EMISSION OCCURRED + REMIT=PUP(4,3).NE.ZERO +C---NODEC MEANS DECAYS NOT YET DONE + NODEC=NP.EQ.5 + NUP=NP C---CHECK PROCESS CODE - JPR=MOD(IDPRUP,10000)/100 + JJPROC=MOD(ABS(IPROC),10000) + JPR=JJPROC/100 BOPRO=JPR.EQ.13.OR.JPR.EQ.14.OR.JPR.EQ.16.OR.JPR.EQ.36 IF (BOPRO) THEN C---------------------------------------------------------------------- @@ -60,15 +79,16 @@ C 405 g q -> q B C 406 g qbar -> qbar B C 407 g g -> g B C----------------------------------------------------------------------- - NUP=4 - READ(IUNIT,901) I1HPRO,(IDUP(I),I=1,3) +C---NODEC=.TRUE. FOR HIGGS AND UNDECAYED EW BOSON + NODEC=NP.EQ.4 IHPRO=I1HPRO-400 ISCALE=0 IF(JPR.EQ.16)ISCALE=2 - ELSEIF (JPR.EQ.17) THEN + ELSEIF (JPR.EQ.17.OR.JPR.EQ.20) THEN C---------------------------------------------------------------------- -C HEAVY Q QBAR PRODUCTION +C HEAVY Q and/or QBAR PRODUCTION C IPROC=-1705,-1706 for Q=b,t +C IPROC=-2000 for single top C----------------------------------------------------------------------- C I1HPRO IDENTIFIES THE PARTONIC SUBPROCESS, WITH THE FOLLOWING CONVENTIONS: C I1HPRO PROCESS @@ -79,10 +99,11 @@ C 404 qbar g -> qbar Q Qbar C 405 g q -> q Q Qbar C 406 g qbar -> qbar Q Qbar C 407 g g -> g Q Qbar +C 408 q q -> g t q +C 409 qbar qbar -> g tbar qbar C----------------------------------------------------------------------- C IC SPECIFIES THE COLOUR CONNECTION (NOW IN INPUT FILE) C----------------------------------------------------------------------- - READ(IUNIT,901) I1HPRO,(IDUP(I),I=1,3),IC C---SET IHPRO AS FOR DIRECT PHOTON (IPROC=1800) IHPRO=I1HPRO-360 ISCALE=0 @@ -101,26 +122,21 @@ C 404 qbar g -> qbar V V C 405 g q -> q V V C 406 g qbar -> qbar V V C----------------------------------------------------------------------- - READ(IUNIT,901) I1HPRO,(IDUP(I),I=1,3) + IHPRO=I1HPRO-400 + ISCALE=0 + ELSEIF (JPR.EQ.26.OR.JPR.EQ.27) THEN +C---------------------------------------------------------------------- +C GAUGE BOSON PLUS HIGGS PRODUCTION +C VH=WH,ZH FOR IPROC=-2600-ID,-2700-ID +C WHERE ID CONTROLS HIGGS DECAY AS IN STANDARD HERWIG +C----------------------------------------------------------------------- IHPRO=I1HPRO-400 ISCALE=0 ELSE CALL HWWARN('UPEVNT',202,*999) ENDIF - READ(IUNIT,902) XWGTUP -C---Les Houches expects mean weight to be the cross section in pb - XWGTUP= XWGTUP*MQQ - READ(IUNIT,903) ((PUP(J,I),J=1,4),I=1,2) - READ(IUNIT,904) ((PUP(J,I),J=1,4),I=3,NUP) - DO I=1,NUP - CALL HWUMAS(PUP(1,I)) - ENDDO - CALL HWVSUM(4,PUP(1,1),PUP(1,2),PCM) - CALL HWUMAS(PCM) C---HARD SCALE SCALUP=PCM(5) -C---REMIT MEANS A REAL PARTON EMISSION OCCURRED - REMIT=PUP(4,3).NE.ZERO IF (REMIT) THEN IF (ISCALE.EQ.0) THEN PTR=SQRT(PUP(1,3)**2+PUP(2,3)**2) @@ -147,6 +163,7 @@ C---REMIT MEANS A REAL PARTON EMISSION OCCURRED E=(XKA+XKB)/SQRT(S2) PL=-2.0/((VA+VB)*BETA*SQRT(S2))*(VA*XKA-VB*XKB) PTF=E**2-PL**2-XMP2 + IF (PTF.LE.ZERO) CALL HWWARN('UPEVNT',103,*999) PTF=SQRT(PTF) IF(ISCALE.EQ.3)THEN SCALUP=PCM(5)-2.*MIN(PTR,PTF) @@ -182,8 +199,8 @@ C---FINAL STATE MOTHUP(1,I)=1 MOTHUP(2,I)=2 ENDDO - IF (BOPRO) THEN -C---SINGLE BOSON + IF (BOPRO.AND.NODEC) THEN +C---SINGLE BOSON (UNDECAYED) IF (REMIT) THEN C---SET COLOUR CONNECTIONS DO I=1,3 @@ -217,7 +234,7 @@ C---SET COLOUR CONNECTIONS ICOLUP(2,2)=503 ICOLUP(2,3)=503 ELSE - CALL HWWARN('UPEVT',101,*999) + CALL HWWARN('UPEVNT',101,*999) ENDIF ELSE CALL HWVEQU(5,PUP(1,4),PUP(1,3)) @@ -242,21 +259,21 @@ C---QBAR Q ENDIF ICOLUP(1,NUP)=0 ICOLUP(2,NUP)=0 -C---LOAD BOSON DATA +C---LOAD BOSON ID IF (JPR.EQ.13) THEN IDUP(NUP)=23 ELSEIF (JPR.EQ.16) THEN IDUP(NUP)=25 ELSEIF (JPR.EQ.36) THEN - IBOS=MOD(IDPRUP,100) + IBOS=MOD(JJPROC,100) IF (IBOS.EQ.10) THEN IDUP(NUP)=26 ELSEIF (IBOS.EQ.20) THEN IDUP(NUP)=35 ELSEIF (IBOS.EQ.30) THEN - IDUP(NUP)=36 + IDUP(NUP)=36 ELSE - CALL HWWARN('UPEVNT',502,*999) + CALL HWWARN('UPEVNT',502,*999) ENDIF ELSEIF (JPR.EQ.14) THEN IBOS=0 @@ -289,6 +306,8 @@ C---SET COLOUR CONNECTIONS ENDIF ELSE C---2-BODY FINAL STATE + IDUP(3)=IDUP(4) + IDUP(4)=IDUP(5) CALL HWVEQU(5,PUP(1,4),PUP(1,3)) CALL HWVEQU(5,PUP(1,5),PUP(1,4)) C---SET COLOUR CONNECTIONS @@ -300,31 +319,143 @@ C---SET COLOUR CONNECTIONS CALL HWWARN('UPEVNT',104,*999) ENDIF ENDIF - IHVY=MOD(IDPRUP,100) - IDUP(NUP-1)=IHVY - IDUP(NUP)=-IHVY - ELSE -C---GAUGE BOSON PAIR + ELSEIF (JPR.EQ.20) THEN +C---SINGLE TOP: IA,IB ARE THE QUARKS THAT ARE COLOUR CONNECTED +C I.E. (FOR H EVENTS) THOSE THAT ARE NOT CONNECTED TO GLUON + IA=IC/10 + IB=IC-10*IA + IF (IA.LT.1.OR.IA.GT.5) CALL HWWARN('UPEVNT',108,*999) + IF (IB.LT.1.OR.IB.GT.5) CALL HWWARN('UPEVNT',109,*999) + IF (IA.EQ.IB) CALL HWWARN('UPEVNT',110,*999) + DO I=1,5 + IF (I.EQ.IA.OR.I.EQ.IB) THEN + IF (IDUP(I).GT.0) THEN + ICOLUP(1,I)=501 + ICOLUP(2,I)=0 + ELSE + ICOLUP(1,I)=0 + ICOLUP(2,I)=501 + ENDIF + ELSEIF (IDUP(I).EQ.21) THEN + IG=I + ICOLUP(1,I)=502 + ICOLUP(2,I)=503 + ELSEIF (IDUP(I).GT.0) THEN + ICOLUP(1,I)=502 + ICOLUP(2,I)=0 + ELSE + ICOLUP(1,I)=0 + ICOLUP(2,I)=502 + ENDIF + ENDDO IF (REMIT) THEN -C---ADD DIBOSON TO EVENT RECORD (TO FIX ITS MASS) +C---3-BODY FINAL STATE +C---COMPLETE GLUON COLOUR CONNECTIONS + DO I=1,5 + IF (I.NE.IA.AND.I.NE.IB.AND.I.NE.IG) THEN + IF (IDUP(I).GT.0) THEN + IF((I.LT.3.AND.IG.LT.3) + & .OR.(I.GT.2.AND.IG.GT.2)) ICOLUP(1,I)=503 + ELSE + IF((I.LT.3.AND.IG.GT.2) + & .OR.(I.GT.2.AND.IG.LT.3)) ICOLUP(2,I)=503 + ENDIF + ENDIF + ENDDO + ELSE +C---2-BODY FINAL STATE + IDUP(3)=IDUP(4) + IDUP(4)=IDUP(5) + ICOLUP(1,3)=ICOLUP(1,4) + ICOLUP(2,3)=ICOLUP(2,4) + ICOLUP(1,4)=ICOLUP(1,5) + ICOLUP(2,4)=ICOLUP(2,5) + CALL HWVEQU(5,PUP(1,4),PUP(1,3)) + CALL HWVEQU(5,PUP(1,5),PUP(1,4)) + ENDIF + ELSE +C---BOSON PAIR OR LEPTON PAIR + IF (BOPRO.OR.NODEC) THEN NUP=6 - CALL HWVEQU(5,PUP(1,5),PUP(1,6)) - CALL HWVEQU(5,PUP(1,4),PUP(1,5)) - CALL HWVSUM(4,PUP(1,5),PUP(1,6),PUP(1,4)) - CALL HWUMAS(PUP(1,4)) - ISTUP(3)=1 - ISTUP(4)=2 - ISTUP(5)=1 - ISTUP(6)=1 - IDUP(4)=0 - MOTHUP(1,3)=1 - MOTHUP(2,3)=2 - MOTHUP(1,4)=1 - MOTHUP(2,4)=2 - MOTHUP(1,5)=4 - MOTHUP(2,5)=4 - MOTHUP(1,6)=4 - MOTHUP(2,6)=4 + DO I=6,5,-1 + CALL HWVEQU(5,PUP(1,I-1),PUP(1,I)) + IDUP(I)=IDUP(I-1) + ISTUP(I)=1 + ENDDO + ELSE +C---BOSON PAIR: ONE OR BOTH DECAYED +C---ADD BOSON(S) TO EVENT RECORD + IF (ABS(IDUP(6)).LT.20) THEN + NUP=8 + I=2 + IF (ABS(IDUP(4)).LT.20) THEN + NUP=10 + I=3 + ENDIF + MUP=NUP-1 + CALL HWVEQU(5,PUP(1,MUP-I),PUP(1,MUP)) + CALL HWVEQU(5,PUP(1,NUP-I),PUP(1,NUP)) + CALL HWVSUM(4,PUP(1,MUP),PUP(1,NUP),PUP(1,6)) + CALL HWUMAS(PUP(1,6)) + IDUP(MUP)=IDUP(MUP-I) + IDUP(NUP)=IDUP(NUP-I) + ISTUP(MUP)=1 + ISTUP(NUP)=1 + MOTHUP(1,MUP)=6 + MOTHUP(2,MUP)=6 + MOTHUP(1,NUP)=6 + MOTHUP(2,NUP)=6 + ISTUP(6)=2 + ID=IDUP(MUP)+IDUP(NUP) + IF (ID.EQ.0) THEN + IDUP(6)=23 + ELSEIF (ABS(ID).EQ.1) THEN + IDUP(6)=24*ID + ELSE + CALL HWWARN('UPEVNT',106,*999) + ENDIF + ENDIF + IF (ABS(IDUP(4)).LT.20) THEN + CALL HWVZRO(4,PDB) + DO I=8,7,-1 + CALL HWVEQU(5,PUP(1,I-3),PUP(1,I)) + CALL HWVSUM(4,PUP(1,I),PDB,PDB) + IDUP(I)=IDUP(I-3) + ISTUP(I)=1 + MOTHUP(1,I)=5 + MOTHUP(2,I)=5 + ENDDO + CALL HWUMAS(PDB) + CALL HWVEQU(5,PDB,PUP(1,5)) + ISTUP(5)=2 + ID=IDUP(7)+IDUP(8) + IF (ID.EQ.0) THEN + IDUP(5)=23 + ELSEIF (ABS(ID).EQ.1) THEN + IDUP(5)=24*ID + ELSE + CALL HWWARN('UPEVNT',107,*999) + ENDIF + ELSE + CALL HWVEQU(5,PUP(1,4),PUP(1,5)) + IDUP(5)=IDUP(4) + ISTUP(5)=1 + MOTHUP(1,5)=4 + MOTHUP(2,5)=4 + ENDIF + ENDIF +C---ADD DIBOSON OR DILEPTON TO EVENT RECORD (TO FIX ITS MASS) + CALL HWVZRO(4,PDB) + DO I=6,5,-1 + CALL HWVSUM(4,PUP(1,I),PDB,PDB) + MOTHUP(1,I)=4 + MOTHUP(2,I)=4 + ENDDO + CALL HWUMAS(PDB) + CALL HWVEQU(5,PDB,PUP(1,4)) + ISTUP(4)=2 + IDUP(4)=0 + IF (REMIT) THEN C---SET COLOUR CONNECTIONS DO I=1,3 ICOLUP(1,I)=501 @@ -353,17 +484,25 @@ C---SET COLOUR CONNECTIONS ICOLUP(2,2)=501 ICOLUP(1,3)=0 ELSE - CALL HWWARN('UPEVT',101,*999) + CALL HWWARN('UPEVNT',102,*999) ENDIF - DO I=4,6 + DO I=4,NUP ICOLUP(1,I)=0 ICOLUP(2,I)=0 ENDDO ELSE - CALL HWVEQU(5,PUP(1,4),PUP(1,3)) - CALL HWVEQU(5,PUP(1,5),PUP(1,4)) + DO I=5,NUP + CALL HWVEQU(5,PUP(1,I),PUP(1,I-2)) + IDUP(I-2)=IDUP(I) + ISTUP(I-2)=ISTUP(I) + MOTHUP(1,I-2)=MOTHUP(1,I)-2 + MOTHUP(2,I-2)=MOTHUP(1,I)-2 + ENDDO + MOTHUP(1,3)=1 + MOTHUP(1,4)=1 + NUP=NUP-2 C---SET COLOUR CONNECTIONS - DO I=1,4 + DO I=1,NUP ICOLUP(1,I)=0 ICOLUP(2,I)=0 ENDDO @@ -375,31 +514,52 @@ C---SET COLOUR CONNECTIONS ICOLUP(1,2)=501 ENDIF ENDIF - IBOS=MOD(IDPRUP,100) -C---LOAD BOSON DATA - I=NUP-1 - J=NUP - IF (IBOS.EQ.50) THEN - IDUP(I)=24 - IDUP(J)=-24 - ELSEIF (IBOS.EQ.60) THEN - IDUP(I)=23 - IDUP(J)=23 - ELSEIF (IBOS.EQ.70) THEN - IDUP(I)=24 - IDUP(J)=23 - ELSEIF (IBOS.EQ.80) THEN - IDUP(I)=-24 - IDUP(J)=23 - ELSE - CALL HWWARN('UPEVNT',505,*999) + IF (BOPRO) THEN +C---DILEPTON PRODUCTION + IBOS=MOD(JJPROC,100) + ILEP=MOD(JJPROC,10) + IBOS=IBOS-ILEP +C---LOAD LEPTON AND BOSON ID + I=NUP-1 + J=NUP + IF ( IBOS.EQ.50 .OR. + # (IBOS.EQ.60.AND.JPR.EQ.13) .OR. + # (IBOS.EQ.70.AND.JPR.EQ.13) ) THEN + IDUP(I)=-ILEP-10 + IDUP(J)=-IDUP(I) + IF (REMIT) IDUP(4)=23 + ELSEIF (IBOS.EQ.60.AND.JPR.EQ.14) THEN + IDUP(I)=-9-2*ILEP + IDUP(J)=1-IDUP(I) + IF (REMIT) IDUP(4)=24 + ELSEIF (IBOS.EQ.70.AND.JPR.EQ.14) THEN + IDUP(I)=-10-2*ILEP + IDUP(J)=-1-IDUP(I) + IF (REMIT) IDUP(4)=-24 + ELSE + CALL HWWARN('UPEVNT',504,*999) + ENDIF ENDIF ENDIF - 901 FORMAT(1X,I3,4(1X,I2)) - 902 FORMAT(1X,D14.8) - 903 FORMAT(8(1X,D14.8)) - 904 FORMAT(12(1X,D14.8)) - 999 END + 999 CONTINUE + IF(IERROR.LT.100) RETURN + PRINT * + DO I=1,NUP + PRINT '(4I4,3F8.2)',IDUP(I),ISTUP(I),(ICOLUP(J,I),J=1,2), + & (PUP(J,I),J=1,3) + ENDDO +c IPR, IC, NP + 901 FORMAT(1X,I3,2(1X,I2)) +c (ID(I),I=1,NP) + 902 FORMAT(7(1X,I3)) +c XEVWGT + 903 FORMAT(1X,D14.8) +c ((P(J,I),J=1,4),I=1,NP) + 904 FORMAT(28(1X,D14.8)) +c 901 FORMAT(1X,I3,4(1X,I2)) +c 902 FORMAT(1X,D14.8) +c 903 FORMAT(16(1X,D14.8)) + END C---------------------------------------------------------------------- SUBROUTINE UPCODE(ICODE,ICOL) C--DECODES COLOUR CONNECTIONS @@ -414,10 +574,9 @@ C---------------------------------------------------------------------- C---------------------------------------------------------------------- SUBROUTINE UPINIT_GUP C---------------------------------------------------------------------- -C Reads MC@NLO input headers for heavy quark and gauge boson pair -C production and fills Les Houches run common HEPRUP +C Reads MC@NLO input headers and fills Les Houches run common HEPRUP C---------------------------------------------------------------------- - INCLUDE 'HERWIG65.INC' + INCLUDE 'herwig65.inc' C--Les Houches Common Blocks INTEGER MAXPUP PARAMETER(MAXPUP=100) @@ -436,30 +595,27 @@ C--Les Houches Common Blocks & SPINUP(MAXNUP) DOUBLE PRECISION XCKECM,XTMP1,XTMP2,XTMP3,XTMP4,XMT,XMW,XMZ, & XMH,XMV,XM1,XM2,XM3,XM4,XM5,XM21,XLAM,GAH,TINY - INTEGER IVVCODE,IFAIL,MQQ,NQQ,IHW,I,NDNS,JPR,JPR0,IH + DOUBLE PRECISION XMV1,GAV1,GAMAX1,XMV2,GAV2,GAMAX2 + INTEGER IVVCODE,IFAIL,MQQ,NQQ,IHW,I,NDNS,JPR,JPR0,IH, + & IVHVEC,IVHLEP,IVLEP1,IVLEP2 CHARACTER*60 TMPSTR CHARACTER*4 STRP1,STRP2 CHARACTER*8 STRGRP CHARACTER*2 STRSCH + CHARACTER*3 STRFMT CHARACTER*50 QQIN LOGICAL FK88STRNOEQ DATA TINY/1.D-3/ COMMON/NQQCOM/MQQ,NQQ COMMON/VVJIN/QQIN -C - PRINT*,'UPINIT' + COMMON/VHLIN/IVHVEC,IVHLEP + COMMON/VVLIN/IVLEP1,IVLEP2 C IF (IERROR.NE.0) RETURN C--SET UP INPUT FILES OPEN(UNIT=61,FILE=QQIN,STATUS='UNKNOWN') - - PRINT*,'OPENED ',QQIN - C--READ HEADERS OF EVENT FILE READ(61,801)XCKECM,XTMP1,XTMP2,XTMP3,XTMP4,TMPSTR - - PRINT*,'READ' - READ(61,802)IVVCODE,TMPSTR IVVCODE=MOD(IVVCODE,10000) C---CHECK PROCESS CODE @@ -469,7 +625,8 @@ C---CHECK PROCESS CODE IF ((JPR.EQ.17.OR.JPR.EQ.28.OR.JPR.EQ.36).AND. & IVVCODE.NE.MOD(ABS(IPROC),10000)) CALL HWWARN('UPINIT',501,*999) IF (JPR.EQ.13.OR.JPR.EQ.14) THEN - IF(JPR0.EQ.1396)THEN + IF(JPR0.EQ.1396.OR.JPR0.EQ.1371.OR. + # JPR0.EQ.1372.OR.JPR0.EQ.1373)THEN READ(61,808)EMMIN,EMMAX,TMPSTR ELSE READ(61,809)XMV,GAH,GAMMAX,TMPSTR @@ -479,11 +636,22 @@ C-- CHECK VECTOR BOSON MASS # (IVVCODE.EQ.1497.AND.ABS(XMV-RMASS(198)).GT.TINY) .OR. # (IVVCODE.EQ.1498.AND.ABS(XMV-RMASS(199)).GT.TINY) ) # CALL HWWARN('UPINIT',502,*999) + ELSEIF (JPR.EQ.26.OR.JPR.EQ.27) THEN + READ(61,810)IVHVEC,IVHLEP,TMPSTR + READ(61,809)XMV,GAH,GAMMAX,TMPSTR + READ(61,809)XMH,GAH,GAMMAX,TMPSTR + IF( (JPR.EQ.26.AND.ABS(XMV-RMASS(199)).GT.TINY) .OR. + # (JPR.EQ.27.AND.ABS(XMV-RMASS(200)).GT.TINY) ) + # CALL HWWARN('UPINIT',508,*999) + IF(ABS(XMH-RMASS(201)).GT.TINY) CALL HWWARN('UPINIT',509,*999) ELSEIF (JPR.EQ.28) THEN READ(61,808)XMW,XMZ,TMPSTR C-- CHECK VECTOR BOSON MASSES IF(ABS(XMW-RMASS(198)).GT.TINY .OR. # ABS(XMZ-RMASS(200)).GT.TINY) CALL HWWARN('UPINIT',502,*999) + READ(61,810)IVLEP1,IVLEP2,TMPSTR + READ(61,809)XMV1,GAV1,GAMAX1,TMPSTR + READ(61,809)XMV2,GAV2,GAMAX2,TMPSTR ELSEIF (JPR.EQ.16.OR.JPR.EQ.36) THEN READ(61,809)XMH,GAH,XMT,TMPSTR C-- CHECK HIGGS AND TOP MASSES @@ -496,11 +664,12 @@ C-- CHECK HIGGS AND TOP MASSES C-- CHECK HEAVY QUARK MASS IF( (IVVCODE.EQ.1706.AND.ABS(XMT-RMASS(6)).GT.TINY) .OR. # (IVVCODE.EQ.1705.AND.ABS(XMT-RMASS(5)).GT.TINY) .OR. - # (IVVCODE.EQ.1704.AND.ABS(XMT-RMASS(4)).GT.TINY) ) then - print*,' XMT=',XMT - print*,' RMASS(5)', RMASS(5) - CALL HWWARN('UPINIT',505,*999) - endif + # (IVVCODE.EQ.1704.AND.ABS(XMT-RMASS(4)).GT.TINY) ) + # CALL HWWARN('UPINIT',505,*999) + ELSEIF (JPR.EQ.20) THEN + READ(61,803)XMT,TMPSTR +C-- CHECK HEAVY QUARK MASS + IF(ABS(XMT-RMASS(6)).GT.TINY) CALL HWWARN('UPINIT',511,*999) ELSE CALL HWWARN('UPINIT',506,*999) ENDIF @@ -508,7 +677,7 @@ C-- CHECK HEAVY QUARK MASS READ(61,805)STRP1,STRP2,TMPSTR READ(61,806)STRGRP,NDNS,TMPSTR READ(61,807)XLAM,STRSCH,TMPSTR -C--CHECK THAT EVENT FILE HAS BEEN GENERATED CONSISTENTLY WITH +C--CHECK THAT EVENT FILE HAS BEEN GENERATED CONSISTENTLY WITH C--HERWIG PARAMETERS ADOPTED HERE IFAIL=0 C-- CM ENERGY @@ -522,18 +691,24 @@ C-- QUARK AND GLUON MASSES # ABS(XM21-RMASS(13)).GT.TINY .OR. C-- LAMBDA_QCD: NOW REMOVED TO ALLOW MORE FLEXIBILITY (NNLO EFFECT ANYHOW) C # ABS(XLAM-QCDLAM).GT.TINY .OR. -C-- REPLACE THE FOLLOWING WITH A CONDITION ON STRSCH, IF CONSISTENT +C-- REPLACE THE FOLLOWING WITH A CONDITION ON STRSCH, IF CONSISTENT C-- INFORMATION ON PDF SCHEME WILL BE AVAILABLE FROM PDF LIBRARIES AND HERWIG C-- COLLIDING PARTICLE TYPE # FK88STRNOEQ(STRP1,PART1) .OR. - # FK88STRNOEQ(STRP2,PART2) )IFAIL=1 + # FK88STRNOEQ(STRP2,PART2) ) IFAIL=1 C--IF PDF LIBRARY IS USED, CHECK PDF CONSISTENCY IF( IFAIL.EQ.0 .AND. MODPDF(1).NE.-1)THEN - IF( - # FK88STRNOEQ(STRGRP,AUTPDF(1)) .OR. - # FK88STRNOEQ(STRGRP,AUTPDF(2)) .OR. - # ABS(NDNS-MODPDF(1)).GT.TINY .OR. - # ABS(NDNS-MODPDF(2)).GT.TINY )IFAIL=1 + IF( ABS(NDNS-MODPDF(1)).GT.TINY .OR. + # ABS(NDNS-MODPDF(2)).GT.TINY .OR. +C--IF LHAPDF IS USED, STRGRP AND AUTPDF ARE DIFFERENT + # STRGRP.NE.'LHAPDF'.AND.FK88STRNOEQ(STRGRP,AUTPDF(1)))THEN + IFAIL=0 + ENDIF +C--WHEN LHAPDF IS LINKED, AUTPDF() IS A MC@NLO-DEFINED STRING + IF(AUTPDF(1).EQ.'HWLHAPDF'.OR.AUTPDF(1).EQ.'LHAEXT')THEN + AUTPDF(1)='DEFAULT' + AUTPDF(2)='DEFAULT' + ENDIF ENDIF IF(IFAIL.EQ.1) CALL HWWARN('UPINIT',507,*999) CALL HWUIDT(3,IDBMUP(1),IHW,PART1) @@ -546,32 +721,29 @@ C--IF PDF LIBRARY IS USED, CHECK PDF CONSISTENCY IDWTUP=-4 NPRUP=1 LPRUP(1)=IVVCODE +C-- TEST FOR NEW FORMAT INPUT MOMENTA: (PX,PY,PZ,M) + READ(61,811) STRFMT,TMPSTR + IF (STRFMT.NE.'P,M') CALL HWWARN('UPINIT',510,*999) READ(61,900) MQQ NQQ=0 - NUP=6 +C-- LARGEST EXPECTED NUMBER OF LEGS + NUP=10 AQEDUP=ZERO AQCDUP=ZERO DO I=1,NUP VTIMUP(I)=ZERO SPINUP(I)=9. ENDDO - - PRINT*,'END OF UPINIT' - - PRINT*,'PDFGUP(1)=',PDFGUP(1) - PRINT*,'PDFGUP(2)=',PDFGUP(2) - - 801 FORMAT(5(1X,D10.4),1X,A) 802 FORMAT(1X,I6,1X,A) 803 FORMAT(1X,D10.4,1X,A) 804 FORMAT(6(1X,D10.4),1X,A) 805 FORMAT(2(1X,A4),1X,A) - 806 FORMAT(1X,A8,1X,I4,1X,A) + 806 FORMAT(1X,A8,1X,I6,1X,A) 807 FORMAT(1X,D10.4,1X,A2,1X,A) 808 FORMAT(2(1X,D10.4),1X,A) 809 FORMAT(3(1X,D10.4),1X,A) + 810 FORMAT(2(1X,I2),1X,A) + 811 FORMAT(1X,A3,1X,A) 900 FORMAT(I9) 999 END - -