SUBROUTINE SMATRIX1(P,ANS) C C Generated by MadGraph5_aMC@NLO v. 2.1.2, 2014-07-03 C By the MadGraph5_aMC@NLO Development Team C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch C C MadGraph5_aMC@NLO for Madevent Version C C Returns amplitude squared summed/avg over colors C and helicities C for the point in phase space P(0:3,NEXTERNAL) C C Process: g g > z z HIG=1 QCD=0 C * Decay: z > e+ e- WEIGHTED=2 C * Decay: z > e+ e- WEIGHTED=2 C IMPLICIT NONE C C CONSTANTS C INCLUDE 'genps.inc' INCLUDE 'maxconfigs.inc' INCLUDE 'nexternal.inc' INCLUDE 'maxamps.inc' INTEGER NCOMB PARAMETER ( NCOMB=64) INTEGER NGRAPHS PARAMETER (NGRAPHS=2) INTEGER NDIAGS PARAMETER (NDIAGS=2) INTEGER THEL PARAMETER (THEL=2*NCOMB) C C ARGUMENTS C REAL*8 P(0:3,NEXTERNAL),ANS C C LOCAL VARIABLES C INTEGER NHEL(NEXTERNAL,NCOMB),NTRY(2) INTEGER ISHEL(2) REAL*8 T,MATRIX1 REAL*8 R,SUMHEL,TS(NCOMB) INTEGER I,IDEN INTEGER JC(NEXTERNAL),II LOGICAL GOODHEL(NCOMB,2) REAL*8 HWGT, XTOT, XTRY, XREJ, XR, YFRAC(0:NCOMB) INTEGER NGOOD(2), IGOOD(NCOMB,2) INTEGER JHEL(2), J, JJ C C GLOBAL VARIABLES C DOUBLE PRECISION AMP2(MAXAMPS), JAMP2(0:MAXFLOW) COMMON/TO_AMPS/ AMP2, JAMP2 CHARACTER*101 HEL_BUFF COMMON/TO_HELICITY/ HEL_BUFF INTEGER IMIRROR COMMON/TO_MIRROR/ IMIRROR REAL*8 POL(2) COMMON/TO_POLARIZATION/ POL INTEGER ISUM_HEL LOGICAL MULTI_CHANNEL COMMON/TO_MATRIX/ISUM_HEL, MULTI_CHANNEL INTEGER MAPCONFIG(0:LMAXCONFIGS), ICONFIG COMMON/TO_MCONFIGS/MAPCONFIG, ICONFIG INTEGER SUBDIAG(MAXSPROC),IB(2) COMMON/TO_SUB_DIAG/SUBDIAG,IB DATA XTRY, XREJ /0,0/ DATA NTRY /0,0/ DATA NGOOD /0,0/ DATA ISHEL/0,0/ SAVE YFRAC, IGOOD, JHEL DATA GOODHEL/THEL*.FALSE./ DATA (NHEL(I, 1),I=1,6) /-1,-1,-1,-1,-1,-1/ DATA (NHEL(I, 2),I=1,6) /-1,-1,-1,-1,-1, 1/ DATA (NHEL(I, 3),I=1,6) /-1,-1,-1,-1, 1,-1/ DATA (NHEL(I, 4),I=1,6) /-1,-1,-1,-1, 1, 1/ DATA (NHEL(I, 5),I=1,6) /-1,-1,-1, 1,-1,-1/ DATA (NHEL(I, 6),I=1,6) /-1,-1,-1, 1,-1, 1/ DATA (NHEL(I, 7),I=1,6) /-1,-1,-1, 1, 1,-1/ DATA (NHEL(I, 8),I=1,6) /-1,-1,-1, 1, 1, 1/ DATA (NHEL(I, 9),I=1,6) /-1,-1, 1,-1,-1,-1/ DATA (NHEL(I, 10),I=1,6) /-1,-1, 1,-1,-1, 1/ DATA (NHEL(I, 11),I=1,6) /-1,-1, 1,-1, 1,-1/ DATA (NHEL(I, 12),I=1,6) /-1,-1, 1,-1, 1, 1/ DATA (NHEL(I, 13),I=1,6) /-1,-1, 1, 1,-1,-1/ DATA (NHEL(I, 14),I=1,6) /-1,-1, 1, 1,-1, 1/ DATA (NHEL(I, 15),I=1,6) /-1,-1, 1, 1, 1,-1/ DATA (NHEL(I, 16),I=1,6) /-1,-1, 1, 1, 1, 1/ DATA (NHEL(I, 17),I=1,6) /-1, 1,-1,-1,-1,-1/ DATA (NHEL(I, 18),I=1,6) /-1, 1,-1,-1,-1, 1/ DATA (NHEL(I, 19),I=1,6) /-1, 1,-1,-1, 1,-1/ DATA (NHEL(I, 20),I=1,6) /-1, 1,-1,-1, 1, 1/ DATA (NHEL(I, 21),I=1,6) /-1, 1,-1, 1,-1,-1/ DATA (NHEL(I, 22),I=1,6) /-1, 1,-1, 1,-1, 1/ DATA (NHEL(I, 23),I=1,6) /-1, 1,-1, 1, 1,-1/ DATA (NHEL(I, 24),I=1,6) /-1, 1,-1, 1, 1, 1/ DATA (NHEL(I, 25),I=1,6) /-1, 1, 1,-1,-1,-1/ DATA (NHEL(I, 26),I=1,6) /-1, 1, 1,-1,-1, 1/ DATA (NHEL(I, 27),I=1,6) /-1, 1, 1,-1, 1,-1/ DATA (NHEL(I, 28),I=1,6) /-1, 1, 1,-1, 1, 1/ DATA (NHEL(I, 29),I=1,6) /-1, 1, 1, 1,-1,-1/ DATA (NHEL(I, 30),I=1,6) /-1, 1, 1, 1,-1, 1/ DATA (NHEL(I, 31),I=1,6) /-1, 1, 1, 1, 1,-1/ DATA (NHEL(I, 32),I=1,6) /-1, 1, 1, 1, 1, 1/ DATA (NHEL(I, 33),I=1,6) / 1,-1,-1,-1,-1,-1/ DATA (NHEL(I, 34),I=1,6) / 1,-1,-1,-1,-1, 1/ DATA (NHEL(I, 35),I=1,6) / 1,-1,-1,-1, 1,-1/ DATA (NHEL(I, 36),I=1,6) / 1,-1,-1,-1, 1, 1/ DATA (NHEL(I, 37),I=1,6) / 1,-1,-1, 1,-1,-1/ DATA (NHEL(I, 38),I=1,6) / 1,-1,-1, 1,-1, 1/ DATA (NHEL(I, 39),I=1,6) / 1,-1,-1, 1, 1,-1/ DATA (NHEL(I, 40),I=1,6) / 1,-1,-1, 1, 1, 1/ DATA (NHEL(I, 41),I=1,6) / 1,-1, 1,-1,-1,-1/ DATA (NHEL(I, 42),I=1,6) / 1,-1, 1,-1,-1, 1/ DATA (NHEL(I, 43),I=1,6) / 1,-1, 1,-1, 1,-1/ DATA (NHEL(I, 44),I=1,6) / 1,-1, 1,-1, 1, 1/ DATA (NHEL(I, 45),I=1,6) / 1,-1, 1, 1,-1,-1/ DATA (NHEL(I, 46),I=1,6) / 1,-1, 1, 1,-1, 1/ DATA (NHEL(I, 47),I=1,6) / 1,-1, 1, 1, 1,-1/ DATA (NHEL(I, 48),I=1,6) / 1,-1, 1, 1, 1, 1/ DATA (NHEL(I, 49),I=1,6) / 1, 1,-1,-1,-1,-1/ DATA (NHEL(I, 50),I=1,6) / 1, 1,-1,-1,-1, 1/ DATA (NHEL(I, 51),I=1,6) / 1, 1,-1,-1, 1,-1/ DATA (NHEL(I, 52),I=1,6) / 1, 1,-1,-1, 1, 1/ DATA (NHEL(I, 53),I=1,6) / 1, 1,-1, 1,-1,-1/ DATA (NHEL(I, 54),I=1,6) / 1, 1,-1, 1,-1, 1/ DATA (NHEL(I, 55),I=1,6) / 1, 1,-1, 1, 1,-1/ DATA (NHEL(I, 56),I=1,6) / 1, 1,-1, 1, 1, 1/ DATA (NHEL(I, 57),I=1,6) / 1, 1, 1,-1,-1,-1/ DATA (NHEL(I, 58),I=1,6) / 1, 1, 1,-1,-1, 1/ DATA (NHEL(I, 59),I=1,6) / 1, 1, 1,-1, 1,-1/ DATA (NHEL(I, 60),I=1,6) / 1, 1, 1,-1, 1, 1/ DATA (NHEL(I, 61),I=1,6) / 1, 1, 1, 1,-1,-1/ DATA (NHEL(I, 62),I=1,6) / 1, 1, 1, 1,-1, 1/ DATA (NHEL(I, 63),I=1,6) / 1, 1, 1, 1, 1,-1/ DATA (NHEL(I, 64),I=1,6) / 1, 1, 1, 1, 1, 1/ DATA IDEN/512/ C ---------- C BEGIN CODE C ---------- NTRY(IMIRROR)=NTRY(IMIRROR)+1 DO I=1,NEXTERNAL JC(I) = +1 ENDDO IF (MULTI_CHANNEL) THEN DO I=1,NDIAGS AMP2(I)=0D0 ENDDO JAMP2(0)=1 DO I=1,INT(JAMP2(0)) JAMP2(I)=0D0 ENDDO ENDIF ANS = 0D0 WRITE(HEL_BUFF,'(20I5)') (0,I=1,NEXTERNAL) DO I=1,NCOMB TS(I)=0D0 ENDDO IF (ISHEL(IMIRROR) .EQ. 0 .OR. NTRY(IMIRROR) .LE. MAXTRIES) THEN DO I=1,NCOMB IF (GOODHEL(I,IMIRROR) .OR. NTRY(IMIRROR).LE.MAXTRIES) THEN T=MATRIX1(P ,NHEL(1,I),JC(1)) DO JJ=1,NINCOMING IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0 $ ,POL(JJ)))) THEN T=T*ABS(POL(JJ)) ELSE IF(POL(JJ).NE.1D0)THEN T=T*(2D0-ABS(POL(JJ))) ENDIF ENDDO ANS=ANS+DABS(T) TS(I)=T ENDIF ENDDO JHEL(IMIRROR) = 1 IF(NTRY(IMIRROR).LE.MAXTRIES)THEN DO I=1,NCOMB IF (.NOT.GOODHEL(I,IMIRROR) .AND. (DABS(TS(I)).GT.ANS $ *LIMHEL/NCOMB)) THEN GOODHEL(I,IMIRROR)=.TRUE. NGOOD(IMIRROR) = NGOOD(IMIRROR) +1 IGOOD(NGOOD(IMIRROR),IMIRROR) = I PRINT *,'Added good helicity ',I,TS(I)*NCOMB/ANS $ ,' in event ',NTRY(IMIRROR) ENDIF ENDDO ENDIF IF(NTRY(IMIRROR).EQ.MAXTRIES)THEN ISHEL(IMIRROR)=MIN(ISUM_HEL,NGOOD(IMIRROR)) ENDIF ELSE !LOOP OVER GOOD HELICITIES DO J=1,ISHEL(IMIRROR) JHEL(IMIRROR)=JHEL(IMIRROR)+1 IF (JHEL(IMIRROR) .GT. NGOOD(IMIRROR)) JHEL(IMIRROR)=1 HWGT = REAL(NGOOD(IMIRROR))/REAL(ISHEL(IMIRROR)) I = IGOOD(JHEL(IMIRROR),IMIRROR) T=MATRIX1(P ,NHEL(1,I),JC(1)) DO JJ=1,NINCOMING IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ))) $ ) THEN T=T*ABS(POL(JJ)) ELSE IF(POL(JJ).NE.1D0)THEN T=T*(2D0-ABS(POL(JJ))) ENDIF ENDDO ANS=ANS+DABS(T)*HWGT TS(I)=T*HWGT ENDDO IF (ISHEL(IMIRROR) .EQ. 1) THEN WRITE(HEL_BUFF,'(20i5)')(NHEL(II,I),II=1,NEXTERNAL) C Set right sign for ANS, based on sign of chosen helicity ANS=DSIGN(ANS,TS(I)) ENDIF ENDIF IF (ISHEL(IMIRROR) .NE. 1) THEN CALL RANMAR(R) SUMHEL=0D0 DO I=1,NCOMB SUMHEL=SUMHEL+DABS(TS(I))/ANS IF(R.LT.SUMHEL)THEN WRITE(HEL_BUFF,'(20i5)')(NHEL(II,I),II=1,NEXTERNAL) C Set right sign for ANS, based on sign of chosen helicity ANS=DSIGN(ANS,TS(I)) GOTO 10 ENDIF ENDDO 10 CONTINUE ENDIF IF (MULTI_CHANNEL) THEN XTOT=0D0 DO I=1,NDIAGS XTOT=XTOT+AMP2(I) ENDDO IF (XTOT.NE.0D0) THEN ANS=ANS*AMP2(SUBDIAG(1))/XTOT ELSE ANS=0D0 ENDIF ENDIF ANS=ANS/DBLE(IDEN) END REAL*8 FUNCTION MATRIX1(P,NHEL,IC) C C Generated by MadGraph5_aMC@NLO v. 2.1.2, 2014-07-03 C By the MadGraph5_aMC@NLO Development Team C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch C C Returns amplitude squared summed/avg over colors C for the point with external lines W(0:6,NEXTERNAL) C C Process: g g > z z HIG=1 QCD=0 C * Decay: z > e+ e- WEIGHTED=2 C * Decay: z > e+ e- WEIGHTED=2 C IMPLICIT NONE C C CONSTANTS C INTEGER NGRAPHS PARAMETER (NGRAPHS=2) INCLUDE 'genps.inc' INCLUDE 'nexternal.inc' INCLUDE 'maxamps.inc' INTEGER NWAVEFUNCS, NCOLOR PARAMETER (NWAVEFUNCS=6, NCOLOR=1) REAL*8 ZERO PARAMETER (ZERO=0D0) COMPLEX*16 IMAG1 PARAMETER (IMAG1=(0D0,1D0)) C C ARGUMENTS C REAL*8 P(0:3,NEXTERNAL) INTEGER NHEL(NEXTERNAL), IC(NEXTERNAL) C C LOCAL VARIABLES C INTEGER I,J COMPLEX*16 ZTEMP REAL*8 DENOM(NCOLOR), CF(NCOLOR,NCOLOR) COMPLEX*16 AMP(NGRAPHS), JAMP(NCOLOR) COMPLEX*16 W(6,NWAVEFUNCS) C Needed for v4 models COMPLEX*16 DUM0,DUM1 DATA DUM0, DUM1/(0D0, 0D0), (1D0, 0D0)/ C COMPLEX*16 c_eff,ggh_eff REAL*8 q1(0:3),tga,ca,sa,q C GLOBAL VARIABLES C DOUBLE PRECISION AMP2(MAXAMPS), JAMP2(0:MAXFLOW) COMMON/TO_AMPS/ AMP2, JAMP2 INCLUDE 'coupl.inc' C C COLOR DATA C DATA DENOM(1)/1/ DATA (CF(I, 1),I= 1, 1) / 2/ C 1 Tr(1,2) C ---------- C BEGIN CODE C ---------- CALL VXXXXX(P(0,1),ZERO,NHEL(1),-1*IC(1),W(1,1)) CALL VXXXXX(P(0,2),ZERO,NHEL(2),-1*IC(2),W(1,2)) CALL IXXXXX(P(0,3),MDL_ME,NHEL(3),-1*IC(3),W(1,3)) CALL OXXXXX(P(0,4),MDL_ME,NHEL(4),+1*IC(4),W(1,4)) CALL FFV2_4_3(W(1,3),W(1,4),GC_23,GC_30,MDL_MZ,MDL_WZ,W(1,5)) CALL IXXXXX(P(0,5),MDL_ME,NHEL(5),-1*IC(5),W(1,4)) CALL OXXXXX(P(0,6),MDL_ME,NHEL(6),+1*IC(6),W(1,3)) CALL FFV2_4_3(W(1,4),W(1,3),GC_23,GC_30,MDL_MZ,MDL_WZ,W(1,6)) CALL VVS2_3(W(1,1),W(1,2),GC_10,MDL_MH,MDL_WH,W(1,3)) C Amplitude(s) for diagram number 1 CALL VVS1_0(W(1,5),W(1,6),W(1,3),GC_35,AMP(1)) CALL VVS2_3(W(1,1),W(1,2),GC_14,MDL_MS,MDL_WS,W(1,3)) C Amplitude(s) for diagram number 2 CALL VVS1_0(W(1,5),W(1,6),W(1,3),GC_36,AMP(2)) C introduce loop form factors DO i=0,3 q1(i)=p(i,1)+p(i,2) ENDDO c_eff = ggh_eff(q1,MDL_MT) AMP(1) = AMP(1)*c_eff AMP(2) = AMP(2)*c_eff JAMP(1)=+2D0*(+AMP(1)+AMP(2)) MATRIX1 = 0.D0 DO I = 1, NCOLOR ZTEMP = (0.D0,0.D0) DO J = 1, NCOLOR ZTEMP = ZTEMP + CF(J,I)*JAMP(J) ENDDO MATRIX1=MATRIX1+ZTEMP*DCONJG(JAMP(I))/DENOM(I) ENDDO AMP2(1)=AMP2(1)+AMP(1)*DCONJG(AMP(1)) AMP2(2)=AMP2(2)+AMP(2)*DCONJG(AMP(2)) DO I = 1, NCOLOR JAMP2(I)=JAMP2(I)+JAMP(I)*DCONJG(JAMP(I)) ENDDO END COMPLEX*16 FUNCTION ggh_eff(q1,rmt) REAL*8 q1(0:3),rmt,pi,twopi,fourpi,sixteenpisquaredtau, & beta,shat,as,Gf COMPLEX*16 czero,cuno,cim,C0eff PARAMETER (pi=3.141592653589793238462643d0,twopi=2.d0*pi, & fourpi=4.d0*pi,sixteenpisquared=fourpi*fourpi) DATA czero/(0.d0,0.d0)/, cuno/(1.d0,0.d0)/, cim/(0.d0,1.d0)/ DATA Gf/1.166390d-5/ * DATA as/1.18d-1/ shat = q1(0)*q1(0)-q1(3)*q1(3)-q1(2)*q1(2)-q1(1)*q1(1) tau = 4.d0*rmt*rmt/shat * Using cteq6l1 parametrization. LO as, nf=5, see cteq6l1.tbl as = 1.d0/(23.d0/12.d0/pi*log(shat/0.1652**2)) IF(tau.LT.1.d0) THEN beta = sqrt(1.d0-tau) C0eff = 0.5d0*( log((1.d0+beta)/(1.d0-beta)) -cim*pi )**2 ELSE C0eff = -2.d0*asin(1.d0/sqrt(tau))**2 ENDIF * A factor -cim*sixteenpisquared*shat has been included in C0eff: * C0eff = -cim*sixteenpisquared*shat*C0 * The HELAS vertex is proportional to (eps1*eps2)*(p1*p2)-(eps1*p2)*(p1*eps2) * A factor 2/shat has to be introduced. There is a factor 1/2 for TR[ta,tb]=1/2*delta(a,b) ggh_eff = cim*8.d0*rmt/sixteenpisquared* & (1.d0-0.5d0*(1.d0-tau)*C0eff)* & (-1.d0)*(as*fourpi)*rmt*sqrt(sqrt(2.d0)*Gf)/shat RETURN END