1
SUBROUTINE SMATRIXHEL(P,HEL,ANS)
7
PARAMETER (NEXTERNAL=5)
10
CF2PY INTENT(OUT) :: ANS
11
CF2PY INTENT(IN) :: HEL
12
CF2PY INTENT(IN) :: P(0:3,NEXTERNAL)
17
REAL*8 P(0:3,NEXTERNAL),ANS
23
COMMON/HELUSERCHOICE/USERHEL
33
SUBROUTINE SMATRIX(P,ANS)
35
C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
36
C By the MadGraph5_aMC@NLO Development Team
37
C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
39
C MadGraph5_aMC@NLO StandAlone Version
41
C Returns amplitude squared summed/avg over colors
43
C for the point in phase space P(0:3,NEXTERNAL)
45
C Process: e+ e- > a a a
52
PARAMETER (NEXTERNAL=5)
54
PARAMETER (NINITIAL=2)
56
PARAMETER (NPOLENTRIES=(NEXTERNAL+1)*6)
60
PARAMETER (HELAVGFACTOR=4)
64
REAL*8 P(0:3,NEXTERNAL),ANS
65
CF2PY INTENT(OUT) :: ANS
66
CF2PY INTENT(IN) :: P(0:3,NEXTERNAL)
70
INTEGER NHEL(NEXTERNAL,NCOMB),NTRY
73
INTEGER IHEL,IDEN, I, J
74
C For a 1>N process, them BEAMTWO_HELAVGFACTOR would be set to 1.
75
INTEGER BEAMS_HELAVGFACTOR(2)
76
DATA (BEAMS_HELAVGFACTOR(I),I=1,2)/2,2/
78
LOGICAL GOODHEL(NCOMB)
80
DATA GOODHEL/NCOMB*.FALSE./
86
COMMON/HELUSERCHOICE/USERHEL
89
DATA (NHEL(I, 1),I=1,5) /-1, 1,-1,-1,-1/
90
DATA (NHEL(I, 2),I=1,5) /-1, 1,-1,-1, 1/
91
DATA (NHEL(I, 3),I=1,5) /-1, 1,-1, 1,-1/
92
DATA (NHEL(I, 4),I=1,5) /-1, 1,-1, 1, 1/
93
DATA (NHEL(I, 5),I=1,5) /-1, 1, 1,-1,-1/
94
DATA (NHEL(I, 6),I=1,5) /-1, 1, 1,-1, 1/
95
DATA (NHEL(I, 7),I=1,5) /-1, 1, 1, 1,-1/
96
DATA (NHEL(I, 8),I=1,5) /-1, 1, 1, 1, 1/
97
DATA (NHEL(I, 9),I=1,5) /-1,-1,-1,-1,-1/
98
DATA (NHEL(I, 10),I=1,5) /-1,-1,-1,-1, 1/
99
DATA (NHEL(I, 11),I=1,5) /-1,-1,-1, 1,-1/
100
DATA (NHEL(I, 12),I=1,5) /-1,-1,-1, 1, 1/
101
DATA (NHEL(I, 13),I=1,5) /-1,-1, 1,-1,-1/
102
DATA (NHEL(I, 14),I=1,5) /-1,-1, 1,-1, 1/
103
DATA (NHEL(I, 15),I=1,5) /-1,-1, 1, 1,-1/
104
DATA (NHEL(I, 16),I=1,5) /-1,-1, 1, 1, 1/
105
DATA (NHEL(I, 17),I=1,5) / 1, 1,-1,-1,-1/
106
DATA (NHEL(I, 18),I=1,5) / 1, 1,-1,-1, 1/
107
DATA (NHEL(I, 19),I=1,5) / 1, 1,-1, 1,-1/
108
DATA (NHEL(I, 20),I=1,5) / 1, 1,-1, 1, 1/
109
DATA (NHEL(I, 21),I=1,5) / 1, 1, 1,-1,-1/
110
DATA (NHEL(I, 22),I=1,5) / 1, 1, 1,-1, 1/
111
DATA (NHEL(I, 23),I=1,5) / 1, 1, 1, 1,-1/
112
DATA (NHEL(I, 24),I=1,5) / 1, 1, 1, 1, 1/
113
DATA (NHEL(I, 25),I=1,5) / 1,-1,-1,-1,-1/
114
DATA (NHEL(I, 26),I=1,5) / 1,-1,-1,-1, 1/
115
DATA (NHEL(I, 27),I=1,5) / 1,-1,-1, 1,-1/
116
DATA (NHEL(I, 28),I=1,5) / 1,-1,-1, 1, 1/
117
DATA (NHEL(I, 29),I=1,5) / 1,-1, 1,-1,-1/
118
DATA (NHEL(I, 30),I=1,5) / 1,-1, 1,-1, 1/
119
DATA (NHEL(I, 31),I=1,5) / 1,-1, 1, 1,-1/
120
DATA (NHEL(I, 32),I=1,5) / 1,-1, 1, 1, 1/
123
INTEGER POLARIZATIONS(0:NEXTERNAL,0:5)
124
DATA ((POLARIZATIONS(I,J),I=0,NEXTERNAL),J=0,5)/NPOLENTRIES*-1/
125
COMMON/BORN_BEAM_POL/POLARIZATIONS
129
LOGICAL IS_BORN_HEL_SELECTED
134
IF(USERHEL.EQ.-1) NTRY=NTRY+1
138
C When spin-2 particles are involved, the Helicity filtering is
139
C dangerous for the 2->1 topology.
140
C This is because depending on the MC setup the initial PS points
141
C have back-to-back initial states
142
C for which some of the spin-2 helicity configurations are zero.
143
C But they are no longer zero
144
C if the point is boosted on the z-axis. Remember that HELAS
145
C helicity amplitudes are no longer
146
C lorentz invariant with expternal spin-2 particles (only the
148
C For this reason, we simply remove the filterin when there is
149
C only three external particles.
150
IF (NEXTERNAL.LE.3) THEN
157
IF (USERHEL.EQ.-1.OR.USERHEL.EQ.IHEL) THEN
158
IF (GOODHEL(IHEL) .OR. NTRY .LT. 20.OR.USERHEL.NE.-1) THEN
159
IF(NTRY.GE.2.AND.POLARIZATIONS(0,0).NE.
160
$ -1.AND.(.NOT.IS_BORN_HEL_SELECTED(IHEL))) THEN
163
T=MATRIX(P ,NHEL(1,IHEL),JC(1))
164
IF(POLARIZATIONS(0,0).EQ.-1.OR.IS_BORN_HEL_SELECTED(IHEL))
168
IF (T .NE. 0D0 .AND. .NOT. GOODHEL(IHEL)) THEN
175
IF(USERHEL.NE.-1) THEN
179
IF (POLARIZATIONS(J,0).NE.-1) THEN
180
ANS=ANS*BEAMS_HELAVGFACTOR(J)
181
ANS=ANS/POLARIZATIONS(J,0)
188
REAL*8 FUNCTION MATRIX(P,NHEL,IC)
190
C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
191
C By the MadGraph5_aMC@NLO Development Team
192
C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
194
C Returns amplitude squared summed/avg over colors
195
C for the point with external lines W(0:6,NEXTERNAL)
197
C Process: e+ e- > a a a
204
PARAMETER (NGRAPHS=6)
206
PARAMETER (NEXTERNAL=5)
207
INTEGER NWAVEFUNCS, NCOLOR
208
PARAMETER (NWAVEFUNCS=9, NCOLOR=1)
212
PARAMETER (IMAG1=(0D0,1D0))
216
REAL*8 P(0:3,NEXTERNAL)
217
INTEGER NHEL(NEXTERNAL), IC(NEXTERNAL)
223
REAL*8 DENOM(NCOLOR), CF(NCOLOR,NCOLOR)
224
COMPLEX*16 AMP(NGRAPHS), JAMP(NCOLOR)
225
COMPLEX*16 W(20,NWAVEFUNCS)
227
DATA DUM0, DUM1/(0D0, 0D0), (1D0, 0D0)/
237
DATA (CF(I, 1),I= 1, 1) / 1/
242
CALL OXXXXX(P(0,1),ZERO,NHEL(1),-1*IC(1),W(1,1))
243
CALL IXXXXX(P(0,2),ZERO,NHEL(2),+1*IC(2),W(1,2))
244
CALL VXXXXX(P(0,3),ZERO,NHEL(3),+1*IC(3),W(1,3))
245
CALL VXXXXX(P(0,4),ZERO,NHEL(4),+1*IC(4),W(1,4))
246
CALL VXXXXX(P(0,5),ZERO,NHEL(5),+1*IC(5),W(1,5))
247
CALL FVOXXX(W(1,1),W(1,3),MGVX12,ZERO,ZERO,W(1,6))
248
CALL FVIXXX(W(1,2),W(1,4),MGVX12,ZERO,ZERO,W(1,7))
249
C Amplitude(s) for diagram number 1
250
CALL IOVXXX(W(1,7),W(1,6),W(1,5),MGVX12,AMP(1))
251
CALL FVIXXX(W(1,2),W(1,5),MGVX12,ZERO,ZERO,W(1,8))
252
C Amplitude(s) for diagram number 2
253
CALL IOVXXX(W(1,8),W(1,6),W(1,4),MGVX12,AMP(2))
254
CALL FVOXXX(W(1,1),W(1,4),MGVX12,ZERO,ZERO,W(1,6))
255
CALL FVIXXX(W(1,2),W(1,3),MGVX12,ZERO,ZERO,W(1,9))
256
C Amplitude(s) for diagram number 3
257
CALL IOVXXX(W(1,9),W(1,6),W(1,5),MGVX12,AMP(3))
258
C Amplitude(s) for diagram number 4
259
CALL IOVXXX(W(1,8),W(1,6),W(1,3),MGVX12,AMP(4))
260
CALL FVOXXX(W(1,1),W(1,5),MGVX12,ZERO,ZERO,W(1,6))
261
C Amplitude(s) for diagram number 5
262
CALL IOVXXX(W(1,9),W(1,6),W(1,4),MGVX12,AMP(5))
263
C Amplitude(s) for diagram number 6
264
CALL IOVXXX(W(1,7),W(1,6),W(1,3),MGVX12,AMP(6))
265
JAMP(1)=-AMP(1)-AMP(2)-AMP(3)-AMP(4)-AMP(5)-AMP(6)
271
ZTEMP = ZTEMP + CF(J,I)*JAMP(J)
273
MATRIX = MATRIX+ZTEMP*DCONJG(JAMP(I))/DENOM(I)
278
SUBROUTINE GET_ME(P, ALPHAS, NHEL ,ANS)
284
PARAMETER (NEXTERNAL=5)
288
REAL*8 P(0:3,NEXTERNAL),ANS
290
DOUBLE PRECISION ALPHAS
292
CF2PY INTENT(OUT) :: ANS
293
CF2PY INTENT(IN) :: NHEL
294
CF2PY INTENT(IN) :: P(0:3,NEXTERNAL)
295
CF2PY INTENT(IN) :: ALPHAS
296
C ROUTINE FOR F2PY to read the benchmark point.
297
C the include file with the values of the parameters and masses
300
PI = 3.141592653589793D0
301
G = 2* DSQRT(ALPHAS*PI)
302
CALL UPDATE_AS_PARAM()
304
CALL SMATRIXHEL(P, NHEL, ANS)
311
SUBROUTINE INITIALISE(PATH)
312
C ROUTINE FOR F2PY to read the benchmark point.
315
CF2PY INTENT(IN) :: PATH
316
CALL SETPARA(PATH) !first call to setup the paramaters
320
LOGICAL FUNCTION IS_BORN_HEL_SELECTED(HELID)
326
PARAMETER (NEXTERNAL=5)
341
INTEGER HELC(NEXTERNAL,NCOMB)
342
COMMON/BORN_HEL_CONFIGS/HELC
344
INTEGER POLARIZATIONS(0:NEXTERNAL,0:5)
345
COMMON/BORN_BEAM_POL/POLARIZATIONS
350
IS_BORN_HEL_SELECTED = .TRUE.
351
IF (POLARIZATIONS(0,0).EQ.-1) THEN
356
IF (POLARIZATIONS(I,0).EQ.-1) THEN
360
DO J=1,POLARIZATIONS(I,0)
361
IF (HELC(I,HELID).EQ.POLARIZATIONS(I,J)) THEN
366
IF(.NOT.FOUNDIT) THEN
367
IS_BORN_HEL_SELECTED = .FALSE.