~madteam/mg5amcnlo/series2.0

« back to all changes in this revision

Viewing changes to madgraph/iolibs/template_files/matrix_standalone_matchbox_splitOrders_v4.inc

merged with 2.3 rev286

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
      SUBROUTINE %(proc_prefix)sSMATRIX(P,ANS_SUMMED)
 
2
C
 
3
C     Simple routine wrapper to provide the same interface for
 
4
C     backward compatibility for usage without split orders.
 
5
C
 
6
C  
 
7
C CONSTANTS
 
8
 
9
      INTEGER    NEXTERNAL
 
10
      PARAMETER (NEXTERNAL=%(nexternal)d)
 
11
      INTEGER NSQAMPSO
 
12
      PARAMETER (NSQAMPSO=%(nSqAmpSplitOrders)d)
 
13
C  
 
14
C ARGUMENTS 
 
15
 
16
      REAL*8 P(0:3,NEXTERNAL), ANS_SUMMED
 
17
C
 
18
C VARIABLES
 
19
C
 
20
      INTEGER I
 
21
          REAL*8 ANS(0:NSQAMPSO)
 
22
C
 
23
C BEGIN CODE
 
24
C
 
25
          CALL %(proc_prefix)sSMATRIX_SPLITORDERS(P,ANS)
 
26
          ANS_SUMMED=ANS(0)
 
27
 
 
28
          END
 
29
 
 
30
      SUBROUTINE %(proc_prefix)sSMATRIXHEL(P,HEL,ANS)
 
31
      IMPLICIT NONE
 
32
C
 
33
C CONSTANT
 
34
C
 
35
      INTEGER    NEXTERNAL
 
36
      PARAMETER (NEXTERNAL=%(nexternal)d)
 
37
      INTEGER                 NCOMB         
 
38
      PARAMETER (             NCOMB=%(ncomb)d)
 
39
C  
 
40
C ARGUMENTS 
 
41
C  
 
42
      REAL*8 P(0:3,NEXTERNAL),ANS
 
43
          INTEGER HEL
 
44
C
 
45
C GLOBAL VARIABLES
 
46
C
 
47
      INTEGER USERHEL
 
48
          COMMON/%(proc_prefix)sHELUSERCHOICE/USERHEL
 
49
C ----------
 
50
C BEGIN CODE
 
51
C ----------
 
52
      USERHEL=HEL
 
53
          CALL %(proc_prefix)sSMATRIX(P,ANS)
 
54
          USERHEL=-1
 
55
 
 
56
          END
 
57
 
 
58
      SUBROUTINE %(proc_prefix)sSMATRIX_SPLITORDERS(P,ANS)
 
59
C  
 
60
%(info_lines)s
 
61
 
62
C MadGraph StandAlone Version
 
63
 
64
C Returns amplitude squared summed/avg over colors
 
65
c and helicities
 
66
c for the point in phase space P(0:3,NEXTERNAL)
 
67
C  
 
68
%(process_lines)s
 
69
C  
 
70
      IMPLICIT NONE
 
71
C  
 
72
C CONSTANTS
 
73
C  
 
74
      INTEGER    NEXTERNAL
 
75
      PARAMETER (NEXTERNAL=%(nexternal)d)
 
76
      INTEGER                 NCOMB         
 
77
      PARAMETER (             NCOMB=%(ncomb)d)
 
78
      INTEGER NSQAMPSO
 
79
      PARAMETER (NSQAMPSO=%(nSqAmpSplitOrders)d)
 
80
          INTEGER HELAVGFACTOR
 
81
          PARAMETER (HELAVGFACTOR=%(hel_avg_factor)d)
 
82
          LOGICAL CHOSEN_SO_CONFIGS(NSQAMPSO)
 
83
          DATA CHOSEN_SO_CONFIGS/%(chosen_so_configs)s/
 
84
          COMMON/%(proc_prefix)sCHOSEN_BORN_SQSO/CHOSEN_SO_CONFIGS
 
85
C  
 
86
C ARGUMENTS 
 
87
C  
 
88
      REAL*8 P(0:3,NEXTERNAL),ANS(0:NSQAMPSO)
 
89
C  
 
90
C LOCAL VARIABLES 
 
91
C  
 
92
      INTEGER NHEL(NEXTERNAL,NCOMB),NTRY
 
93
      REAL*8 T(NSQAMPSO), BUFF
 
94
      INTEGER IHEL,IDEN, I
 
95
      INTEGER JC(NEXTERNAL)
 
96
      LOGICAL GOODHEL(NCOMB)
 
97
      DATA NTRY/0/
 
98
      DATA GOODHEL/NCOMB*.FALSE./
 
99
%(helicity_lines)s
 
100
%(den_factor_line)s
 
101
C
 
102
C GLOBAL VARIABLES
 
103
C
 
104
      INTEGER USERHEL
 
105
          DATA USERHEL/-1/                
 
106
          COMMON/%(proc_prefix)sHELUSERCHOICE/USERHEL
 
107
 
 
108
C ----------
 
109
C BEGIN CODE
 
110
C ----------
 
111
      NTRY=NTRY+1
 
112
      DO IHEL=1,NEXTERNAL
 
113
         JC(IHEL) = +1
 
114
      ENDDO
 
115
          DO I=1,NSQAMPSO
 
116
        ANS(I) = 0D0      
 
117
          ENDDO
 
118
      DO IHEL=1,NCOMB
 
119
             IF (USERHEL.EQ.-1.OR.USERHEL.EQ.IHEL) THEN
 
120
           IF (GOODHEL(IHEL) .OR. NTRY .LT. 2) THEN
 
121
              CALL %(proc_prefix)sMATRIX(P ,NHEL(1,IHEL),JC(1), T)
 
122
                      BUFF=0D0
 
123
                          DO I=1,NSQAMPSO                       
 
124
                ANS(I)=ANS(I)+T(I)
 
125
                            BUFF=BUFF+T(I)
 
126
                      ENDDO
 
127
              IF (BUFF .NE. 0D0 .AND. .NOT.    GOODHEL(IHEL)) THEN
 
128
                GOODHEL(IHEL)=.TRUE.
 
129
              ENDIF
 
130
            ENDIF
 
131
                  ENDIF
 
132
       ENDDO
 
133
          ANS(0)=0.0d0
 
134
          DO I=1,NSQAMPSO
 
135
        ANS(I)=ANS(I)/DBLE(IDEN)
 
136
                IF (CHOSEN_SO_CONFIGS(I)) THEN
 
137
                  ANS(0)=ANS(0)+ANS(I)
 
138
                ENDIF
 
139
          ENDDO
 
140
          IF(USERHEL.NE.-1) THEN
 
141
                ANS(0)=ANS(0)*HELAVGFACTOR
 
142
                DO I=1,NSQAMPSO
 
143
          ANS(I)=ANS(I)*HELAVGFACTOR
 
144
                ENDDO
 
145
          ENDIF
 
146
      END
 
147
 
 
148
      SUBROUTINE %(proc_prefix)sSMATRIXHEL_SPLITORDERS(P,HEL,ANS)
 
149
      IMPLICIT NONE
 
150
C
 
151
C CONSTANT
 
152
C
 
153
      INTEGER    NEXTERNAL
 
154
      PARAMETER (NEXTERNAL=%(nexternal)d)
 
155
      INTEGER                 NCOMB         
 
156
      PARAMETER (             NCOMB=%(ncomb)d)
 
157
      INTEGER NSQAMPSO
 
158
      PARAMETER (NSQAMPSO=%(nSqAmpSplitOrders)d)
 
159
C  
 
160
C ARGUMENTS 
 
161
C  
 
162
      REAL*8 P(0:3,NEXTERNAL),ANS(0:NSQAMPSO)
 
163
          INTEGER HEL
 
164
C
 
165
C GLOBAL VARIABLES
 
166
C
 
167
      INTEGER USERHEL
 
168
          COMMON/%(proc_prefix)sHELUSERCHOICE/USERHEL
 
169
C ----------
 
170
C BEGIN CODE
 
171
C ----------
 
172
      USERHEL=HEL
 
173
          CALL %(proc_prefix)sSMATRIX_SPLITORDERS(P,ANS)
 
174
          USERHEL=-1
 
175
 
 
176
          END
 
177
 
 
178
      SUBROUTINE %(proc_prefix)sMATRIX(P,NHEL,IC,RES)
 
179
C  
 
180
%(info_lines)s
 
181
C
 
182
C Returns amplitude squared summed/avg over colors
 
183
c for the point with external lines W(0:6,NEXTERNAL)
 
184
C  
 
185
%(process_lines)s
 
186
C  
 
187
      IMPLICIT NONE
 
188
C  
 
189
C CONSTANTS
 
190
C  
 
191
      INTEGER    NGRAPHS
 
192
      PARAMETER (NGRAPHS=%(ngraphs)d) 
 
193
      INTEGER    NEXTERNAL
 
194
      PARAMETER (NEXTERNAL=%(nexternal)d)
 
195
      INTEGER    NWAVEFUNCS, NCOLOR
 
196
      PARAMETER (NWAVEFUNCS=%(nwavefuncs)d, NCOLOR=%(ncolor)d) 
 
197
      INTEGER NAMPSO, NSQAMPSO
 
198
      PARAMETER (NAMPSO=%(nAmpSplitOrders)d, NSQAMPSO=%(nSqAmpSplitOrders)d)
 
199
      REAL*8     ZERO
 
200
      PARAMETER (ZERO=0D0)
 
201
      COMPLEX*16 IMAG1
 
202
      PARAMETER (IMAG1=(0D0,1D0))
 
203
C  
 
204
C ARGUMENTS 
 
205
C  
 
206
      REAL*8 P(0:3,NEXTERNAL)
 
207
      INTEGER NHEL(NEXTERNAL), IC(NEXTERNAL)
 
208
          REAL*8 RES(NSQAMPSO)
 
209
C  
 
210
C LOCAL VARIABLES 
 
211
C  
 
212
      INTEGER I,J,M,N
 
213
      COMPLEX*16 ZTEMP
 
214
      REAL*8 DENOM(NCOLOR), CF(NCOLOR,NCOLOR)
 
215
      COMPLEX*16 AMP(NGRAPHS)
 
216
      COMPLEX*16 JAMP(NCOLOR,NAMPSO), LNJAMP(NCOLOR,NAMPSO)
 
217
      COMMON/%(proc_prefix)sJAMP/JAMP,LNJAMP  
 
218
      COMPLEX*16 W(18,NWAVEFUNCS)
 
219
      COMPLEX*16 DUM0,DUM1
 
220
      DATA DUM0, DUM1/(0d0, 0d0), (1d0, 0d0)/
 
221
C
 
222
C FUNCTION
 
223
C
 
224
      INTEGER %(proc_prefix)sSQSOINDEX
 
225
C  
 
226
C GLOBAL VARIABLES
 
227
C  
 
228
      include 'coupl.inc'
 
229
C  
 
230
C COLOR DATA
 
231
C  
 
232
%(color_data_lines)s
 
233
C ----------
 
234
C BEGIN CODE
 
235
C ----------
 
236
%(helas_calls)s
 
237
%(jamp_lines)s
 
238
 
 
239
      RES = 0.D0 
 
240
          DO M = 1, NAMPSO
 
241
        DO I = 1, NCOLOR
 
242
          ZTEMP = (0.D0,0.D0)
 
243
          DO J = 1, NCOLOR
 
244
              ZTEMP = ZTEMP + CF(J,I)*JAMP(J,M)
 
245
          ENDDO
 
246
                  DO N = 1, NAMPSO
 
247
            RES(%(proc_prefix)sSQSOINDEX(M,N)) = RES(%(proc_prefix)sSQSOINDEX(M,N)) + ZTEMP*DCONJG(JAMP(I,N))/DENOM(I)
 
248
                  ENDDO
 
249
        ENDDO
 
250
          ENDDO
 
251
 
 
252
      END
 
253
 
 
254
      
 
255
 
 
256
      
 
257
      
 
258
      
 
259
      
 
260
      
 
261
      
 
262
      
 
263
      
 
264
      
 
265
      
 
266
      
 
267
      
 
268
      
 
269
      
 
270
      
 
271
      
 
272
      
 
273
      
 
274
      
 
275
      
 
276
      
 
277
      
 
278
      
 
279
      
 
280
      
 
281
      
 
282
      
 
283
      
 
284
 
 
285
       SUBROUTINE %(proc_prefix)sBORN(P,NHEL)
 
286
C  
 
287
%(info_lines)s
 
288
C
 
289
C Returns amplitude squared summed/avg over colors
 
290
c for the point with external lines W(0:6,NEXTERNAL)
 
291
C  
 
292
%(process_lines)s
 
293
C  
 
294
      IMPLICIT NONE
 
295
C  
 
296
C CONSTANTS
 
297
C  
 
298
 
 
299
      INTEGER    NGRAPHS
 
300
      PARAMETER (NGRAPHS=%(ngraphs)d) 
 
301
      INTEGER    NEXTERNAL
 
302
      PARAMETER (NEXTERNAL=%(nexternal)d)
 
303
      INTEGER    NWAVEFUNCS, NCOLOR
 
304
      PARAMETER (NWAVEFUNCS=%(nwavefuncs)d, NCOLOR=%(ncolor)d) 
 
305
      INTEGER NAMPSO, NSQAMPSO
 
306
      PARAMETER (NAMPSO=%(nAmpSplitOrders)d, NSQAMPSO=%(nSqAmpSplitOrders)d)
 
307
      REAL*8     ZERO
 
308
      PARAMETER (ZERO=0D0)
 
309
      COMPLEX*16 IMAG1
 
310
      PARAMETER (IMAG1=(0D0,1D0))
 
311
 
 
312
C  
 
313
C ARGUMENTS 
 
314
C  
 
315
      REAL*8 P(0:3,NEXTERNAL)
 
316
      INTEGER NHEL(NEXTERNAL), IC(NEXTERNAL)
 
317
C  
 
318
C LOCAL VARIABLES 
 
319
C  
 
320
      INTEGER I,J,M,N
 
321
      COMPLEX*16 ZTEMP
 
322
      REAL*8 DENOM(NCOLOR), CF(NCOLOR,NCOLOR)
 
323
      COMPLEX*16 AMP(NGRAPHS)
 
324
      COMPLEX*16 JAMP(NCOLOR,NAMPSO), LNJAMP(NCOLOR,NAMPSO)
 
325
      COMMON/%(proc_prefix)sJAMP/JAMP,LNJAMP
 
326
      COMPLEX*16 W(18,NWAVEFUNCS)
 
327
      COMPLEX*16 DUM0,DUM1
 
328
      DATA DUM0, DUM1/(0d0, 0d0), (1d0, 0d0)/
 
329
 
 
330
C  
 
331
C GLOBAL VARIABLES
 
332
C  
 
333
      include 'coupl.inc'
 
334
C  
 
335
C COLOR DATA
 
336
C  
 
337
%(color_data_lines)s
 
338
C ----------
 
339
C BEGIN CODE
 
340
C ----------
 
341
      DO I=1,NEXTERNAL  
 
342
        IC(I) = 1
 
343
      ENDDO     
 
344
 
 
345
 
 
346
%(helas_calls)s
 
347
%(jamp_lines)s
 
348
 
 
349
      END
 
350
 
 
351
      SUBROUTINE %(proc_prefix)sGET_JAMP(njamp, ONEJAMP)
 
352
 
 
353
      INTEGER     NCOLOR, NJAMP
 
354
      PARAMETER (NCOLOR=%(ncolor)d) 
 
355
      INTEGER NAMPSO
 
356
      PARAMETER (NAMPSO=%(nAmpSplitOrders)d)
 
357
      COMPLEX*16  JAMP(NCOLOR,NAMPSO), ONEJAMP
 
358
      COMMON/%(proc_prefix)sJAMP/JAMP,LNJAMP
 
359
        
 
360
        ONEJAMP = JAMP(njamp+1,1) ! +1 since njamp start at zero (c convention)
 
361
        END
 
362
 
 
363
       SUBROUTINE %(proc_prefix)sGET_LNJAMP(njamp, ONEJAMP)
 
364
 
 
365
      INTEGER     NCOLOR, NJAMP
 
366
      PARAMETER (NCOLOR=%(ncolor)d) 
 
367
      INTEGER NAMPSO
 
368
      PARAMETER (NAMPSO=%(nAmpSplitOrders)d)
 
369
      COMPLEX*16  JAMP(NCOLOR,NAMPSO), LNJAMP(NCOLOR,NAMPSO), ONEJAMP
 
370
      COMMON/%(proc_prefix)sJAMP/JAMP,LNJAMP
 
371
        
 
372
        ONEJAMP = LNJAMP(njamp+1,1) ! +1 since njamp start at zero (c convention)
 
373
        END
 
374
        
 
375
        
 
376
        
 
377
        
 
378
     SUBROUTINE %(proc_prefix)sGET_NCOLOR(in1, in2, out)
 
379
 
 
380
        integer in1, in2, out
 
381
        %(color_information)s
 
382
     END
 
383
 
 
384
     SUBROUTINE %(proc_prefix)sGET_NCOL(ncol)
 
385
        integer ncol
 
386
        ncol = %(ncolor)d
 
387
        return
 
388
        end      
 
389
      
 
390
      
 
391
      
 
392
      
 
393
      
 
394
      
 
395
      
 
396
      
 
397
      
 
398
      
 
399
      
 
400
      
 
401
      
 
402
      
 
403
      
 
404
      
 
405
      
 
406
      
 
407
      
 
408
      
 
409
      
 
410
      
 
411
      
 
412
      
 
413
      
 
414
      
 
415
      
 
416
      
 
417
      
 
418
      
 
419
      
 
420
      
 
421
      
 
422
      
 
423
      
 
 
b'\\ No newline at end of file'