1
DOUBLE PRECISION FUNCTION DSIG1(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 u~ > g g WEIGHTED=2
9
C * Decay: g > u u~ WEIGHTED=1
10
C * Decay: g > u u~ WEIGHTED=1
11
C Process: s s~ > g g WEIGHTED=2
12
C * Decay: g > u u~ WEIGHTED=1
13
C * Decay: g > u u~ WEIGHTED=1
14
C Process: u u~ > g g WEIGHTED=2
15
C * Decay: g > s s~ WEIGHTED=1
16
C * Decay: g > s s~ WEIGHTED=1
17
C Process: s s~ > g g WEIGHTED=2
18
C * Decay: g > s s~ WEIGHTED=1
19
C * Decay: g > s s~ WEIGHTED=1
21
C RETURNS DIFFERENTIAL CROSS SECTION
23
C pp 4 momentum of external particles
24
C wgt weight from Monte Carlo
25
C imode 0 run, 1 init, 2 reweight,
26
C 3 finalize, 4 only PDFs
28
C Amplitude squared and summed
29
C ****************************************************
35
INCLUDE 'nexternal.inc'
36
INCLUDE 'maxconfigs.inc'
39
PARAMETER (CONV=389379.66*1000) !CONV TO PICOBARNS
41
PARAMETER (PI=3.1415926D0)
45
DOUBLE PRECISION PP(0:3,NEXTERNAL), WGT
50
INTEGER I,ITYPE,LP,IPROC
51
DOUBLE PRECISION U1,S1
52
DOUBLE PRECISION SX2,UX2
53
DOUBLE PRECISION XPQ(-7:7),PD(0:MAXPROC)
54
DOUBLE PRECISION DSIGUU,R,RCONF
55
INTEGER LUN,ICONF,IFACT,NFACT
62
DOUBLE PRECISION ALPHAS2,REWGT,PDG2PDF
68
COMMON /SUBPROC/ IPSEL
69
C MINCFIG has this config number
70
INTEGER MINCFIG, MAXCFIG
71
COMMON/TO_CONFIGS/MINCFIG, MAXCFIG
72
INTEGER MAPCONFIG(0:LMAXCONFIGS), ICONFIG
73
COMMON/TO_MCONFIGS/MAPCONFIG, ICONFIG
74
C Keep track of whether cuts already calculated for this event
75
LOGICAL CUTSDONE,CUTSPASSED
76
COMMON/TO_CUTSDONE/CUTSDONE,CUTSPASSED
78
INTEGER SUBDIAG(MAXSPROC),IB(2)
79
COMMON/TO_SUB_DIAG/SUBDIAG,IB
93
C Set up process information from file symfact
96
OPEN(UNIT=LUN,FILE='../symfact.dat',STATUS='OLD',ERR=20)
98
READ(LUN,*,ERR=10,END=10) RCONF, IFACT
100
IF(ICONF.EQ.MAPCONFIG(MINCFIG))THEN
106
20 WRITE(*,*)'Error opening symfact.dat. No symmetry factor used.'
109
C Only run if IMODE is 0
110
IF(IMODE.NE.0.AND.IMODE.NE.4) RETURN
113
IF (ABS(LPP(IB(1))).GE.1) THEN
114
LP=SIGN(1,LPP(IB(1)))
115
U1=PDG2PDF(ABS(LPP(IB(1))),2*LP,XBK(IB(1)),DSQRT(Q2FACT(1)))
116
S1=PDG2PDF(ABS(LPP(IB(1))),3*LP,XBK(IB(1)),DSQRT(Q2FACT(1)))
118
IF (ABS(LPP(IB(2))).GE.1) THEN
119
LP=SIGN(1,LPP(IB(2)))
120
SX2=PDG2PDF(ABS(LPP(IB(2))),-3*LP,XBK(IB(2)),DSQRT(Q2FACT(2)))
121
UX2=PDG2PDF(ABS(LPP(IB(2))),-2*LP,XBK(IB(2)),DSQRT(Q2FACT(2)))
125
IPROC=IPROC+1 ! u u~ > u u~ u u~
127
PD(0)=PD(0)+DABS(PD(IPROC))
128
IPROC=IPROC+1 ! s s~ > u u~ u u~
130
PD(0)=PD(0)+DABS(PD(IPROC))
131
IPROC=IPROC+1 ! u u~ > s s~ s s~
133
PD(0)=PD(0)+DABS(PD(IPROC))
134
IPROC=IPROC+1 ! s s~ > s s~ s s~
136
PD(0)=PD(0)+DABS(PD(IPROC))
141
CALL SMATRIX1(PP,DSIGUU)
142
DSIGUU=DSIGUU*REWGT(PP)*NFACT
143
IF (DSIGUU.LT.1D199) THEN
144
C Select a flavor combination (need to do here for right sign)
147
DO WHILE (R.GT.0D0 .AND. IPSEL.LT.IPROC)
149
R=R-DABS(PD(IPSEL))/PD(0)
151
C Set sign of dsig based on sign of PDF and matrix element
152
DSIG1=DSIGN(PD(0)*CONV*DSIGUU,DSIGUU*PD(IPSEL))
154
WRITE(*,*) 'Error in matrix element'
158
IF(IMODE.EQ.0.AND.DABS(DSIG1).GT.0D0)THEN
159
C Call UNWGT to unweight and store events
160
CALL UNWGT(PP,DSIG1*WGT,1)