~maddevelopers/mg5amcnlo/WWW5_caching

« back to all changes in this revision

Viewing changes to users/mardelcourt/PROC_129738/PROC_129738/SubProcesses/P0_qq_gg_g_qq_g_qq/auto_dsig1.f

  • Committer: John Doe
  • Date: 2013-03-25 20:27:02 UTC
  • Revision ID: john.doe@gmail.com-20130325202702-5sk3t1r8h33ca4p4
first clean version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
      DOUBLE PRECISION FUNCTION DSIG1(PP,WGT,IMODE)
 
2
C     ****************************************************
 
3
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
 
7
C     
 
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
 
20
C     
 
21
C     RETURNS DIFFERENTIAL CROSS SECTION
 
22
C     Input:
 
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
 
27
C     Output:
 
28
C     Amplitude squared and summed
 
29
C     ****************************************************
 
30
      IMPLICIT NONE
 
31
C     
 
32
C     CONSTANTS
 
33
C     
 
34
      INCLUDE 'genps.inc'
 
35
      INCLUDE 'nexternal.inc'
 
36
      INCLUDE 'maxconfigs.inc'
 
37
      INCLUDE 'maxamps.inc'
 
38
      DOUBLE PRECISION       CONV
 
39
      PARAMETER (CONV=389379.66*1000)  !CONV TO PICOBARNS
 
40
      REAL*8     PI
 
41
      PARAMETER (PI=3.1415926D0)
 
42
C     
 
43
C     ARGUMENTS 
 
44
C     
 
45
      DOUBLE PRECISION PP(0:3,NEXTERNAL), WGT
 
46
      INTEGER IMODE
 
47
C     
 
48
C     LOCAL VARIABLES 
 
49
C     
 
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
 
56
      DATA NFACT/1/
 
57
      SAVE NFACT
 
58
C     
 
59
C     EXTERNAL FUNCTIONS
 
60
C     
 
61
      LOGICAL PASSCUTS
 
62
      DOUBLE PRECISION ALPHAS2,REWGT,PDG2PDF
 
63
      INTEGER NEXTUNOPEN
 
64
C     
 
65
C     GLOBAL VARIABLES
 
66
C     
 
67
      INTEGER          IPSEL
 
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
 
77
 
 
78
      INTEGER SUBDIAG(MAXSPROC),IB(2)
 
79
      COMMON/TO_SUB_DIAG/SUBDIAG,IB
 
80
      INCLUDE 'coupl.inc'
 
81
      INCLUDE 'run.inc'
 
82
C     
 
83
C     DATA
 
84
C     
 
85
      DATA U1,S1/2*1D0/
 
86
      DATA SX2,UX2/2*1D0/
 
87
C     ----------
 
88
C     BEGIN CODE
 
89
C     ----------
 
90
      DSIG1=0D0
 
91
 
 
92
      IF(IMODE.EQ.1)THEN
 
93
C       Set up process information from file symfact
 
94
        LUN=NEXTUNOPEN()
 
95
        NFACT=1
 
96
        OPEN(UNIT=LUN,FILE='../symfact.dat',STATUS='OLD',ERR=20)
 
97
        DO WHILE(.TRUE.)
 
98
          READ(LUN,*,ERR=10,END=10) RCONF, IFACT
 
99
          ICONF=INT(RCONF)
 
100
          IF(ICONF.EQ.MAPCONFIG(MINCFIG))THEN
 
101
            NFACT=IFACT
 
102
          ENDIF
 
103
        ENDDO
 
104
 10     CLOSE(LUN)
 
105
        RETURN
 
106
 20     WRITE(*,*)'Error opening symfact.dat. No symmetry factor used.'
 
107
        RETURN
 
108
      ENDIF
 
109
C     Only run if IMODE is 0
 
110
      IF(IMODE.NE.0.AND.IMODE.NE.4) RETURN
 
111
 
 
112
 
 
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)))
 
117
      ENDIF
 
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)))
 
122
      ENDIF
 
123
      PD(0) = 0D0
 
124
      IPROC = 0
 
125
      IPROC=IPROC+1  ! u u~ > u u~ u u~
 
126
      PD(IPROC)=U1*UX2
 
127
      PD(0)=PD(0)+DABS(PD(IPROC))
 
128
      IPROC=IPROC+1  ! s s~ > u u~ u u~
 
129
      PD(IPROC)=S1*SX2
 
130
      PD(0)=PD(0)+DABS(PD(IPROC))
 
131
      IPROC=IPROC+1  ! u u~ > s s~ s s~
 
132
      PD(IPROC)=U1*UX2
 
133
      PD(0)=PD(0)+DABS(PD(IPROC))
 
134
      IPROC=IPROC+1  ! s s~ > s s~ s s~
 
135
      PD(IPROC)=S1*SX2
 
136
      PD(0)=PD(0)+DABS(PD(IPROC))
 
137
      IF (IMODE.EQ.4)THEN
 
138
        DSIG1 = PD(0)
 
139
        RETURN
 
140
      ENDIF
 
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)
 
145
        CALL RANMAR(R)
 
146
        IPSEL=0
 
147
        DO WHILE (R.GT.0D0 .AND. IPSEL.LT.IPROC)
 
148
          IPSEL=IPSEL+1
 
149
          R=R-DABS(PD(IPSEL))/PD(0)
 
150
        ENDDO
 
151
C       Set sign of dsig based on sign of PDF and matrix element
 
152
        DSIG1=DSIGN(PD(0)*CONV*DSIGUU,DSIGUU*PD(IPSEL))
 
153
      ELSE
 
154
        WRITE(*,*) 'Error in matrix element'
 
155
        DSIGUU=0D0
 
156
        DSIG1=0D0
 
157
      ENDIF
 
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)
 
161
      ENDIF
 
162
 
 
163
      END
 
164