C----------------------------------------------------------------------- PROGRAM ZGEN C----------------------------------------------------------------------- C Example main program C----------------------------------------------------------------------- IMPLICIT NONE C--Les Houches run common block INTEGER MAXPUP PARAMETER(MAXPUP=100) INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP COMMON /HEPRUP/ IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2), & IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP), & XMAXUP(MAXPUP),LPRUP(MAXPUP) C--common block to pass the parameters DOUBLE PRECISION SMIN,SMAX INTEGER IPR COMMON /LPARAM/SMIN,SMAX,IPR C--local variables DOUBLE PRECISION WGT C--beam particles and energies (only proton=2212 and antiproton=-2212) IDBMUP(1) = 2212 IDBMUP(2) = 2212 EBMUP(1) = 7000.0D0 EBMUP(2) = 7000.0D0 C--pdf's for the beams (use CTEQ5L) C--MUST BE THE SAME FOR BOTH BEAMS PDFGUP(1) = 4 PDFGUP(2) = 4 PDFSUP(1) = 46 PDFSUP(2) = 46 C--integration parameters SMIN = 10.0D0**2 SMAX = (EBMUP(1)+EBMUP(2))**2 print *,'limits on sqrt(sh)',sqrt(smin),sqrt(smax) C--which process the following are supported C 100 all fermion-antifermion production C 110 all lepton production C 120 all quark production C 130+I production of the fermion i=(1,6 =e,ve,mu,vmu,tau,vtau) C (7,12-d,u,s,c,b,t) IPR = 110 C--test call to the weight generation routine CALL ZWGHT(WGT) END C----------------------------------------------------------------------- SUBROUTINE ZWGHT(WGT) C----------------------------------------------------------------------- C Subroutine to return the weight for a given phase space point C----------------------------------------------------------------------- IMPLICIT NONE C--Les Houches run common block INTEGER MAXPUP PARAMETER(MAXPUP=100) INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP COMMON /HEPRUP/ IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2), & IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP), & XMAXUP(MAXPUP),LPRUP(MAXPUP) C--common block to pass the parameters DOUBLE PRECISION SMIN,SMAX INTEGER IPR COMMON /LPARAM/SMIN,SMAX,IPR C--local variables DOUBLE PRECISION WGT,PIFAC,GEV2PB INTEGER IFERM(2) LOGICAL FIRST DATA FIRST/.TRUE./ SAVE IFERM,FIRST,GEV2PB,PIFAC C--useful parameters and initilisation IF(FIRST) THEN C--constants PIFAC = ACOS(-1.0D0) FIRST = .FALSE. C--conversion to picobarn from GeV GEV2PB=389379.D3 C--which processes to generate (IFERM controls the loop over final state fermions) C--(e,ve,mu,vmu,tau,nvtau,d,u,s,c,b,t) IF(IPR.EQ.100) THEN IFERM(1) = 1 IFERM(2) = 12 ELSEIF(IPR.EQ.110) THEN IFERM(1) = 1 IFERM(2) = 6 ELSEIF(IPR.EQ.120) THEN IFERM(1) = 7 IFERM(2) = 12 ELSEIF(IPR.GE.131.AND.IPR.LE.142) THEN IFERM(1) = IPR-130 IFERM(2) = IPR-130 ELSE print *,'unknown process stopping' STOP ENDIF print *,'selected process code =',ipr print *,'limits on fermion loop',iferm ENDIF END