~maddevelopers/mg5amcnlo/WWW_tg

« back to all changes in this revision

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