~maddevelopers/mg5amcnlo/WWW5_caching

« back to all changes in this revision

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