~maddevelopers/mg5amcnlo/WWW5_caching

« back to all changes in this revision

Viewing changes to users/mardelcourt/PROC_242195/PROC_242195/SubProcesses/P0_gg_gg/matrix1.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
      SUBROUTINE SMATRIX1(P,ANS)
 
2
C     
 
3
C     Generated by MadGraph 5 v. 2.0.0.beta3, 2013-02-14
 
4
C     By the MadGraph Development Team
 
5
C     Please visit us at https://launchpad.net/madgraph5
 
6
C     
 
7
C     MadGraph for Madevent Version
 
8
C     
 
9
C     Returns amplitude squared summed/avg over colors
 
10
C     and helicities
 
11
C     for the point in phase space P(0:3,NEXTERNAL)
 
12
C     
 
13
C     Process: g g > g g WEIGHTED=2
 
14
C     
 
15
      IMPLICIT NONE
 
16
C     
 
17
C     CONSTANTS
 
18
C     
 
19
      INCLUDE 'genps.inc'
 
20
      INCLUDE 'maxconfigs.inc'
 
21
      INCLUDE 'nexternal.inc'
 
22
      INCLUDE 'maxamps.inc'
 
23
      INTEGER                 NCOMB
 
24
      PARAMETER (             NCOMB=16)
 
25
      INTEGER    NGRAPHS
 
26
      PARAMETER (NGRAPHS=6)
 
27
      INTEGER    NDIAGS
 
28
      PARAMETER (NDIAGS=4)
 
29
      INTEGER    THEL
 
30
      PARAMETER (THEL=2*NCOMB)
 
31
C     
 
32
C     ARGUMENTS 
 
33
C     
 
34
      REAL*8 P(0:3,NEXTERNAL),ANS
 
35
C     
 
36
C     LOCAL VARIABLES 
 
37
C     
 
38
      INTEGER NHEL(NEXTERNAL,NCOMB),NTRY(2)
 
39
      INTEGER ISHEL(2)
 
40
      REAL*8 T,MATRIX1
 
41
      REAL*8 R,SUMHEL,TS(NCOMB)
 
42
      INTEGER I,IDEN
 
43
      INTEGER JC(NEXTERNAL),II
 
44
      LOGICAL GOODHEL(NCOMB,2)
 
45
      REAL*8 HWGT, XTOT, XTRY, XREJ, XR, YFRAC(0:NCOMB)
 
46
      INTEGER NGOOD(2), IGOOD(NCOMB,2)
 
47
      INTEGER JHEL(2), J, JJ
 
48
C     
 
49
C     GLOBAL VARIABLES
 
50
C     
 
51
      DOUBLE PRECISION AMP2(MAXAMPS), JAMP2(0:MAXFLOW)
 
52
      COMMON/TO_AMPS/  AMP2,       JAMP2
 
53
 
 
54
      CHARACTER*101         HEL_BUFF
 
55
      COMMON/TO_HELICITY/  HEL_BUFF
 
56
 
 
57
      INTEGER IMIRROR
 
58
      COMMON/TO_MIRROR/ IMIRROR
 
59
 
 
60
      REAL*8 POL(2)
 
61
      COMMON/TO_POLARIZATION/ POL
 
62
 
 
63
      INTEGER          ISUM_HEL
 
64
      LOGICAL                    MULTI_CHANNEL
 
65
      COMMON/TO_MATRIX/ISUM_HEL, MULTI_CHANNEL
 
66
      INTEGER MAPCONFIG(0:LMAXCONFIGS), ICONFIG
 
67
      COMMON/TO_MCONFIGS/MAPCONFIG, ICONFIG
 
68
      INTEGER SUBDIAG(MAXSPROC),IB(2)
 
69
      COMMON/TO_SUB_DIAG/SUBDIAG,IB
 
70
      DATA XTRY, XREJ /0,0/
 
71
      DATA NTRY /0,0/
 
72
      DATA NGOOD /0,0/
 
73
      DATA ISHEL/0,0/
 
74
      SAVE YFRAC, IGOOD, JHEL
 
75
      DATA GOODHEL/THEL*.FALSE./
 
76
      DATA (NHEL(I,   1),I=1,4) /-1,-1,-1,-1/
 
77
      DATA (NHEL(I,   2),I=1,4) /-1,-1,-1, 1/
 
78
      DATA (NHEL(I,   3),I=1,4) /-1,-1, 1,-1/
 
79
      DATA (NHEL(I,   4),I=1,4) /-1,-1, 1, 1/
 
80
      DATA (NHEL(I,   5),I=1,4) /-1, 1,-1,-1/
 
81
      DATA (NHEL(I,   6),I=1,4) /-1, 1,-1, 1/
 
82
      DATA (NHEL(I,   7),I=1,4) /-1, 1, 1,-1/
 
83
      DATA (NHEL(I,   8),I=1,4) /-1, 1, 1, 1/
 
84
      DATA (NHEL(I,   9),I=1,4) / 1,-1,-1,-1/
 
85
      DATA (NHEL(I,  10),I=1,4) / 1,-1,-1, 1/
 
86
      DATA (NHEL(I,  11),I=1,4) / 1,-1, 1,-1/
 
87
      DATA (NHEL(I,  12),I=1,4) / 1,-1, 1, 1/
 
88
      DATA (NHEL(I,  13),I=1,4) / 1, 1,-1,-1/
 
89
      DATA (NHEL(I,  14),I=1,4) / 1, 1,-1, 1/
 
90
      DATA (NHEL(I,  15),I=1,4) / 1, 1, 1,-1/
 
91
      DATA (NHEL(I,  16),I=1,4) / 1, 1, 1, 1/
 
92
      DATA IDEN/512/
 
93
C     ----------
 
94
C     BEGIN CODE
 
95
C     ----------
 
96
      NTRY(IMIRROR)=NTRY(IMIRROR)+1
 
97
      DO I=1,NEXTERNAL
 
98
        JC(I) = +1
 
99
      ENDDO
 
100
 
 
101
      IF (MULTI_CHANNEL) THEN
 
102
        DO I=1,NDIAGS
 
103
          AMP2(I)=0D0
 
104
        ENDDO
 
105
        JAMP2(0)=6
 
106
        DO I=1,INT(JAMP2(0))
 
107
          JAMP2(I)=0D0
 
108
        ENDDO
 
109
      ENDIF
 
110
      ANS = 0D0
 
111
      WRITE(HEL_BUFF,'(20I5)') (0,I=1,NEXTERNAL)
 
112
      DO I=1,NCOMB
 
113
        TS(I)=0D0
 
114
      ENDDO
 
115
      IF (ISHEL(IMIRROR) .EQ. 0 .OR. NTRY(IMIRROR) .LE. MAXTRIES) THEN
 
116
        DO I=1,NCOMB
 
117
          IF (GOODHEL(I,IMIRROR) .OR. NTRY(IMIRROR).LE.MAXTRIES) THEN
 
118
            T=MATRIX1(P ,NHEL(1,I),JC(1))
 
119
            DO JJ=1,NINCOMING
 
120
              IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0
 
121
     $         ,POL(JJ)))) THEN
 
122
                T=T*ABS(POL(JJ))
 
123
              ELSE IF(POL(JJ).NE.1D0)THEN
 
124
                T=T*(2D0-ABS(POL(JJ)))
 
125
              ENDIF
 
126
            ENDDO
 
127
            ANS=ANS+DABS(T)
 
128
            TS(I)=T
 
129
          ENDIF
 
130
        ENDDO
 
131
        JHEL(IMIRROR) = 1
 
132
        IF(NTRY(IMIRROR).LE.MAXTRIES)THEN
 
133
          DO I=1,NCOMB
 
134
            IF (.NOT.GOODHEL(I,IMIRROR) .AND. (DABS(TS(I)).GT.ANS
 
135
     $       *LIMHEL/NCOMB)) THEN
 
136
              GOODHEL(I,IMIRROR)=.TRUE.
 
137
              NGOOD(IMIRROR) = NGOOD(IMIRROR) +1
 
138
              IGOOD(NGOOD(IMIRROR),IMIRROR) = I
 
139
              PRINT *,'Added good helicity ',I,TS(I)*NCOMB/ANS
 
140
     $         ,' in event ',NTRY(IMIRROR)
 
141
            ENDIF
 
142
          ENDDO
 
143
        ENDIF
 
144
        IF(NTRY(IMIRROR).EQ.MAXTRIES)THEN
 
145
          ISHEL(IMIRROR)=MIN(ISUM_HEL,NGOOD(IMIRROR))
 
146
        ENDIF
 
147
      ELSE  !LOOP OVER GOOD HELICITIES
 
148
        DO J=1,ISHEL(IMIRROR)
 
149
          JHEL(IMIRROR)=JHEL(IMIRROR)+1
 
150
          IF (JHEL(IMIRROR) .GT. NGOOD(IMIRROR)) JHEL(IMIRROR)=1
 
151
          HWGT = REAL(NGOOD(IMIRROR))/REAL(ISHEL(IMIRROR))
 
152
          I = IGOOD(JHEL(IMIRROR),IMIRROR)
 
153
          T=MATRIX1(P ,NHEL(1,I),JC(1))
 
154
          DO JJ=1,NINCOMING
 
155
            IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ)))
 
156
     $       ) THEN
 
157
              T=T*ABS(POL(JJ))
 
158
            ELSE IF(POL(JJ).NE.1D0)THEN
 
159
              T=T*(2D0-ABS(POL(JJ)))
 
160
            ENDIF
 
161
          ENDDO
 
162
          ANS=ANS+DABS(T)*HWGT
 
163
          TS(I)=T*HWGT
 
164
        ENDDO
 
165
        IF (ISHEL(IMIRROR) .EQ. 1) THEN
 
166
          WRITE(HEL_BUFF,'(20i5)')(NHEL(II,I),II=1,NEXTERNAL)
 
167
C         Set right sign for ANS, based on sign of chosen helicity
 
168
          ANS=DSIGN(ANS,TS(I))
 
169
        ENDIF
 
170
      ENDIF
 
171
      IF (ISHEL(IMIRROR) .NE. 1) THEN
 
172
        CALL RANMAR(R)
 
173
        SUMHEL=0D0
 
174
        DO I=1,NCOMB
 
175
          SUMHEL=SUMHEL+DABS(TS(I))/ANS
 
176
          IF(R.LT.SUMHEL)THEN
 
177
            WRITE(HEL_BUFF,'(20i5)')(NHEL(II,I),II=1,NEXTERNAL)
 
178
C           Set right sign for ANS, based on sign of chosen helicity
 
179
            ANS=DSIGN(ANS,TS(I))
 
180
            GOTO 10
 
181
          ENDIF
 
182
        ENDDO
 
183
 10     CONTINUE
 
184
      ENDIF
 
185
      IF (MULTI_CHANNEL) THEN
 
186
        XTOT=0D0
 
187
        DO I=1,NDIAGS
 
188
          XTOT=XTOT+AMP2(I)
 
189
        ENDDO
 
190
        IF (XTOT.NE.0D0) THEN
 
191
          ANS=ANS*AMP2(SUBDIAG(1))/XTOT
 
192
        ELSE
 
193
          ANS=0D0
 
194
        ENDIF
 
195
      ENDIF
 
196
      ANS=ANS/DBLE(IDEN)
 
197
      END
 
198
 
 
199
 
 
200
      REAL*8 FUNCTION MATRIX1(P,NHEL,IC)
 
201
C     
 
202
C     Generated by MadGraph 5 v. 2.0.0.beta3, 2013-02-14
 
203
C     By the MadGraph Development Team
 
204
C     Please visit us at https://launchpad.net/madgraph5
 
205
C     
 
206
C     Returns amplitude squared summed/avg over colors
 
207
C     for the point with external lines W(0:6,NEXTERNAL)
 
208
C     
 
209
C     Process: g g > g g WEIGHTED=2
 
210
C     
 
211
      IMPLICIT NONE
 
212
C     
 
213
C     CONSTANTS
 
214
C     
 
215
      INTEGER    NGRAPHS
 
216
      PARAMETER (NGRAPHS=6)
 
217
      INCLUDE 'genps.inc'
 
218
      INCLUDE 'nexternal.inc'
 
219
      INCLUDE 'maxamps.inc'
 
220
      INTEGER    NWAVEFUNCS,     NCOLOR
 
221
      PARAMETER (NWAVEFUNCS=5, NCOLOR=6)
 
222
      REAL*8     ZERO
 
223
      PARAMETER (ZERO=0D0)
 
224
      COMPLEX*16 IMAG1
 
225
      PARAMETER (IMAG1=(0D0,1D0))
 
226
C     
 
227
C     ARGUMENTS 
 
228
C     
 
229
      REAL*8 P(0:3,NEXTERNAL)
 
230
      INTEGER NHEL(NEXTERNAL), IC(NEXTERNAL)
 
231
C     
 
232
C     LOCAL VARIABLES 
 
233
C     
 
234
      INTEGER I,J
 
235
      COMPLEX*16 ZTEMP
 
236
      REAL*8 DENOM(NCOLOR), CF(NCOLOR,NCOLOR)
 
237
      COMPLEX*16 AMP(NGRAPHS), JAMP(NCOLOR)
 
238
      COMPLEX*16 W(6,NWAVEFUNCS)
 
239
C     Needed for v4 models
 
240
      COMPLEX*16 DUM0,DUM1
 
241
      DATA DUM0, DUM1/(0D0, 0D0), (1D0, 0D0)/
 
242
C     
 
243
C     GLOBAL VARIABLES
 
244
C     
 
245
      DOUBLE PRECISION AMP2(MAXAMPS), JAMP2(0:MAXFLOW)
 
246
      COMMON/TO_AMPS/  AMP2,       JAMP2
 
247
      INCLUDE 'coupl.inc'
 
248
C     
 
249
C     COLOR DATA
 
250
C     
 
251
      DATA DENOM(1)/6/
 
252
      DATA (CF(I,  1),I=  1,  6) /   19,   -2,   -2,   -2,   -2,    4/
 
253
C     1 Tr(1,2,3,4)
 
254
      DATA DENOM(2)/6/
 
255
      DATA (CF(I,  2),I=  1,  6) /   -2,   19,   -2,    4,   -2,   -2/
 
256
C     1 Tr(1,2,4,3)
 
257
      DATA DENOM(3)/6/
 
258
      DATA (CF(I,  3),I=  1,  6) /   -2,   -2,   19,   -2,    4,   -2/
 
259
C     1 Tr(1,3,2,4)
 
260
      DATA DENOM(4)/6/
 
261
      DATA (CF(I,  4),I=  1,  6) /   -2,    4,   -2,   19,   -2,   -2/
 
262
C     1 Tr(1,3,4,2)
 
263
      DATA DENOM(5)/6/
 
264
      DATA (CF(I,  5),I=  1,  6) /   -2,   -2,    4,   -2,   19,   -2/
 
265
C     1 Tr(1,4,2,3)
 
266
      DATA DENOM(6)/6/
 
267
      DATA (CF(I,  6),I=  1,  6) /    4,   -2,   -2,   -2,   -2,   19/
 
268
C     1 Tr(1,4,3,2)
 
269
C     ----------
 
270
C     BEGIN CODE
 
271
C     ----------
 
272
      CALL VXXXXX(P(0,1),ZERO,NHEL(1),-1*IC(1),W(1,1))
 
273
      CALL VXXXXX(P(0,2),ZERO,NHEL(2),-1*IC(2),W(1,2))
 
274
      CALL VXXXXX(P(0,3),ZERO,NHEL(3),+1*IC(3),W(1,3))
 
275
      CALL VXXXXX(P(0,4),ZERO,NHEL(4),+1*IC(4),W(1,4))
 
276
C     Amplitude(s) for diagram number 1
 
277
      CALL VVVV1_0(W(1,1),W(1,2),W(1,3),W(1,4),GC_12,AMP(1))
 
278
      CALL VVVV3_0(W(1,1),W(1,2),W(1,3),W(1,4),GC_12,AMP(2))
 
279
      CALL VVVV4_0(W(1,1),W(1,2),W(1,3),W(1,4),GC_12,AMP(3))
 
280
      CALL VVV1_1(W(1,1),W(1,2),GC_10,ZERO,ZERO,W(1,5))
 
281
C     Amplitude(s) for diagram number 2
 
282
      CALL VVV1_0(W(1,3),W(1,4),W(1,5),GC_10,AMP(4))
 
283
      CALL VVV1_1(W(1,1),W(1,3),GC_10,ZERO,ZERO,W(1,5))
 
284
C     Amplitude(s) for diagram number 3
 
285
      CALL VVV1_0(W(1,2),W(1,4),W(1,5),GC_10,AMP(5))
 
286
      CALL VVV1_1(W(1,1),W(1,4),GC_10,ZERO,ZERO,W(1,5))
 
287
C     Amplitude(s) for diagram number 4
 
288
      CALL VVV1_0(W(1,2),W(1,3),W(1,5),GC_10,AMP(6))
 
289
      JAMP(1)=+2D0*(+AMP(3)-AMP(1)-AMP(4)+AMP(6))
 
290
      JAMP(2)=+2D0*(+AMP(1)+AMP(2)+AMP(4)+AMP(5))
 
291
      JAMP(3)=+2D0*(-AMP(3)-AMP(2)-AMP(5)-AMP(6))
 
292
      JAMP(4)=+2D0*(+AMP(1)+AMP(2)+AMP(4)+AMP(5))
 
293
      JAMP(5)=+2D0*(-AMP(3)-AMP(2)-AMP(5)-AMP(6))
 
294
      JAMP(6)=+2D0*(+AMP(3)-AMP(1)-AMP(4)+AMP(6))
 
295
      MATRIX1 = 0.D0
 
296
      DO I = 1, NCOLOR
 
297
        ZTEMP = (0.D0,0.D0)
 
298
        DO J = 1, NCOLOR
 
299
          ZTEMP = ZTEMP + CF(J,I)*JAMP(J)
 
300
        ENDDO
 
301
        MATRIX1=MATRIX1+ZTEMP*DCONJG(JAMP(I))/DENOM(I)
 
302
      ENDDO
 
303
      AMP2(2)=AMP2(2)+AMP(4)*DCONJG(AMP(4))
 
304
      AMP2(3)=AMP2(3)+AMP(5)*DCONJG(AMP(5))
 
305
      AMP2(4)=AMP2(4)+AMP(6)*DCONJG(AMP(6))
 
306
      DO I = 1, NCOLOR
 
307
        JAMP2(I)=JAMP2(I)+JAMP(I)*DCONJG(JAMP(I))
 
308
      ENDDO
 
309
 
 
310
      END
 
311