1
DOUBLE PRECISION FUNCTION DSIG7(PP,WGT,IMODE)
2
C ****************************************************
4
C Generated by MadGraph 5 v. 2.0.0.beta3, 2013-02-14
5
C By the MadGraph Development Team
6
C Please visit us at https://launchpad.net/madgraph5
8
C Process: u d~ > u u d~ u~ WEIGHTED=4
9
C Process: u s~ > u u s~ u~ WEIGHTED=4
10
C Process: s d~ > s s d~ s~ WEIGHTED=4
11
C Process: s u~ > s s u~ s~ WEIGHTED=4
13
C RETURNS DIFFERENTIAL CROSS SECTION
15
C pp 4 momentum of external particles
16
C wgt weight from Monte Carlo
17
C imode 0 run, 1 init, 2 reweight,
18
C 3 finalize, 4 only PDFs
20
C Amplitude squared and summed
21
C ****************************************************
27
INCLUDE 'nexternal.inc'
28
INCLUDE 'maxconfigs.inc'
31
PARAMETER (CONV=389379.66*1000) !CONV TO PICOBARNS
33
PARAMETER (PI=3.1415926D0)
37
DOUBLE PRECISION PP(0:3,NEXTERNAL), WGT
42
INTEGER I,ITYPE,LP,IPROC
43
DOUBLE PRECISION U1,S1
44
DOUBLE PRECISION SX2,UX2,DX2
45
DOUBLE PRECISION XPQ(-7:7),PD(0:MAXPROC)
46
DOUBLE PRECISION DSIGUU,R,RCONF
47
INTEGER LUN,ICONF,IFACT,NFACT
54
DOUBLE PRECISION ALPHAS2,REWGT,PDG2PDF
60
COMMON /SUBPROC/ IPSEL
61
C MINCFIG has this config number
62
INTEGER MINCFIG, MAXCFIG
63
COMMON/TO_CONFIGS/MINCFIG, MAXCFIG
64
INTEGER MAPCONFIG(0:LMAXCONFIGS), ICONFIG
65
COMMON/TO_MCONFIGS/MAPCONFIG, ICONFIG
66
C Keep track of whether cuts already calculated for this event
67
LOGICAL CUTSDONE,CUTSPASSED
68
COMMON/TO_CUTSDONE/CUTSDONE,CUTSPASSED
70
INTEGER SUBDIAG(MAXSPROC),IB(2)
71
COMMON/TO_SUB_DIAG/SUBDIAG,IB
78
DATA SX2,UX2,DX2/3*1D0/
85
C Set up process information from file symfact
88
OPEN(UNIT=LUN,FILE='../symfact.dat',STATUS='OLD',ERR=20)
90
READ(LUN,*,ERR=10,END=10) RCONF, IFACT
92
IF(ICONF.EQ.MAPCONFIG(MINCFIG))THEN
98
20 WRITE(*,*)'Error opening symfact.dat. No symmetry factor used.'
101
C Only run if IMODE is 0
102
IF(IMODE.NE.0.AND.IMODE.NE.4) RETURN
105
IF (ABS(LPP(IB(1))).GE.1) THEN
106
LP=SIGN(1,LPP(IB(1)))
107
U1=PDG2PDF(ABS(LPP(IB(1))),2*LP,XBK(IB(1)),DSQRT(Q2FACT(1)))
108
S1=PDG2PDF(ABS(LPP(IB(1))),3*LP,XBK(IB(1)),DSQRT(Q2FACT(1)))
110
IF (ABS(LPP(IB(2))).GE.1) THEN
111
LP=SIGN(1,LPP(IB(2)))
112
SX2=PDG2PDF(ABS(LPP(IB(2))),-3*LP,XBK(IB(2)),DSQRT(Q2FACT(2)))
113
UX2=PDG2PDF(ABS(LPP(IB(2))),-2*LP,XBK(IB(2)),DSQRT(Q2FACT(2)))
114
DX2=PDG2PDF(ABS(LPP(IB(2))),-1*LP,XBK(IB(2)),DSQRT(Q2FACT(2)))
118
IPROC=IPROC+1 ! u d~ > u u d~ u~
120
PD(0)=PD(0)+DABS(PD(IPROC))
121
IPROC=IPROC+1 ! u s~ > u u s~ u~
123
PD(0)=PD(0)+DABS(PD(IPROC))
124
IPROC=IPROC+1 ! s d~ > s s d~ s~
126
PD(0)=PD(0)+DABS(PD(IPROC))
127
IPROC=IPROC+1 ! s u~ > s s u~ s~
129
PD(0)=PD(0)+DABS(PD(IPROC))
134
CALL SMATRIX7(PP,DSIGUU)
135
DSIGUU=DSIGUU*REWGT(PP)*NFACT
136
IF (DSIGUU.LT.1D199) THEN
137
C Select a flavor combination (need to do here for right sign)
140
DO WHILE (R.GT.0D0 .AND. IPSEL.LT.IPROC)
142
R=R-DABS(PD(IPSEL))/PD(0)
144
C Set sign of dsig based on sign of PDF and matrix element
145
DSIG7=DSIGN(PD(0)*CONV*DSIGUU,DSIGUU*PD(IPSEL))
147
WRITE(*,*) 'Error in matrix element'
151
IF(IMODE.EQ.0.AND.DABS(DSIG7).GT.0D0)THEN
152
C Call UNWGT to unweight and store events
153
CALL UNWGT(PP,DSIG7*WGT,7)