1
DOUBLE PRECISION FUNCTION DSIG1(PP,WGT,IMODE)
2
C ****************************************************
4
C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
5
C By the MadGraph5_aMC@NLO Development Team
6
C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
10
C RETURNS DIFFERENTIAL CROSS SECTION
12
C pp 4 momentum of external particles
13
C wgt weight from Monte Carlo
14
C imode 0 run, 1 init, 2 reweight,
15
C 3 finalize, 4 only PDFs,
16
C 5 squared amplitude only (never
19
C Amplitude squared and summed
20
C ****************************************************
26
INCLUDE 'nexternal.inc'
27
INCLUDE 'maxconfigs.inc'
30
PARAMETER (CONV=389379.66*1000) !CONV TO PICOBARNS
32
PARAMETER (PI=3.1415926D0)
36
DOUBLE PRECISION PP(0:3,NEXTERNAL), WGT
41
INTEGER I,ITYPE,LP,IPROC
44
DOUBLE PRECISION XPQ(-7:7),PD(0:MAXPROC)
45
DOUBLE PRECISION DSIGUU,R,RCONF
46
INTEGER LUN,ICONF,IFACT,NFACT
53
DOUBLE PRECISION ALPHAS2,REWGT,PDG2PDF
59
COMMON /SUBPROC/ IPSEL
60
C MINCFIG has this config number
61
INTEGER MINCFIG, MAXCFIG
62
COMMON/TO_CONFIGS/MINCFIG, MAXCFIG
63
INTEGER MAPCONFIG(0:LMAXCONFIGS), ICONFIG
64
COMMON/TO_MCONFIGS/MAPCONFIG, ICONFIG
65
C Keep track of whether cuts already calculated for this event
66
LOGICAL CUTSDONE,CUTSPASSED
67
COMMON/TO_CUTSDONE/CUTSDONE,CUTSPASSED
69
INTEGER SUBDIAG(MAXSPROC),IB(2)
70
COMMON/TO_SUB_DIAG/SUBDIAG,IB
84
C Set up process information from file symfact
87
OPEN(UNIT=LUN,FILE='../symfact.dat',STATUS='OLD',ERR=20)
89
READ(LUN,*,ERR=10,END=10) RCONF, IFACT
91
IF(ICONF.EQ.MAPCONFIG(MINCFIG))THEN
97
20 WRITE(*,*)'Error opening symfact.dat. No symmetry factor used.'
100
C Continue only if IMODE is 0, 4 or 5
101
IF(IMODE.NE.0.AND.IMODE.NE.4.AND.IMODE.NE.5) RETURN
104
IF (ABS(LPP(IB(1))).GE.1) THEN
105
LP=SIGN(1,LPP(IB(1)))
106
U1=PDG2PDF(ABS(LPP(IB(1))),2*LP,XBK(IB(1)),DSQRT(Q2FACT(1)))
108
IF (ABS(LPP(IB(2))).GE.1) THEN
109
LP=SIGN(1,LPP(IB(2)))
110
UX2=PDG2PDF(ABS(LPP(IB(2))),-2*LP,XBK(IB(2)),DSQRT(Q2FACT(2)))
114
IPROC=IPROC+1 ! u u~ > u u~
116
PD(0)=PD(0)+DABS(PD(IPROC))
121
CALL SMATRIX1(PP,DSIGUU)
123
IF (DSIGUU.LT.1D199) THEN
130
C Select a flavor combination (need to do here for right sign)
133
DO WHILE (R.GE.0D0 .AND. IPSEL.LT.IPROC)
135
R=R-DABS(PD(IPSEL))/PD(0)
137
DSIGUU=DSIGUU*REWGT(PP)*NFACT
138
IF (DSIGUU.LT.1D199) THEN
139
C Set sign of dsig based on sign of PDF and matrix element
140
DSIG1=DSIGN(PD(0)*CONV*DSIGUU,DSIGUU*PD(IPSEL))
142
WRITE(*,*) 'Error in matrix element'
146
C Generate events only if IMODE is 0.
147
IF(IMODE.EQ.0.AND.DABS(DSIG1).GT.0D0)THEN
148
C Call UNWGT to unweight and store events
149
CALL UNWGT(PP,DSIG1*WGT,1)
154
C Functionality to handling grid