1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
DOUBLE PRECISION FUNCTION DSIG1(PP,WGT,IMODE)
C ****************************************************
C
C Generated by MadGraph 5 v. 2.0.0.beta3, 2013-02-14
C By the MadGraph Development Team
C Please visit us at https://launchpad.net/madgraph5
C
C Process: u u~ > g g WEIGHTED=2
C Process: s s~ > g g WEIGHTED=2
C
C RETURNS DIFFERENTIAL CROSS SECTION
C Input:
C pp 4 momentum of external particles
C wgt weight from Monte Carlo
C imode 0 run, 1 init, 2 reweight,
C 3 finalize, 4 only PDFs
C Output:
C Amplitude squared and summed
C ****************************************************
IMPLICIT NONE
C
C CONSTANTS
C
INCLUDE 'genps.inc'
INCLUDE 'nexternal.inc'
INCLUDE 'maxconfigs.inc'
INCLUDE 'maxamps.inc'
DOUBLE PRECISION CONV
PARAMETER (CONV=389379.66*1000) !CONV TO PICOBARNS
REAL*8 PI
PARAMETER (PI=3.1415926D0)
C
C ARGUMENTS
C
DOUBLE PRECISION PP(0:3,NEXTERNAL), WGT
INTEGER IMODE
C
C LOCAL VARIABLES
C
INTEGER I,ITYPE,LP,IPROC
DOUBLE PRECISION U1,S1
DOUBLE PRECISION SX2,UX2
DOUBLE PRECISION XPQ(-7:7),PD(0:MAXPROC)
DOUBLE PRECISION DSIGUU,R,RCONF
INTEGER LUN,ICONF,IFACT,NFACT
DATA NFACT/1/
SAVE NFACT
C
C EXTERNAL FUNCTIONS
C
LOGICAL PASSCUTS
DOUBLE PRECISION ALPHAS2,REWGT,PDG2PDF
INTEGER NEXTUNOPEN
C
C GLOBAL VARIABLES
C
INTEGER IPSEL
COMMON /SUBPROC/ IPSEL
C MINCFIG has this config number
INTEGER MINCFIG, MAXCFIG
COMMON/TO_CONFIGS/MINCFIG, MAXCFIG
INTEGER MAPCONFIG(0:LMAXCONFIGS), ICONFIG
COMMON/TO_MCONFIGS/MAPCONFIG, ICONFIG
C Keep track of whether cuts already calculated for this event
LOGICAL CUTSDONE,CUTSPASSED
COMMON/TO_CUTSDONE/CUTSDONE,CUTSPASSED
INTEGER SUBDIAG(MAXSPROC),IB(2)
COMMON/TO_SUB_DIAG/SUBDIAG,IB
INCLUDE 'coupl.inc'
INCLUDE 'run.inc'
C
C DATA
C
DATA U1,S1/2*1D0/
DATA SX2,UX2/2*1D0/
C ----------
C BEGIN CODE
C ----------
DSIG1=0D0
IF(IMODE.EQ.1)THEN
C Set up process information from file symfact
LUN=NEXTUNOPEN()
NFACT=1
OPEN(UNIT=LUN,FILE='../symfact.dat',STATUS='OLD',ERR=20)
DO WHILE(.TRUE.)
READ(LUN,*,ERR=10,END=10) RCONF, IFACT
ICONF=INT(RCONF)
IF(ICONF.EQ.MAPCONFIG(MINCFIG))THEN
NFACT=IFACT
ENDIF
ENDDO
10 CLOSE(LUN)
RETURN
20 WRITE(*,*)'Error opening symfact.dat. No symmetry factor used.'
RETURN
ENDIF
C Only run if IMODE is 0
IF(IMODE.NE.0.AND.IMODE.NE.4) RETURN
IF (ABS(LPP(IB(1))).GE.1) THEN
LP=SIGN(1,LPP(IB(1)))
U1=PDG2PDF(ABS(LPP(IB(1))),2*LP,XBK(IB(1)),DSQRT(Q2FACT(1)))
S1=PDG2PDF(ABS(LPP(IB(1))),3*LP,XBK(IB(1)),DSQRT(Q2FACT(1)))
ENDIF
IF (ABS(LPP(IB(2))).GE.1) THEN
LP=SIGN(1,LPP(IB(2)))
SX2=PDG2PDF(ABS(LPP(IB(2))),-3*LP,XBK(IB(2)),DSQRT(Q2FACT(2)))
UX2=PDG2PDF(ABS(LPP(IB(2))),-2*LP,XBK(IB(2)),DSQRT(Q2FACT(2)))
ENDIF
PD(0) = 0D0
IPROC = 0
IPROC=IPROC+1 ! u u~ > g g
PD(IPROC)=U1*UX2
PD(0)=PD(0)+DABS(PD(IPROC))
IPROC=IPROC+1 ! s s~ > g g
PD(IPROC)=S1*SX2
PD(0)=PD(0)+DABS(PD(IPROC))
IF (IMODE.EQ.4)THEN
DSIG1 = PD(0)
RETURN
ENDIF
CALL SMATRIX1(PP,DSIGUU)
DSIGUU=DSIGUU*REWGT(PP)*NFACT
IF (DSIGUU.LT.1D199) THEN
C Select a flavor combination (need to do here for right sign)
CALL RANMAR(R)
IPSEL=0
DO WHILE (R.GT.0D0 .AND. IPSEL.LT.IPROC)
IPSEL=IPSEL+1
R=R-DABS(PD(IPSEL))/PD(0)
ENDDO
C Set sign of dsig based on sign of PDF and matrix element
DSIG1=DSIGN(PD(0)*CONV*DSIGUU,DSIGUU*PD(IPSEL))
ELSE
WRITE(*,*) 'Error in matrix element'
DSIGUU=0D0
DSIG1=0D0
ENDIF
IF(IMODE.EQ.0.AND.DABS(DSIG1).GT.0D0)THEN
C Call UNWGT to unweight and store events
CALL UNWGT(PP,DSIG1*WGT,1)
ENDIF
END
|