Merge lp:~maddevelopers/mg5amcnlo/2.6.5_ewa into lp:mg5amcnlo/lts

Proposed by Olivier Mattelaer
Status: Work in progress
Proposed branch: lp:~maddevelopers/mg5amcnlo/2.6.5_ewa
Merge into: lp:mg5amcnlo/lts
Diff against target: 4346 lines (+2585/-250)
58 files modified
MadSpin/interface_madspin.py (+25/-0)
Template/LO/Cards/pythia8_card_default.dat (+2/-0)
Template/LO/Cards/run_card.dat (+1/-1)
Template/LO/Source/PDF/ElectroweakFlux.f (+1484/-0)
Template/LO/Source/PDF/ElectroweakFlux.inc (+38/-0)
Template/LO/Source/PDF/PhotonFlux.f (+18/-13)
Template/LO/Source/PDF/makefile (+4/-3)
Template/LO/Source/PDF/pdf.f (+3/-3)
Template/LO/Source/PDF/pdg2pdf.f (+111/-17)
Template/LO/Source/PDF/pdg2pdf_lhapdf6.f (+111/-11)
Template/LO/Source/kin_functions.f (+5/-3)
Template/LO/Source/setrun.f (+17/-2)
Template/LO/SubProcesses/genps.f (+3/-0)
Template/LO/SubProcesses/reweight.f (+2/-2)
Template/LO/SubProcesses/unwgt.f (+10/-1)
Template/MadWeight/src/setrun.f (+8/-0)
UpdateNotes.txt (+18/-0)
aloha/aloha_writers.py (+7/-4)
madgraph/core/base_objects.py (+3/-2)
madgraph/interface/common_run_interface.py (+30/-5)
madgraph/interface/madevent_interface.py (+3/-2)
madgraph/interface/madgraph_interface.py (+1/-1)
madgraph/interface/reweight_interface.py (+26/-15)
madgraph/iolibs/export_v4.py (+83/-18)
madgraph/iolibs/template_files/auto_dsig_v4.inc (+15/-0)
madgraph/iolibs/template_files/loop_optimized/check_sa_all.py.inc (+4/-4)
madgraph/iolibs/template_files/loop_optimized/loop_matrix_standalone.inc (+12/-3)
madgraph/iolibs/template_files/makefile_sa_f2py (+15/-7)
madgraph/iolibs/template_files/matrix_madevent_group_v4.inc (+2/-15)
madgraph/iolibs/template_files/matrix_madevent_v4.inc (+2/-14)
madgraph/iolibs/template_files/super_auto_dsig_group_v4.inc (+7/-2)
madgraph/loop/loop_exporters.py (+28/-18)
madgraph/various/banner.py (+109/-23)
madgraph/various/cluster.py (+68/-4)
mg5decay/decay_objects.py (+21/-2)
tests/acceptance_tests/test_cmd_reweight.py (+11/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%loop_matrix.f (+12/-3)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%loop_matrix.f (+12/-3)
tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/auto_dsig.f (+30/-0)
tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/matrix1.f (+3/-0)
tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/super_auto_dsig.f (+8/-2)
tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/auto_dsig.f (+30/-0)
tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/matrix.f (+4/-0)
tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_eq_4.f (+12/-3)
tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_0_QEDAmpAndQEDsq_gt_2.f (+12/-3)
tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_4.f (+12/-3)
tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QEDsq_le_4.f (+12/-3)
tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_WGTsq_le_10_QEDAmpAndQEDsq_gt_2.f (+12/-3)
tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_default.f (+12/-3)
tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDpert_default.f (+12/-3)
tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QEDpert_default.f (+12/-3)
tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%loop_matrix.f (+12/-3)
tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%loop_matrix.f (+12/-3)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/loop_matrix.f (+12/-3)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/loop_matrix.f (+12/-3)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/loop_matrix.f (+12/-3)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/loop_matrix.f (+12/-3)
tests/test_manager.py (+11/-1)
To merge this branch: bzr merge lp:~maddevelopers/mg5amcnlo/2.6.5_ewa
Reviewer Review Type Date Requested Status
Olivier Mattelaer Pending
Review via email: mp+388892@code.launchpad.net

Commit message

only for the convenient diff for the moment

To post a comment you must log in.
307. By olivier-mattelaer

merge with 2.7.4

Unmerged revisions

307. By olivier-mattelaer

merge with 2.7.4

306. By olivier-mattelaer

merge with 2.7.2

305. By olivier-mattelaer

merge with latest 2.6.7

304. By olivier-mattelaer

fix the helicity factor for the Z boson in EWA

303. By olivier-mattelaer

allow lhapdf + EWA for pW initial state

302. By olivier-mattelaer

merge with latest 2.6.6

301. By olivier-mattelaer

fixing some tests

300. By olivier-mattelaer

merge with latest 2.6.6

299. By olivier-mattelaer

implement EWA for proton collision --thanks to xiaoran

298. By olivier-mattelaer

allow EWA for proton

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'MadSpin/interface_madspin.py'
--- MadSpin/interface_madspin.py 2020-06-16 19:24:01 +0000
+++ MadSpin/interface_madspin.py 2020-08-13 08:01:43 +0000
@@ -150,6 +150,7 @@
150 self.mg5cmd = master_interface.MasterCmd()150 self.mg5cmd = master_interface.MasterCmd()
151 self.seed = None151 self.seed = None
152 self.err_branching_ratio = 0152 self.err_branching_ratio = 0
153 self.me_run_name = "" # Events diretory name where to stotre the events (used by madevent) not use internally
153 154
154 155
155 if event_path:156 if event_path:
@@ -580,11 +581,35 @@
580 decay go > sq j581 decay go > sq j
581 launch582 launch
582 '''583 '''
584
585 self.parser_launch.print_help()
586
587 def parser_launch(self):
588 usage = """launch [-n RUN_NAME]
589 """
590 parser = misc.OptionParser(usage=usage)
591 parser.add_option("-n", "--name",
592 default="",
593 help="When NOT run in standalone instruct MG5aMC where to store the events file")
594 return parser
595
596 def parse_launch(self, line):
597
598 args = self.split_arg(line)
599 return self.parser_launch().parse_args(args)
600
583601
584 @misc.mute_logger()602 @misc.mute_logger()
585 def do_launch(self, line):603 def do_launch(self, line):
586 """end of the configuration launched the code"""604 """end of the configuration launched the code"""
587 605
606 (options, args) = self.parse_launch(line)
607
608 if options.name:
609 self.me_run_name = options.name # Only use by MG5aMC
610 else:
611 self.me_run_name = ''
612
588 if self.options["spinmode"] in ["none"]:613 if self.options["spinmode"] in ["none"]:
589 return self.run_bridge(line)614 return self.run_bridge(line)
590 elif self.options["spinmode"] == "onshell":615 elif self.options["spinmode"] == "onshell":
591616
=== modified file 'Template/LO/Cards/pythia8_card_default.dat'
--- Template/LO/Cards/pythia8_card_default.dat 2017-02-06 18:35:42 +0000
+++ Template/LO/Cards/pythia8_card_default.dat 2020-08-13 08:01:43 +0000
@@ -12,6 +12,8 @@
12! -------------------------------------------------------------------12! -------------------------------------------------------------------
13! Specify the HEPMC output of the Pythia8 shower. You can set it to:13! Specify the HEPMC output of the Pythia8 shower. You can set it to:
14! auto : MG5aMC will automatically place it the run_<i> directory14! auto : MG5aMC will automatically place it the run_<i> directory
15! autoremove: MG5aMC will automatically remove the file at the end of the run.
16! (usefull when running with Delphes)
15! /dev/null : to turn off the HEPMC output.17! /dev/null : to turn off the HEPMC output.
16! <path> : to select where the HEPMC file must written. It will 18! <path> : to select where the HEPMC file must written. It will
17! therefore not be placed in the run_<i> directory. The19! therefore not be placed in the run_<i> directory. The
1820
=== modified file 'Template/LO/Cards/run_card.dat'
--- Template/LO/Cards/run_card.dat 2020-05-27 07:52:34 +0000
+++ Template/LO/Cards/run_card.dat 2020-08-13 08:01:43 +0000
@@ -28,7 +28,7 @@
28#*********************************************************************28#*********************************************************************
29# Collider type and energy *29# Collider type and energy *
30# lpp: 0=No PDF, 1=proton, -1=antiproton, 2=photon from proton, *30# lpp: 0=No PDF, 1=proton, -1=antiproton, 2=photon from proton, *
31# 3=photon from electron *31# 3=photon from electron, 4=photon from muon *
32#*********************************************************************32#*********************************************************************
33 %(lpp1)s = lpp1 ! beam 1 type 33 %(lpp1)s = lpp1 ! beam 1 type
34 %(lpp2)s = lpp2 ! beam 2 type34 %(lpp2)s = lpp2 ! beam 2 type
3535
=== added file 'Template/LO/Source/PDF/ElectroweakFlux.f'
--- Template/LO/Source/PDF/ElectroweakFlux.f 1970-01-01 00:00:00 +0000
+++ Template/LO/Source/PDF/ElectroweakFlux.f 2020-08-13 08:01:43 +0000
@@ -0,0 +1,1484 @@
1c/* ********************************************************* */
2c/* Effective W Approximation Splitting Functions */
3c/* Pulled from Barger and Phillips, pg 276 */
4c/* ********************************************************* */
5c
6c List of functions:
7c ewa_wX_ByPID,ewa_wX,ewa_wT,ewa_w0
8c ewa_zX_ByPID,ewa_zT,ewa_z0
9c
10c Input for ewa_vX_ByPID:
11c x: longitudinal momentum fraction carried by boson v
12c q2max: scale^2 of v boson pdf
13c pol: polarization of v boson (pol = +1,-1,0)
14c ppid: pid of v boson's parent fermion
15c/* ********************************************************* */
16
17c/* ********************************************************* */
18c return ewa splitting function for w boson by parent PID
19 double precision function ewa_wX_ByPID(x,q2max,pol,ppid)
20 implicit none
21 integer pol,ppid
22 double precision x,q2max
23 double precision ewa_wX
24 double precision ewa_wp_p, ewa_wm_p
25 external ewa_wX, ewa_wp_p, ewa_wm_p
26
27 include 'ElectroweakFlux.inc'
28
29 if(q2max.lt.ewa_mw2) then
30c write (*,*) 'ERROR: q2max below MW2',q2max,ewa_mw2
31 ewa_wX_ByPID = 0d0
32 return
33 endif
34 if(x.lt.eps .or. x.gt.(1.d0-eps)) then
35c write (*,*) 'ERROR: x out of range',x
36 ewa_wX_ByPID =0d0
37 return
38 endif
39
40c is parent a proton (unbroken)
41 if(ppid.eq.2212) then
42 ewa_wX_ByPID = ewa_wp_p(x,q2max,pol)
43 return
44 else if(ppid.eq.-2212) then
45 ewa_wX_ByPID = ewa_wm_p(x,q2max,pol)
46 return
47c other particle
48 else
49 ewa_wX_ByPID = ewa_wX(x,q2max,pol)
50 endif
51 return
52 end
53c/* ********************************************************* */
54c return ewa splitting function for w boson
55 double precision function ewa_wX(x,q2max,pol)
56 implicit none
57 integer pol
58 double precision x,q2max
59 double precision ewa_wT,ewa_w0
60 external ewa_wT,ewa_w0
61
62 if(abs(pol).gt.0) then
63 ewa_wX = ewa_wT(x,q2max,pol)
64 else
65 ewa_wX = ewa_w0(x)
66 endif
67 return
68 end
69c/* ********************************************************* */
70c return ewa splitting function for z boson by parent PID
71 double precision function ewa_zX_ByPID(x,q2max,pol,ppid)
72 implicit none
73 integer pol,ppid
74 double precision x,q2max
75 double precision ewa_zT,ewa_z0, ewa_z_p
76 external ewa_zT,ewa_z0,ewa_z_p
77
78 include 'ElectroweakFlux.inc'
79
80 if(q2max.lt.ewa_mz2) then
81c write (*,*) 'ERROR: q2max below MZ2',q2max,ewa_mz2
82 ewa_zX_ByPID = 0d0
83 return
84 endif
85 if(x.lt.eps .or. x.gt.(1.d0-eps))then
86c write (*,*) 'ERROR: x out of range',x
87 ewa_zX_ByPID = 0d0
88 return
89 endif
90
91c is parent a charged lepton?
92 if( abs(ppid).eq.11
93 & .or. abs(ppid).eq.13
94 & .or. abs(ppid).eq.15) then
95 if(abs(pol).gt.0) then
96 ewa_zX_ByPID = ewa_zT(x,q2max,pol,ewa_gVl,ewa_gAl)
97 else
98 ewa_zX_ByPID = ewa_z0(x,ewa_gVl,ewa_gAl)
99 endif
100 return
101c is parent a proton (unbroken)
102 elseif(ppid.eq.2212) then
103 ewa_zX_ByPID = ewa_Z_p(x,q2max,pol)
104 return
105c is parent a neutrino?
106 elseif( abs(ppid).eq.12
107 & .or. abs(ppid).eq.14
108 & .or. abs(ppid).eq.16) then
109 if(abs(pol).gt.0) then
110 ewa_zX_ByPID = ewa_zT(x,q2max,pol,ewa_gVv,ewa_gAv)
111 else
112 ewa_zX_ByPID = ewa_z0(x,ewa_gVv,ewa_gAv)
113 endif
114 return
115c is parent an up-type quark?
116 elseif( abs(ppid).eq.2
117 & .or. abs(ppid).eq.4
118 & .or. abs(ppid).eq.6) then
119 if(abs(pol).gt.0) then
120 ewa_zX_ByPID = ewa_zT(x,q2max,pol,ewa_gVu,ewa_gAu)
121 else
122 ewa_zX_ByPID = ewa_z0(x,ewa_gVu,ewa_gAu)
123 endif
124 return
125c is parent a down-type quark?
126 elseif( abs(ppid).eq.1
127 & .or. abs(ppid).eq.3
128 & .or. abs(ppid).eq.5) then
129 if(abs(pol).gt.0) then
130 ewa_zX_ByPID = ewa_zT(x,q2max,pol,ewa_gVd,ewa_gAd)
131 else
132 ewa_zX_ByPID = ewa_z0(x,ewa_gVd,ewa_gAd)
133 endif
134 return
135c or something else?
136 else
137 ewa_zX_ByPID = 0d0
138 return
139 endif
140 end
141c/* ********************************************************* */
142c w boson splitting function: longitudinal polarization
143 double precision function ewa_w0(x)
144 implicit none
145 double precision x
146 double precision coup
147
148 include 'ElectroweakFlux.inc'
149
150c P_W(x,lambda=0) = (gW/4pi)**2 (1-x)/x
151 coup = ewa_gW2/(16d0*pi2)
152 ewa_w0 = coup * (1d0-x)/x
153 return
154 end
155c/* ********************************************************* */
156c z boson splitting function: longitudinal polarization
157 double precision function ewa_z0(x,gV,gA)
158 implicit none
159 double precision x,gV,gA
160 double precision coup
161
162 include 'ElectroweakFlux.inc'
163
164c P_Z(x,lambda=0) = (gW2/cw2*4pi2) * (gV2 + gA2) (1-x)/x
165 coup = ewa_gW2/(ewa_cw2*4d0*pi2) * (gV**2 + gA**2)
166 ewa_z0 = coup * (1d0-x)/x
167 return
168 end
169c/* ********************************************************* */
170c w boson splitting function: transverse polarization
171 double precision function ewa_wT(x,q2max,pol)
172 implicit none
173 integer pol
174 double precision x,q2max
175 double precision coup,numer
176
177 include 'ElectroweakFlux.inc'
178
179c P_W(x,lambda=\pm) = coup * [(gV \mp gA)^2 + (gV \pm gA)^2 (1-x)^2] * log(Q2/MV2)
180 coup = ewa_gW2/(8d0*16d0*pi2)
181 numer = (ewa_gV-pol*ewa_gA)**2
182 & + (ewa_gV+pol*ewa_gA)**2 * (1d0-x)**2
183 ewa_wT = coup * numer * log(q2max/ewa_mw2) / x
184 return
185 end
186c/* ********************************************************* */
187c z boson splitting function: transverse polarization
188 double precision function ewa_zT(x,q2max,pol,gV,gA)
189 implicit none
190 integer pol
191 double precision x,q2max,gV,gA
192 double precision coup,numer
193
194 include 'ElectroweakFlux.inc'
195
196c P_Z(x,lambda=\pm) = coup * [(gV \mp gA)^2 + (gV \pm gA)^2 (1-x)^2] * log(Q2/MV2)
197 coup = ewa_gW2/(ewa_cw2*16d0*pi2)
198 numer = (gV-pol*gA)**2
199 & + (gV+pol*gA)**2 * (1d0-x)**2
200 ewa_zT = coup * numer * log(q2max/ewa_mz2) / x
201 return
202 end
203 FUNCTION dFINT(NARG,ARG,NENT,ENT,TABLE)
204C
205C INTERPOLATION ROUTINE. AUTHOR C. LETERTRE.
206C MODIFIED BY B. SCHORR, 1.07.1982.
207C
208 implicit real * 8 (a-h,o-z)
209 INTEGER NENT(*)
210 REAL*8 ARG(*), ENT(*), TABLE(*)
211 INTEGER INDEX(32)
212 REAL*8 WEIGHT(32)
213 LOGICAL MFLAG, RFLAG
214 DFINT = 0.
215 IF(NARG .LT. 1 .OR. NARG .GT. 5) GOTO 300
216 LMAX = 0
217 ISTEP = 1
218 KNOTS = 1
219 INDEX(1) = 1
220 WEIGHT(1) = 1.
221 DO 100 N = 1, NARG
222 X = ARG(N)
223 NDIM = NENT(N)
224 LOCA = LMAX
225 LMIN = LMAX + 1
226 LMAX = LMAX + NDIM
227 IF(NDIM .GT. 2) GOTO 10
228 IF(NDIM .EQ. 1) GOTO 100
229 H = X - ENT(LMIN)
230 IF(H .EQ. 0.) GOTO 90
231 ISHIFT = ISTEP
232 IF(X-ENT(LMIN+1) .EQ. 0.) GOTO 21
233 ISHIFT = 0
234 ETA = H / (ENT(LMIN+1) - ENT(LMIN))
235 GOTO 30
236 10 LOCB = LMAX + 1
237 11 LOCC = (LOCA+LOCB) / 2
238 IF(X-ENT(LOCC)) 12, 20, 13
239 12 LOCB = LOCC
240 GOTO 14
241 13 LOCA = LOCC
242 14 IF(LOCB-LOCA .GT. 1) GOTO 11
243 LOCA = MIN0( MAX0(LOCA,LMIN), LMAX-1 )
244 ISHIFT = (LOCA - LMIN) * ISTEP
245 ETA = (X - ENT(LOCA)) / (ENT(LOCA+1) - ENT(LOCA))
246 GOTO 30
247 20 ISHIFT = (LOCC - LMIN) * ISTEP
248 21 DO 22 K = 1, KNOTS
249 INDEX(K) = INDEX(K) + ISHIFT
250 22 CONTINUE
251 GOTO 90
252 30 DO 31 K = 1, KNOTS
253 INDEX(K) = INDEX(K) + ISHIFT
254 INDEX(K+KNOTS) = INDEX(K) + ISTEP
255 WEIGHT(K+KNOTS) = WEIGHT(K) * ETA
256 WEIGHT(K) = WEIGHT(K) - WEIGHT(K+KNOTS)
257 31 CONTINUE
258 KNOTS = 2*KNOTS
259 90 ISTEP = ISTEP * NDIM
260 100 CONTINUE
261 DO 200 K = 1, KNOTS
262 I = INDEX(K)
263 DFINT = DFINT + WEIGHT(K) * TABLE(I)
264 200 CONTINUE
265 RETURN
266 300 CALL KERMTR('E104.1',LGFILE,MFLAG,RFLAG)
267 IF(MFLAG) THEN
268 IF(LGFILE .EQ. 0) THEN
269 WRITE(*,1000) NARG
270 ELSE
271 WRITE(LGFILE,1000) NARG
272 ENDIF
273 ENDIF
274 IF(.NOT. RFLAG) CALL ABEND
275 RETURN
2761000 FORMAT( 7X, 25HFUNCTION DFINT ... NARG =,I6,
277 + 17H NOT WITHIN RANGE)
278 END
279 SUBROUTINE KERSET(ERCODE,LGFILE,LIMITM,LIMITR)
280 PARAMETER(KOUNTE = 28)
281 CHARACTER*6 ERCODE, CODE(KOUNTE)
282 LOGICAL MFLAG, RFLAG
283 INTEGER KNTM(KOUNTE), KNTR(KOUNTE)
284 DATA LOGF / 0 /
285 DATA CODE(1), KNTM(1), KNTR(1) / 'C204.1', 100, 100 /
286 DATA CODE(2), KNTM(2), KNTR(2) / 'C204.2', 100, 100 /
287 DATA CODE(3), KNTM(3), KNTR(3) / 'C204.3', 100, 100 /
288 DATA CODE(4), KNTM(4), KNTR(4) / 'C205.1', 100, 100 /
289 DATA CODE(5), KNTM(5), KNTR(5) / 'C205.2', 100, 100 /
290 DATA CODE(6), KNTM(6), KNTR(6) / 'C205.3', 100, 100 /
291 DATA CODE(7), KNTM(7), KNTR(7) / 'C305.1', 100, 100 /
292 DATA CODE(8), KNTM(8), KNTR(8) / 'C308.1', 100, 100 /
293 DATA CODE(9), KNTM(9), KNTR(9) / 'C312.1', 100, 100 /
294 DATA CODE(10),KNTM(10),KNTR(10) / 'C313.1', 100, 100 /
295 DATA CODE(11),KNTM(11),KNTR(11) / 'C336.1', 100, 100 /
296 DATA CODE(12),KNTM(12),KNTR(12) / 'C337.1', 100, 100 /
297 DATA CODE(13),KNTM(13),KNTR(13) / 'C341.1', 100, 100 /
298 DATA CODE(14),KNTM(14),KNTR(14) / 'D103.1', 100, 100 /
299 DATA CODE(15),KNTM(15),KNTR(15) / 'D106.1', 100, 100 /
300 DATA CODE(16),KNTM(16),KNTR(16) / 'D209.1', 100, 100 /
301 DATA CODE(17),KNTM(17),KNTR(17) / 'D509.1', 100, 100 /
302 DATA CODE(18),KNTM(18),KNTR(18) / 'E100.1', 100, 100 /
303 DATA CODE(19),KNTM(19),KNTR(19) / 'E104.1', 100, 100 /
304 DATA CODE(20),KNTM(20),KNTR(20) / 'E105.1', 100, 100 /
305 DATA CODE(21),KNTM(21),KNTR(21) / 'E208.1', 100, 100 /
306 DATA CODE(22),KNTM(22),KNTR(22) / 'E208.2', 100, 100 /
307 DATA CODE(23),KNTM(23),KNTR(23) / 'F010.1', 100, 0 /
308 DATA CODE(24),KNTM(24),KNTR(24) / 'F011.1', 100, 0 /
309 DATA CODE(25),KNTM(25),KNTR(25) / 'F012.1', 100, 0 /
310 DATA CODE(26),KNTM(26),KNTR(26) / 'F406.1', 100, 0 /
311 DATA CODE(27),KNTM(27),KNTR(27) / 'G100.1', 100, 100 /
312 DATA CODE(28),KNTM(28),KNTR(28) / 'G100.2', 100, 100 /
313 LOGF = LGFILE
314 IF(ERCODE .EQ. ' ') THEN
315 L = 0
316 ELSE
317 DO 10 L = 1, 6
318 IF(ERCODE(1:L) .EQ. ERCODE) GOTO 12
319 10 CONTINUE
320 12 CONTINUE
321 ENDIF
322 DO 14 I = 1, KOUNTE
323 IF(L .EQ. 0) GOTO 13
324 IF(CODE(I)(1:L) .NE. ERCODE(1:L)) GOTO 14
325 13 KNTM(I) = LIMITM
326 KNTR(I) = LIMITR
327 14 CONTINUE
328 RETURN
329 ENTRY KERMTR(ERCODE,LOG,MFLAG,RFLAG)
330 LOG = LOGF
331 DO 20 I = 1, KOUNTE
332 IF(ERCODE .EQ. CODE(I)) GOTO 21
333 20 CONTINUE
334 WRITE(*,1000) ERCODE
335 CALL ABEND
336 RETURN
337 21 RFLAG = KNTR(I) .GE. 1
338 IF(RFLAG .AND. (KNTR(I) .LT. 100)) KNTR(I) = KNTR(I) - 1
339 MFLAG = KNTM(I) .GE. 1
340 IF(MFLAG .AND. (KNTM(I) .LT. 100)) KNTM(I) = KNTM(I) - 1
341 IF(.NOT. RFLAG) THEN
342 IF(LOGF .LT. 1) THEN
343 WRITE(*,1001) CODE(I)
344 ELSE
345 WRITE(LOGF,1001) CODE(I)
346 ENDIF
347 ENDIF
348 IF(MFLAG .AND. RFLAG) THEN
349 IF(LOGF .LT. 1) THEN
350 WRITE(*,1002) CODE(I)
351 ELSE
352 WRITE(LOGF,1002) CODE(I)
353 ENDIF
354 ENDIF
355 RETURN
3561000 FORMAT(' KERNLIB LIBRARY ERROR. ' /
357 + ' ERROR CODE ',A6,' NOT RECOGNIZED BY KERMTR',
358 + ' ERROR MONITOR. RUN ABORTED.')
3591001 FORMAT(/' ***** RUN TERMINATED BY CERN LIBRARY ERROR ',
360 + 'CONDITION ',A6)
3611002 FORMAT(/' ***** CERN LIBRARY ERROR CONDITION ',A6)
362 END
363 SUBROUTINE ABEND
364C
365C CERN PROGLIB# Z035 ABEND .VERSION KERNVAX 1.10 811126
366
367 STOP '*** ABEND ***'
368 END
369 function ewa_wp_p(x,Q2,pol)
370 implicit none
371 real*8 ewa_wp_p
372 real*8 x,Q2
373 integer pol
374 real*8 tmp
375 real*8 y,z
376 real*8 ylow,yupp,zlow,zupp
377 parameter (ylow=-16.1181,yupp=-1e-07)
378 parameter (zlow=4.38683,zupp=13.8155)
379 real*8 ewa_wp_p_1p
380 real*8 ewa_wp_p_1m
381 real*8 ewa_wp_p_0
382 y=log(x)
383 z=0.5*log(Q2)
384 if(pol.eq.1)then
385 tmp=ewa_wp_p_1p(y,z)
386 else if(pol.eq.-1)then
387 tmp=ewa_wp_p_1m(y,z)
388 else
389 tmp=ewa_wp_p_0(y,z)
390 endif
391 ewa_wp_p=tmp/x*y*y
392 end
393 function ewa_wp_p_1p(y,z)
394 implicit none
395 real*8 ewa_wp_p_1p,y,z
396 integer narg,nny,nnz
397 parameter (narg=2)
398 parameter (nny=32)
399 parameter (nnz=8)
400 integer iny,inz,nent(narg)
401 real*8 tmp,dfint,ymap,zmap
402 real*8 arg(narg),ent(nny+nnz)
403 real*8 yv(nny),zv(nnz),gridv(nny,nnz)
404 logical firsttime
405 external dfint,ymap,zmap
406 data yv/
407 # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01,
408 # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00,
409 # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00,
410 # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00,
411 # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00,
412 # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00,
413 # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01,
414 # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/
415 data zv/
416 # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00,
417 # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/
418 data (gridv(iny, 1),iny=1,32)/
419 # 3.5423305e-07, 2.8295336e-07, 2.2903220e-07, 1.8758200e-07,
420 # 1.5559163e-07, 1.3038773e-07, 1.1025515e-07, 9.4027921e-08,
421 # 8.0829168e-08, 7.0061706e-08, 6.1294211e-08, 5.4182560e-08,
422 # 4.8450890e-08, 4.3888687e-08, 4.0319491e-08, 3.7580596e-08,
423 # 3.5520713e-08, 3.3952301e-08, 3.2625426e-08, 3.1187707e-08,
424 # 2.9181849e-08, 2.6154236e-08, 2.1900372e-08, 1.6640020e-08,
425 # 1.1099066e-08, 6.2780040e-09, 2.8842540e-09, 1.0025616e-09,
426 # 2.4219639e-10, 3.2430180e-11, 1.7122412e-12, 4.1237372e-12/
427 data (gridv(iny, 2),iny=1,32)/
428 # 9.6800285e-03, 7.5895745e-03, 6.0144129e-03, 4.8116391e-03,
429 # 3.8906828e-03, 3.1743361e-03, 2.6106310e-03, 2.1637757e-03,
430 # 1.8068388e-03, 1.5208169e-03, 1.2917371e-03, 1.1084546e-03,
431 # 9.6221855e-04, 8.4652524e-04, 7.5595982e-04, 6.8586986e-04,
432 # 6.3206533e-04, 5.8999236e-04, 5.5430903e-04, 5.1815672e-04,
433 # 4.7362998e-04, 4.1384517e-04, 3.3686600e-04, 2.4790947e-04,
434 # 1.5951917e-04, 8.6605399e-05, 3.7927081e-05, 1.2444648e-05,
435 # 2.7972986e-06, 3.3735215e-07, 1.3499999e-08, 3.8170248e-08/
436 data (gridv(iny, 3),iny=1,32)/
437 # 2.6802909e-02, 2.0666858e-02, 1.6084293e-02, 1.2619023e-02,
438 # 9.9957736e-03, 7.9819494e-03, 6.4206742e-03, 5.2026236e-03,
439 # 4.2458765e-03, 3.4918949e-03, 2.8976082e-03, 2.4290655e-03,
440 # 2.0601111e-03, 1.7714145e-03, 1.5472491e-03, 1.3744754e-03,
441 # 1.2417664e-03, 1.1376810e-03, 1.0498817e-03, 9.6384193e-04,
442 # 8.6434504e-04, 7.3958460e-04, 5.8805171e-04, 4.2143198e-04,
443 # 2.6317925e-04, 1.3808501e-04, 5.8100243e-05, 1.8168748e-05,
444 # 3.8451248e-06, 4.2503569e-07, 1.2748665e-08, 4.3387870e-08/
445 data (gridv(iny, 4),iny=1,32)/
446 # 5.2421053e-02, 3.9824965e-02, 3.0512558e-02, 2.3545386e-02,
447 # 1.8330098e-02, 1.4377269e-02, 1.1354532e-02, 9.0302263e-03,
448 # 7.2316381e-03, 5.8351965e-03, 4.7504014e-03, 3.9068753e-03,
449 # 3.2509450e-03, 2.7436667e-03, 2.3536072e-03, 2.0551591e-03,
450 # 1.8269264e-03, 1.6483845e-03, 1.4987780e-03, 1.3553122e-03,
451 # 1.1959351e-03, 1.0052207e-03, 7.8338419e-04, 5.4881055e-04,
452 # 3.3404786e-04, 1.7020660e-04, 6.9197187e-05, 2.0763953e-05,
453 # 4.1724093e-06, 4.2803444e-07, 9.3531305e-09, 3.9817765e-08/
454 data (gridv(iny, 5),iny=1,32)/
455 # 8.7314473e-02, 6.5462234e-02, 4.9470387e-02, 3.7629031e-02,
456 # 2.8860417e-02, 2.2292410e-02, 1.7332180e-02, 1.3567321e-02,
457 # 1.0692431e-02, 8.4897045e-03, 6.8007137e-03, 5.5036549e-03,
458 # 4.5068644e-03, 3.7444546e-03, 3.1638216e-03, 2.7231011e-03,
459 # 2.3880260e-03, 2.1270240e-03, 1.9097372e-03, 1.7046592e-03,
460 # 1.4833082e-03, 1.2275453e-03, 9.4002916e-04, 6.4560015e-04,
461 # 3.8423698e-04, 1.9081605e-04, 7.5273640e-05, 2.1785061e-05,
462 # 4.1829038e-06, 4.0198589e-07, 6.0711799e-09, 3.4349528e-08/
463 data (gridv(iny, 6),iny=1,32)/
464 # 1.3235511e-01, 9.8047579e-02, 7.3187600e-02, 5.4960335e-02,
465 # 4.1600160e-02, 3.1701979e-02, 2.4311750e-02, 1.8768166e-02,
466 # 1.4585527e-02, 1.1418854e-02, 9.0192598e-03, 7.1973844e-03,
467 # 5.8123298e-03, 4.7637364e-03, 3.9726338e-03, 3.3768371e-03,
468 # 2.9266403e-03, 2.5776574e-03, 2.2889023e-03, 2.0198147e-03,
469 # 1.7358250e-03, 1.4167343e-03, 1.0680290e-03, 7.2056798e-04,
470 # 4.2032019e-04, 2.0398263e-04, 7.8308169e-05, 2.1899198e-05,
471 # 4.0241531e-06, 3.6414048e-07, 3.7675413e-09, 2.9031813e-08/
472 data (gridv(iny, 7),iny=1,32)/
473 # 1.9057983e-01, 1.3957407e-01, 1.0297250e-01, 7.6391524e-02,
474 # 5.7105084e-02, 4.2965226e-02, 3.2523923e-02, 2.4779895e-02,
475 # 1.9003972e-02, 1.4680964e-02, 1.1442346e-02, 9.0104755e-03,
476 # 7.1810453e-03, 5.8100245e-03, 4.7852651e-03, 4.0196945e-03,
477 # 3.4450331e-03, 3.0020034e-03, 2.6377816e-03, 2.3022876e-03,
478 # 1.9551214e-03, 1.5745712e-03, 1.1692227e-03, 7.7537535e-04,
479 # 4.4359770e-04, 2.1050710e-04, 7.8557363e-05, 2.0871834e-05,
480 # 3.5743974e-06, 2.9762988e-07, 2.7844229e-09, 2.2782149e-08/
481 data (gridv(iny, 8),iny=1,32)/
482 # 2.6712405e-01, 1.9341146e-01, 1.4102973e-01, 1.0336364e-01,
483 # 7.6305708e-02, 5.6682239e-02, 4.2352056e-02, 3.1846115e-02,
484 # 2.4101065e-02, 1.8371384e-02, 1.4128575e-02, 1.0978416e-02,
485 # 8.6341061e-03, 6.8955860e-03, 5.6086588e-03, 4.6555113e-03,
486 # 3.9452818e-03, 3.4012072e-03, 2.9571084e-03, 2.5527100e-03,
487 # 2.1419401e-03, 1.7020208e-03, 1.2447953e-03, 8.1123628e-04,
488 # 4.5515586e-04, 2.1111600e-04, 7.6224092e-05, 1.8396998e-05,
489 # 2.7018652e-06, 1.8403044e-07, 1.1449565e-09, 1.2394449e-08/
490 data firsttime/.true./
491 save
492 if(firsttime)then
493 firsttime=.false.
494 nent(1)=nny
495 nent(2)=nnz
496 do iny=1,nny
497 ent(iny)=(yv(iny))
498 enddo
499 do inz=1,nnz
500 ent(nny+inz)=(zv(inz))
501 enddo
502 endif
503 arg(1)=(y)
504 arg(2)=(z)
505 tmp=dfint(narg,arg,nent,ent,gridv)
506 ewa_wp_p_1p=tmp
507 return
508 end
509 function ewa_wp_p_1m(y,z)
510 implicit none
511 real*8 ewa_wp_p_1m,y,z
512 integer narg,nny,nnz
513 parameter (narg=2)
514 parameter (nny=32)
515 parameter (nnz=8)
516 integer iny,inz,nent(narg)
517 real*8 tmp,dfint,ymap,zmap
518 real*8 arg(narg),ent(nny+nnz)
519 real*8 yv(nny),zv(nnz),gridv(nny,nnz)
520 logical firsttime
521 external dfint,ymap,zmap
522 data yv/
523 # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01,
524 # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00,
525 # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00,
526 # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00,
527 # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00,
528 # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00,
529 # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01,
530 # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/
531 data zv/
532 # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00,
533 # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/
534 data (gridv(iny, 1),iny=1,32)/
535 # 2.2352243e-07, 1.7777182e-07, 1.4298652e-07, 1.1622085e-07,
536 # 9.5328508e-08, 7.8759840e-08, 6.5499586e-08, 5.4802442e-08,
537 # 4.6136489e-08, 3.9104599e-08, 3.3386967e-08, 2.8725277e-08,
538 # 2.4905274e-08, 2.1731925e-08, 1.9030359e-08, 1.6631364e-08,
539 # 1.4386235e-08, 1.2169804e-08, 9.9111740e-09, 7.6254325e-09,
540 # 5.4230477e-09, 3.4799784e-09, 1.9601523e-09, 9.3903981e-10,
541 # 3.6862928e-10, 1.1297902e-10, 2.5188758e-11, 3.6724956e-12,
542 # 2.9351639e-13, 8.1701272e-15, 7.6912480e-17, 6.8729255e-27/
543 data (gridv(iny, 2),iny=1,32)/
544 # 5.9726888e-03, 4.6455606e-03, 3.6455128e-03, 2.8853282e-03,
545 # 2.3012642e-03, 1.8468005e-03, 1.4906859e-03, 1.2098779e-03,
546 # 9.8764085e-04, 8.1150430e-04, 6.7166904e-04, 5.6040282e-04,
547 # 4.7152850e-04, 3.9983688e-04, 3.4081959e-04, 2.9051542e-04,
548 # 2.4549043e-04, 2.0307075e-04, 1.6177240e-04, 1.2167096e-04,
549 # 8.4473943e-05, 5.2813192e-05, 2.8909650e-05, 1.3417511e-05,
550 # 5.0832560e-06, 1.4959648e-06, 3.1801753e-07, 4.3791104e-08,
551 # 3.2498348e-09, 8.1063886e-11, 6.0039546e-13, 6.3617388e-23/
552 data (gridv(iny, 3),iny=1,32)/
553 # 1.6219214e-02, 1.2379365e-02, 9.5193091e-03, 7.3739795e-03,
554 # 5.7510065e-03, 4.5098861e-03, 3.5553416e-03, 2.8172455e-03,
555 # 2.2446775e-03, 1.7999287e-03, 1.4539007e-03, 1.1841462e-03,
556 # 9.7322588e-04, 8.0691077e-04, 6.7339686e-04, 5.6275965e-04,
557 # 4.6677178e-04, 3.7925827e-04, 2.9674760e-04, 2.1907115e-04,
558 # 1.4910620e-04, 9.1228668e-05, 4.8765008e-05, 2.2043195e-05,
559 # 8.1072382e-06, 2.3064166e-06, 4.7120345e-07, 6.1862016e-08,
560 # 4.3153587e-09, 9.8155908e-11, 5.5917625e-13, 7.2313499e-23/
561 data (gridv(iny, 4),iny=1,32)/
562 # 3.1188696e-02, 2.3420186e-02, 1.7702079e-02, 1.3467734e-02,
563 # 1.0309782e-02, 7.9318460e-03, 6.1325773e-03, 4.7646388e-03,
564 # 3.7215358e-03, 2.9251760e-03, 2.3161962e-03, 1.8496758e-03,
565 # 1.4912341e-03, 1.2139639e-03, 9.9569551e-04, 8.1869337e-04,
566 # 6.6868465e-04, 5.3525022e-04, 4.1252936e-04, 2.9977979e-04,
567 # 2.0061564e-04, 1.2049765e-04, 6.3112103e-05, 2.7890159e-05,
568 # 1.0000143e-05, 2.7633522e-06, 5.4561380e-07, 6.8754820e-08,
569 # 4.5477918e-09, 9.5512862e-11, 4.0175364e-13, 6.6363321e-23/
570 data (gridv(iny, 5),iny=1,32)/
571 # 5.1182299e-02, 3.7889407e-02, 2.8215137e-02, 2.1136435e-02,
572 # 1.5925131e-02, 1.2054633e-02, 9.1677464e-03, 7.0050385e-03,
573 # 5.3803216e-03, 4.1584009e-03, 3.2378903e-03, 2.5431829e-03,
574 # 2.0176932e-03, 1.6173071e-03, 1.3073170e-03, 1.0602661e-03,
575 # 8.5475523e-04, 6.7549247e-04, 5.1388835e-04, 3.6836179e-04,
576 # 2.4290493e-04, 1.4356363e-04, 7.3865824e-05, 3.2002011e-05,
577 # 1.1221536e-05, 3.0227536e-06, 5.7924224e-07, 7.0416470e-08,
578 # 4.4455239e-09, 8.7027993e-11, 2.5174163e-13, 5.7249565e-23/
579 data (gridv(iny, 6),iny=1,32)/
580 # 7.6557895e-02, 5.5955076e-02, 4.1120172e-02, 3.0385490e-02,
581 # 2.2576036e-02, 1.6847439e-02, 1.2629288e-02, 9.5105660e-03,
582 # 7.1985244e-03, 5.4827229e-03, 4.2072308e-03, 3.2573133e-03,
583 # 2.5483598e-03, 2.0155007e-03, 1.6086767e-03, 1.2891809e-03,
584 # 1.0274915e-03, 8.0291084e-04, 6.0382880e-04, 4.2759547e-04,
585 # 2.7827791e-04, 1.6211285e-04, 8.2090171e-05, 3.4938634e-05,
586 # 1.2008139e-05, 3.1607346e-06, 5.8901727e-07, 6.9129330e-08,
587 # 4.1796650e-09, 7.6790396e-11, 1.4801921e-13, 4.8386670e-23/
588 data (gridv(iny, 7),iny=1,32)/
589 # 1.0885701e-01, 7.8595632e-02, 5.7044003e-02, 4.1606207e-02,
590 # 3.0510595e-02, 2.2464186e-02, 1.6611725e-02, 1.2338586e-02,
591 # 9.2105421e-03, 6.9185264e-03, 5.2361582e-03, 3.9989670e-03,
592 # 3.0873318e-03, 2.4109199e-03, 1.9013023e-03, 1.5064199e-03,
593 # 1.1876339e-03, 9.1812852e-04, 6.8290918e-04, 4.7797892e-04,
594 # 3.0715516e-04, 1.7645732e-04, 8.7991353e-05, 3.6807315e-05,
595 # 1.2399813e-05, 3.1850040e-06, 5.7189229e-07, 6.3166456e-08,
596 # 3.5998373e-09, 6.0994275e-11, 1.0798487e-13, 3.7970497e-23/
597 data (gridv(iny, 8),iny=1,32)/
598 # 1.5068353e-01, 1.0749621e-01, 7.7041842e-02, 5.5476031e-02,
599 # 4.0143008e-02, 2.9160969e-02, 2.1271437e-02, 1.5583408e-02,
600 # 1.1472391e-02, 8.4985083e-03, 6.3433700e-03, 4.7785683e-03,
601 # 3.6402566e-03, 2.8065350e-03, 2.1865589e-03, 1.7127763e-03,
602 # 1.3356279e-03, 1.0214490e-03, 7.5140048e-04, 5.1978083e-04,
603 # 3.2977123e-04, 1.8681197e-04, 9.1728471e-05, 3.7697570e-05,
604 # 1.2430821e-05, 3.1016518e-06, 5.2367878e-07, 5.0603141e-08,
605 # 2.5423963e-09, 3.4635376e-11, 4.1186342e-14, 2.0657555e-23/
606 data firsttime/.true./
607 save
608 if(firsttime)then
609 firsttime=.false.
610 nent(1)=nny
611 nent(2)=nnz
612 do iny=1,nny
613 ent(iny)=(yv(iny))
614 enddo
615 do inz=1,nnz
616 ent(nny+inz)=(zv(inz))
617 enddo
618 endif
619 arg(1)=(y)
620 arg(2)=(z)
621 tmp=dfint(narg,arg,nent,ent,gridv)
622 ewa_wp_p_1m=tmp
623 return
624 end
625 function ewa_wp_p_0(y,z)
626 implicit none
627 real*8 ewa_wp_p_0,y,z
628 integer narg,nny,nnz
629 parameter (narg=2)
630 parameter (nny=32)
631 parameter (nnz=8)
632 integer iny,inz,nent(narg)
633 real*8 tmp,dfint,ymap,zmap
634 real*8 arg(narg),ent(nny+nnz)
635 real*8 yv(nny),zv(nnz),gridv(nny,nnz)
636 logical firsttime
637 external dfint,ymap,zmap
638 data yv/
639 # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01,
640 # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00,
641 # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00,
642 # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00,
643 # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00,
644 # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00,
645 # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01,
646 # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/
647 data zv/
648 # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00,
649 # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/
650 data (gridv(iny, 1),iny=1,32)/
651 # 3.5187008e-03, 2.8034859e-03, 2.2605790e-03, 1.8430659e-03,
652 # 1.5186478e-03, 1.2616393e-03, 1.0560624e-03, 8.9012320e-04,
653 # 7.5538508e-04, 6.4582892e-04, 5.5671967e-04, 4.8420795e-04,
654 # 4.2519673e-04, 3.7700036e-04, 3.3717825e-04, 3.0339543e-04,
655 # 2.7329402e-04, 2.4447706e-04, 2.1469168e-04, 1.8222898e-04,
656 # 1.4664818e-04, 1.0943422e-04, 7.3828376e-05, 4.3723959e-05,
657 # 2.1983802e-05, 9.0102753e-06, 2.8448697e-06, 6.3299117e-07,
658 # 8.7487931e-08, 5.2831049e-09, 1.1568847e-10, 1.8415286e-15/
659 data (gridv(iny, 2),iny=1,32)/
660 # 5.2548138e-03, 4.0999760e-03, 3.2295174e-03, 2.5667153e-03,
661 # 2.0584664e-03, 1.6625476e-03, 1.3517402e-03, 1.1060358e-03,
662 # 9.1078460e-04, 7.5538896e-04, 6.3160108e-04, 5.3288902e-04,
663 # 4.5415547e-04, 3.9119341e-04, 3.4038971e-04, 2.9850573e-04,
664 # 2.6252377e-04, 2.2960220e-04, 1.9724634e-04, 1.6373150e-04,
665 # 1.2870167e-04, 9.3622734e-05, 6.1405954e-05, 3.5240336e-05,
666 # 1.7102418e-05, 6.7317976e-06, 2.0267789e-06, 4.2595999e-07,
667 # 5.4725748e-08, 2.9719851e-09, 4.8981810e-11, 9.4455659e-16/
668 data (gridv(iny, 3),iny=1,32)/
669 # 7.1876070e-03, 5.5076672e-03, 4.2546965e-03, 3.3120537e-03,
670 # 2.5990113e-03, 2.0524391e-03, 1.6307512e-03, 1.3034276e-03,
671 # 1.0481689e-03, 8.4882548e-04, 6.9291048e-04, 5.7083971e-04,
672 # 4.7522642e-04, 4.0016654e-04, 3.4076979e-04, 2.9285118e-04,
673 # 2.5271536e-04, 2.1707747e-04, 1.8321030e-04, 1.4933939e-04,
674 # 1.1513883e-04, 8.2005502e-05, 5.2541044e-05, 2.9373325e-05,
675 # 1.3840817e-05, 5.2672006e-06, 1.5241105e-06, 3.0542392e-07,
676 # 3.6915891e-08, 1.8347912e-09, 2.2114402e-11, 5.3685066e-16/
677 data (gridv(iny, 4),iny=1,32)/
678 # 9.2731430e-03, 6.9948236e-03, 5.3144732e-03, 4.0652903e-03,
679 # 3.1328132e-03, 2.4282484e-03, 1.8929862e-03, 1.4841263e-03,
680 # 1.1704474e-03, 9.2943341e-04, 7.4399977e-04, 6.0109301e-04,
681 # 4.9092271e-04, 4.0580385e-04, 3.3953903e-04, 2.8700023e-04,
682 # 2.4383801e-04, 2.0634913e-04, 1.7159359e-04, 1.3773971e-04,
683 # 1.0446314e-04, 7.3071554e-05, 4.5887405e-05, 2.5084061e-05,
684 # 1.1524443e-05, 4.2604502e-06, 1.1914778e-06, 2.2920043e-07,
685 # 2.6286612e-08, 1.2107299e-09, 1.0080946e-11, 3.2845426e-16/
686 data (gridv(iny, 5),iny=1,32)/
687 # 1.1477138e-02, 8.5381747e-03, 6.3939961e-03, 4.8178867e-03,
688 # 3.6556258e-03, 2.7887348e-03, 2.1392407e-03, 1.6500181e-03,
689 # 1.2800074e-03, 9.9975891e-04, 7.8717888e-04, 6.2562654e-04,
690 # 5.0280633e-04, 4.0921770e-04, 3.3736136e-04, 2.8121172e-04,
691 # 2.3579394e-04, 1.9702349e-04, 1.6176823e-04, 1.2814066e-04,
692 # 9.5802895e-05, 6.5966820e-05, 4.0705648e-05, 2.1818543e-05,
693 # 9.8043554e-06, 3.5336308e-06, 9.5911504e-07, 1.7800578e-07,
694 # 1.9496528e-08, 8.4002050e-10, 4.3204403e-12, 2.1251138e-16/
695 data (gridv(iny, 6),iny=1,32)/
696 # 1.3802612e-02, 1.0141026e-02, 7.4971127e-03, 5.5741476e-03,
697 # 4.1720271e-03, 3.1386776e-03, 2.3737894e-03, 1.8049673e-03,
698 # 1.3802137e-03, 1.0625971e-03, 8.2471236e-04, 6.4617450e-04,
699 # 5.1210721e-04, 4.1120934e-04, 3.3467950e-04, 2.7561780e-04,
700 # 2.2846603e-04, 1.8878732e-04, 1.5327653e-04, 1.1999194e-04,
701 # 8.8573452e-05, 6.0136140e-05, 3.6529669e-05, 1.9238247e-05,
702 # 8.4746327e-06, 2.9853000e-06, 7.8837418e-07, 1.4128313e-07,
703 # 1.4820095e-08, 6.0070190e-10, 1.7185758e-12, 1.4369011e-16/
704 data (gridv(iny, 7),iny=1,32)/
705 # 1.6432308e-02, 1.1930946e-02, 8.7133575e-03, 6.3970356e-03,
706 # 4.7264435e-03, 3.5091707e-03, 2.6187361e-03, 1.9645111e-03,
707 # 1.4819077e-03, 1.1254264e-03, 8.6166780e-04, 6.6606423e-04,
708 # 5.2091794e-04, 4.1296488e-04, 3.3203523e-04, 2.7031018e-04,
709 # 2.2163224e-04, 1.8120725e-04, 1.4555330e-04, 1.1266604e-04,
710 # 8.2152609e-05, 5.5024591e-05, 3.2922540e-05, 1.7044970e-05,
711 # 7.3639505e-06, 2.5349841e-06, 6.4817141e-07, 1.0938699e-07,
712 # 1.0789142e-08, 4.0267815e-10, 9.9738412e-13, 9.3965182e-17/
713 data (gridv(iny, 8),iny=1,32)/
714 # 1.9588443e-02, 1.4054534e-02, 1.0140342e-02, 7.3511754e-03,
715 # 5.3617513e-03, 3.9285711e-03, 2.8927241e-03, 2.1409034e-03,
716 # 1.5930991e-03, 1.1934393e-03, 9.0134688e-04, 6.8734040e-04,
717 # 5.3043871e-04, 4.1513075e-04, 3.2970284e-04, 2.6531895e-04,
718 # 2.1516289e-04, 1.7405250e-04, 1.3830950e-04, 1.0585100e-04,
719 # 7.6238215e-05, 5.0368640e-05, 2.9681423e-05, 1.5103253e-05,
720 # 6.3960840e-06, 2.1473293e-06, 5.2444493e-07, 7.7848289e-08,
721 # 6.7448840e-09, 2.0379331e-10, 2.3209743e-13, 4.3818080e-17/
722 data firsttime/.true./
723 save
724 if(firsttime)then
725 firsttime=.false.
726 nent(1)=nny
727 nent(2)=nnz
728 do iny=1,nny
729 ent(iny)=(yv(iny))
730 enddo
731 do inz=1,nnz
732 ent(nny+inz)=(zv(inz))
733 enddo
734 endif
735 arg(1)=(y)
736 arg(2)=(z)
737 tmp=dfint(narg,arg,nent,ent,gridv)
738 ewa_wp_p_0=tmp
739 return
740 end
741 function ewa_wm_p(x,Q2,pol)
742 implicit none
743 real*8 ewa_wm_p
744 real*8 x,Q2
745 integer pol
746 real*8 tmp
747 real*8 y,z
748 real*8 ylow,yupp,zlow,zupp
749 parameter (ylow=-16.1181,yupp=-1e-07)
750 parameter (zlow=4.38683,zupp=13.8155)
751 real*8 ewa_wm_p_1p
752 real*8 ewa_wm_p_1m
753 real*8 ewa_wm_p_0
754 y=log(x)
755 z=0.5*log(Q2)
756 if(pol.eq.1)then
757 tmp=ewa_wm_p_1p(y,z)
758 else if(pol.eq.-1)then
759 tmp=ewa_wm_p_1m(y,z)
760 else
761 tmp=ewa_wm_p_0(y,z)
762 endif
763 ewa_wm_p=tmp/x*y*y
764 end
765 function ewa_wm_p_1p(y,z)
766 implicit none
767 real*8 ewa_wm_p_1p,y,z
768 integer narg,nny,nnz
769 parameter (narg=2)
770 parameter (nny=32)
771 parameter (nnz=8)
772 integer iny,inz,nent(narg)
773 real*8 tmp,dfint,ymap,zmap
774 real*8 arg(narg),ent(nny+nnz)
775 real*8 yv(nny),zv(nnz),gridv(nny,nnz)
776 logical firsttime
777 external dfint,ymap,zmap
778 data yv/
779 # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01,
780 # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00,
781 # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00,
782 # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00,
783 # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00,
784 # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00,
785 # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01,
786 # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/
787 data zv/
788 # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00,
789 # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/
790 data (gridv(iny, 1),iny=1,32)/
791 # 3.5423305e-07, 2.8295336e-07, 2.2903220e-07, 1.8758200e-07,
792 # 1.5559163e-07, 1.3038773e-07, 1.1025515e-07, 9.4027921e-08,
793 # 8.0829168e-08, 7.0061706e-08, 6.1294211e-08, 5.4182560e-08,
794 # 4.8450890e-08, 4.3888687e-08, 4.0319491e-08, 3.7580596e-08,
795 # 3.5520713e-08, 3.3952301e-08, 3.2625426e-08, 3.1187707e-08,
796 # 2.9181849e-08, 2.6154236e-08, 2.1900372e-08, 1.6640020e-08,
797 # 1.1099066e-08, 6.2780040e-09, 2.8842540e-09, 1.0025616e-09,
798 # 2.4219639e-10, 3.2430180e-11, 1.7122412e-12, 4.1237372e-12/
799 data (gridv(iny, 2),iny=1,32)/
800 # 9.6800285e-03, 7.5895745e-03, 6.0144129e-03, 4.8116391e-03,
801 # 3.8906828e-03, 3.1743361e-03, 2.6106310e-03, 2.1637757e-03,
802 # 1.8068388e-03, 1.5208169e-03, 1.2917371e-03, 1.1084546e-03,
803 # 9.6221855e-04, 8.4652524e-04, 7.5595982e-04, 6.8586986e-04,
804 # 6.3206533e-04, 5.8999236e-04, 5.5430903e-04, 5.1815672e-04,
805 # 4.7362998e-04, 4.1384517e-04, 3.3686600e-04, 2.4790947e-04,
806 # 1.5951917e-04, 8.6605399e-05, 3.7927081e-05, 1.2444648e-05,
807 # 2.7972986e-06, 3.3735215e-07, 1.3499999e-08, 3.8170248e-08/
808 data (gridv(iny, 3),iny=1,32)/
809 # 2.6802909e-02, 2.0666858e-02, 1.6084293e-02, 1.2619023e-02,
810 # 9.9957736e-03, 7.9819494e-03, 6.4206742e-03, 5.2026236e-03,
811 # 4.2458765e-03, 3.4918949e-03, 2.8976082e-03, 2.4290655e-03,
812 # 2.0601111e-03, 1.7714145e-03, 1.5472491e-03, 1.3744754e-03,
813 # 1.2417664e-03, 1.1376810e-03, 1.0498817e-03, 9.6384193e-04,
814 # 8.6434504e-04, 7.3958460e-04, 5.8805171e-04, 4.2143198e-04,
815 # 2.6317925e-04, 1.3808501e-04, 5.8100243e-05, 1.8168748e-05,
816 # 3.8451248e-06, 4.2503569e-07, 1.2748665e-08, 4.3387870e-08/
817 data (gridv(iny, 4),iny=1,32)/
818 # 5.2421053e-02, 3.9824965e-02, 3.0512558e-02, 2.3545386e-02,
819 # 1.8330098e-02, 1.4377269e-02, 1.1354532e-02, 9.0302263e-03,
820 # 7.2316381e-03, 5.8351965e-03, 4.7504014e-03, 3.9068753e-03,
821 # 3.2509450e-03, 2.7436667e-03, 2.3536072e-03, 2.0551591e-03,
822 # 1.8269264e-03, 1.6483845e-03, 1.4987780e-03, 1.3553122e-03,
823 # 1.1959351e-03, 1.0052207e-03, 7.8338419e-04, 5.4881055e-04,
824 # 3.3404786e-04, 1.7020660e-04, 6.9197187e-05, 2.0763953e-05,
825 # 4.1724093e-06, 4.2803444e-07, 9.3531305e-09, 3.9817765e-08/
826 data (gridv(iny, 5),iny=1,32)/
827 # 8.7314473e-02, 6.5462234e-02, 4.9470387e-02, 3.7629031e-02,
828 # 2.8860417e-02, 2.2292410e-02, 1.7332180e-02, 1.3567321e-02,
829 # 1.0692431e-02, 8.4897045e-03, 6.8007137e-03, 5.5036549e-03,
830 # 4.5068644e-03, 3.7444546e-03, 3.1638216e-03, 2.7231011e-03,
831 # 2.3880260e-03, 2.1270240e-03, 1.9097372e-03, 1.7046592e-03,
832 # 1.4833082e-03, 1.2275453e-03, 9.4002916e-04, 6.4560015e-04,
833 # 3.8423698e-04, 1.9081605e-04, 7.5273640e-05, 2.1785061e-05,
834 # 4.1829038e-06, 4.0198589e-07, 6.0711799e-09, 3.4349528e-08/
835 data (gridv(iny, 6),iny=1,32)/
836 # 1.3235511e-01, 9.8047579e-02, 7.3187600e-02, 5.4960335e-02,
837 # 4.1600160e-02, 3.1701979e-02, 2.4311750e-02, 1.8768166e-02,
838 # 1.4585527e-02, 1.1418854e-02, 9.0192598e-03, 7.1973844e-03,
839 # 5.8123298e-03, 4.7637364e-03, 3.9726338e-03, 3.3768371e-03,
840 # 2.9266403e-03, 2.5776574e-03, 2.2889023e-03, 2.0198147e-03,
841 # 1.7358250e-03, 1.4167343e-03, 1.0680290e-03, 7.2056798e-04,
842 # 4.2032019e-04, 2.0398263e-04, 7.8308169e-05, 2.1899198e-05,
843 # 4.0241531e-06, 3.6414048e-07, 3.7675413e-09, 2.9031813e-08/
844 data (gridv(iny, 7),iny=1,32)/
845 # 1.9057983e-01, 1.3957407e-01, 1.0297250e-01, 7.6391524e-02,
846 # 5.7105084e-02, 4.2965226e-02, 3.2523923e-02, 2.4779895e-02,
847 # 1.9003972e-02, 1.4680964e-02, 1.1442346e-02, 9.0104755e-03,
848 # 7.1810453e-03, 5.8100245e-03, 4.7852651e-03, 4.0196945e-03,
849 # 3.4450331e-03, 3.0020034e-03, 2.6377816e-03, 2.3022876e-03,
850 # 1.9551214e-03, 1.5745712e-03, 1.1692227e-03, 7.7537535e-04,
851 # 4.4359770e-04, 2.1050710e-04, 7.8557363e-05, 2.0871834e-05,
852 # 3.5743974e-06, 2.9762988e-07, 2.7844229e-09, 2.2782149e-08/
853 data (gridv(iny, 8),iny=1,32)/
854 # 2.6712405e-01, 1.9341146e-01, 1.4102973e-01, 1.0336364e-01,
855 # 7.6305708e-02, 5.6682239e-02, 4.2352056e-02, 3.1846115e-02,
856 # 2.4101065e-02, 1.8371384e-02, 1.4128575e-02, 1.0978416e-02,
857 # 8.6341061e-03, 6.8955860e-03, 5.6086588e-03, 4.6555113e-03,
858 # 3.9452818e-03, 3.4012072e-03, 2.9571084e-03, 2.5527100e-03,
859 # 2.1419401e-03, 1.7020208e-03, 1.2447953e-03, 8.1123628e-04,
860 # 4.5515586e-04, 2.1111600e-04, 7.6224092e-05, 1.8396998e-05,
861 # 2.7018652e-06, 1.8403044e-07, 1.1449565e-09, 1.2394449e-08/
862 data firsttime/.true./
863 save
864 if(firsttime)then
865 firsttime=.false.
866 nent(1)=nny
867 nent(2)=nnz
868 do iny=1,nny
869 ent(iny)=(yv(iny))
870 enddo
871 do inz=1,nnz
872 ent(nny+inz)=(zv(inz))
873 enddo
874 endif
875 arg(1)=(y)
876 arg(2)=(z)
877 tmp=dfint(narg,arg,nent,ent,gridv)
878 ewa_wm_p_1p=tmp
879 return
880 end
881 function ewa_wm_p_1m(y,z)
882 implicit none
883 real*8 ewa_wm_p_1m,y,z
884 integer narg,nny,nnz
885 parameter (narg=2)
886 parameter (nny=32)
887 parameter (nnz=8)
888 integer iny,inz,nent(narg)
889 real*8 tmp,dfint,ymap,zmap
890 real*8 arg(narg),ent(nny+nnz)
891 real*8 yv(nny),zv(nnz),gridv(nny,nnz)
892 logical firsttime
893 external dfint,ymap,zmap
894 data yv/
895 # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01,
896 # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00,
897 # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00,
898 # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00,
899 # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00,
900 # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00,
901 # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01,
902 # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/
903 data zv/
904 # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00,
905 # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/
906 data (gridv(iny, 1),iny=1,32)/
907 # 2.2352243e-07, 1.7777182e-07, 1.4298652e-07, 1.1622085e-07,
908 # 9.5328508e-08, 7.8759840e-08, 6.5499586e-08, 5.4802442e-08,
909 # 4.6136489e-08, 3.9104599e-08, 3.3386967e-08, 2.8725277e-08,
910 # 2.4905274e-08, 2.1731925e-08, 1.9030359e-08, 1.6631364e-08,
911 # 1.4386235e-08, 1.2169804e-08, 9.9111740e-09, 7.6254325e-09,
912 # 5.4230477e-09, 3.4799784e-09, 1.9601523e-09, 9.3903981e-10,
913 # 3.6862928e-10, 1.1297902e-10, 2.5188758e-11, 3.6724956e-12,
914 # 2.9351639e-13, 8.1701272e-15, 7.6912480e-17, 6.8729255e-27/
915 data (gridv(iny, 2),iny=1,32)/
916 # 5.9726888e-03, 4.6455606e-03, 3.6455128e-03, 2.8853282e-03,
917 # 2.3012642e-03, 1.8468005e-03, 1.4906859e-03, 1.2098779e-03,
918 # 9.8764085e-04, 8.1150430e-04, 6.7166904e-04, 5.6040282e-04,
919 # 4.7152850e-04, 3.9983688e-04, 3.4081959e-04, 2.9051542e-04,
920 # 2.4549043e-04, 2.0307075e-04, 1.6177240e-04, 1.2167096e-04,
921 # 8.4473943e-05, 5.2813192e-05, 2.8909650e-05, 1.3417511e-05,
922 # 5.0832560e-06, 1.4959648e-06, 3.1801753e-07, 4.3791104e-08,
923 # 3.2498348e-09, 8.1063886e-11, 6.0039546e-13, 6.3617388e-23/
924 data (gridv(iny, 3),iny=1,32)/
925 # 1.6219214e-02, 1.2379365e-02, 9.5193091e-03, 7.3739795e-03,
926 # 5.7510065e-03, 4.5098861e-03, 3.5553416e-03, 2.8172455e-03,
927 # 2.2446775e-03, 1.7999287e-03, 1.4539007e-03, 1.1841462e-03,
928 # 9.7322588e-04, 8.0691077e-04, 6.7339686e-04, 5.6275965e-04,
929 # 4.6677178e-04, 3.7925827e-04, 2.9674760e-04, 2.1907115e-04,
930 # 1.4910620e-04, 9.1228668e-05, 4.8765008e-05, 2.2043195e-05,
931 # 8.1072382e-06, 2.3064166e-06, 4.7120345e-07, 6.1862016e-08,
932 # 4.3153587e-09, 9.8155908e-11, 5.5917625e-13, 7.2313499e-23/
933 data (gridv(iny, 4),iny=1,32)/
934 # 3.1188696e-02, 2.3420186e-02, 1.7702079e-02, 1.3467734e-02,
935 # 1.0309782e-02, 7.9318460e-03, 6.1325773e-03, 4.7646388e-03,
936 # 3.7215358e-03, 2.9251760e-03, 2.3161962e-03, 1.8496758e-03,
937 # 1.4912341e-03, 1.2139639e-03, 9.9569551e-04, 8.1869337e-04,
938 # 6.6868465e-04, 5.3525022e-04, 4.1252936e-04, 2.9977979e-04,
939 # 2.0061564e-04, 1.2049765e-04, 6.3112103e-05, 2.7890159e-05,
940 # 1.0000143e-05, 2.7633522e-06, 5.4561380e-07, 6.8754820e-08,
941 # 4.5477918e-09, 9.5512862e-11, 4.0175364e-13, 6.6363321e-23/
942 data (gridv(iny, 5),iny=1,32)/
943 # 5.1182299e-02, 3.7889407e-02, 2.8215137e-02, 2.1136435e-02,
944 # 1.5925131e-02, 1.2054633e-02, 9.1677464e-03, 7.0050385e-03,
945 # 5.3803216e-03, 4.1584009e-03, 3.2378903e-03, 2.5431829e-03,
946 # 2.0176932e-03, 1.6173071e-03, 1.3073170e-03, 1.0602661e-03,
947 # 8.5475523e-04, 6.7549247e-04, 5.1388835e-04, 3.6836179e-04,
948 # 2.4290493e-04, 1.4356363e-04, 7.3865824e-05, 3.2002011e-05,
949 # 1.1221536e-05, 3.0227536e-06, 5.7924224e-07, 7.0416470e-08,
950 # 4.4455239e-09, 8.7027993e-11, 2.5174163e-13, 5.7249565e-23/
951 data (gridv(iny, 6),iny=1,32)/
952 # 7.6557895e-02, 5.5955076e-02, 4.1120172e-02, 3.0385490e-02,
953 # 2.2576036e-02, 1.6847439e-02, 1.2629288e-02, 9.5105660e-03,
954 # 7.1985244e-03, 5.4827229e-03, 4.2072308e-03, 3.2573133e-03,
955 # 2.5483598e-03, 2.0155007e-03, 1.6086767e-03, 1.2891809e-03,
956 # 1.0274915e-03, 8.0291084e-04, 6.0382880e-04, 4.2759547e-04,
957 # 2.7827791e-04, 1.6211285e-04, 8.2090171e-05, 3.4938634e-05,
958 # 1.2008139e-05, 3.1607346e-06, 5.8901727e-07, 6.9129330e-08,
959 # 4.1796650e-09, 7.6790396e-11, 1.4801921e-13, 4.8386670e-23/
960 data (gridv(iny, 7),iny=1,32)/
961 # 1.0885701e-01, 7.8595632e-02, 5.7044003e-02, 4.1606207e-02,
962 # 3.0510595e-02, 2.2464186e-02, 1.6611725e-02, 1.2338586e-02,
963 # 9.2105421e-03, 6.9185264e-03, 5.2361582e-03, 3.9989670e-03,
964 # 3.0873318e-03, 2.4109199e-03, 1.9013023e-03, 1.5064199e-03,
965 # 1.1876339e-03, 9.1812852e-04, 6.8290918e-04, 4.7797892e-04,
966 # 3.0715516e-04, 1.7645732e-04, 8.7991353e-05, 3.6807315e-05,
967 # 1.2399813e-05, 3.1850040e-06, 5.7189229e-07, 6.3166456e-08,
968 # 3.5998373e-09, 6.0994275e-11, 1.0798487e-13, 3.7970497e-23/
969 data (gridv(iny, 8),iny=1,32)/
970 # 1.5068353e-01, 1.0749621e-01, 7.7041842e-02, 5.5476031e-02,
971 # 4.0143008e-02, 2.9160969e-02, 2.1271437e-02, 1.5583408e-02,
972 # 1.1472391e-02, 8.4985083e-03, 6.3433700e-03, 4.7785683e-03,
973 # 3.6402566e-03, 2.8065350e-03, 2.1865589e-03, 1.7127763e-03,
974 # 1.3356279e-03, 1.0214490e-03, 7.5140048e-04, 5.1978083e-04,
975 # 3.2977123e-04, 1.8681197e-04, 9.1728471e-05, 3.7697570e-05,
976 # 1.2430821e-05, 3.1016518e-06, 5.2367878e-07, 5.0603141e-08,
977 # 2.5423963e-09, 3.4635376e-11, 4.1186342e-14, 2.0657555e-23/
978 data firsttime/.true./
979 save
980 if(firsttime)then
981 firsttime=.false.
982 nent(1)=nny
983 nent(2)=nnz
984 do iny=1,nny
985 ent(iny)=(yv(iny))
986 enddo
987 do inz=1,nnz
988 ent(nny+inz)=(zv(inz))
989 enddo
990 endif
991 arg(1)=(y)
992 arg(2)=(z)
993 tmp=dfint(narg,arg,nent,ent,gridv)
994 ewa_wm_p_1m=tmp
995 return
996 end
997 function ewa_wm_p_0(y,z)
998 implicit none
999 real*8 ewa_wm_p_0,y,z
1000 integer narg,nny,nnz
1001 parameter (narg=2)
1002 parameter (nny=32)
1003 parameter (nnz=8)
1004 integer iny,inz,nent(narg)
1005 real*8 tmp,dfint,ymap,zmap
1006 real*8 arg(narg),ent(nny+nnz)
1007 real*8 yv(nny),zv(nnz),gridv(nny,nnz)
1008 logical firsttime
1009 external dfint,ymap,zmap
1010 data yv/
1011 # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01,
1012 # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00,
1013 # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00,
1014 # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00,
1015 # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00,
1016 # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00,
1017 # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01,
1018 # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/
1019 data zv/
1020 # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00,
1021 # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/
1022 data (gridv(iny, 1),iny=1,32)/
1023 # 3.5187008e-03, 2.8034859e-03, 2.2605790e-03, 1.8430659e-03,
1024 # 1.5186478e-03, 1.2616393e-03, 1.0560624e-03, 8.9012320e-04,
1025 # 7.5538508e-04, 6.4582892e-04, 5.5671967e-04, 4.8420795e-04,
1026 # 4.2519673e-04, 3.7700036e-04, 3.3717825e-04, 3.0339543e-04,
1027 # 2.7329402e-04, 2.4447706e-04, 2.1469168e-04, 1.8222898e-04,
1028 # 1.4664818e-04, 1.0943422e-04, 7.3828376e-05, 4.3723959e-05,
1029 # 2.1983802e-05, 9.0102753e-06, 2.8448697e-06, 6.3299117e-07,
1030 # 8.7487931e-08, 5.2831049e-09, 1.1568847e-10, 1.8415286e-15/
1031 data (gridv(iny, 2),iny=1,32)/
1032 # 5.2548138e-03, 4.0999760e-03, 3.2295174e-03, 2.5667153e-03,
1033 # 2.0584664e-03, 1.6625476e-03, 1.3517402e-03, 1.1060358e-03,
1034 # 9.1078460e-04, 7.5538896e-04, 6.3160108e-04, 5.3288902e-04,
1035 # 4.5415547e-04, 3.9119341e-04, 3.4038971e-04, 2.9850573e-04,
1036 # 2.6252377e-04, 2.2960220e-04, 1.9724634e-04, 1.6373150e-04,
1037 # 1.2870167e-04, 9.3622734e-05, 6.1405954e-05, 3.5240336e-05,
1038 # 1.7102418e-05, 6.7317976e-06, 2.0267789e-06, 4.2595999e-07,
1039 # 5.4725748e-08, 2.9719851e-09, 4.8981810e-11, 9.4455659e-16/
1040 data (gridv(iny, 3),iny=1,32)/
1041 # 7.1876070e-03, 5.5076672e-03, 4.2546965e-03, 3.3120537e-03,
1042 # 2.5990113e-03, 2.0524391e-03, 1.6307512e-03, 1.3034276e-03,
1043 # 1.0481689e-03, 8.4882548e-04, 6.9291048e-04, 5.7083971e-04,
1044 # 4.7522642e-04, 4.0016654e-04, 3.4076979e-04, 2.9285118e-04,
1045 # 2.5271536e-04, 2.1707747e-04, 1.8321030e-04, 1.4933939e-04,
1046 # 1.1513883e-04, 8.2005502e-05, 5.2541044e-05, 2.9373325e-05,
1047 # 1.3840817e-05, 5.2672006e-06, 1.5241105e-06, 3.0542392e-07,
1048 # 3.6915891e-08, 1.8347912e-09, 2.2114402e-11, 5.3685066e-16/
1049 data (gridv(iny, 4),iny=1,32)/
1050 # 9.2731430e-03, 6.9948236e-03, 5.3144732e-03, 4.0652903e-03,
1051 # 3.1328132e-03, 2.4282484e-03, 1.8929862e-03, 1.4841263e-03,
1052 # 1.1704474e-03, 9.2943341e-04, 7.4399977e-04, 6.0109301e-04,
1053 # 4.9092271e-04, 4.0580385e-04, 3.3953903e-04, 2.8700023e-04,
1054 # 2.4383801e-04, 2.0634913e-04, 1.7159359e-04, 1.3773971e-04,
1055 # 1.0446314e-04, 7.3071554e-05, 4.5887405e-05, 2.5084061e-05,
1056 # 1.1524443e-05, 4.2604502e-06, 1.1914778e-06, 2.2920043e-07,
1057 # 2.6286612e-08, 1.2107299e-09, 1.0080946e-11, 3.2845426e-16/
1058 data (gridv(iny, 5),iny=1,32)/
1059 # 1.1477138e-02, 8.5381747e-03, 6.3939961e-03, 4.8178867e-03,
1060 # 3.6556258e-03, 2.7887348e-03, 2.1392407e-03, 1.6500181e-03,
1061 # 1.2800074e-03, 9.9975891e-04, 7.8717888e-04, 6.2562654e-04,
1062 # 5.0280633e-04, 4.0921770e-04, 3.3736136e-04, 2.8121172e-04,
1063 # 2.3579394e-04, 1.9702349e-04, 1.6176823e-04, 1.2814066e-04,
1064 # 9.5802895e-05, 6.5966820e-05, 4.0705648e-05, 2.1818543e-05,
1065 # 9.8043554e-06, 3.5336308e-06, 9.5911504e-07, 1.7800578e-07,
1066 # 1.9496528e-08, 8.4002050e-10, 4.3204403e-12, 2.1251138e-16/
1067 data (gridv(iny, 6),iny=1,32)/
1068 # 1.3802612e-02, 1.0141026e-02, 7.4971127e-03, 5.5741476e-03,
1069 # 4.1720271e-03, 3.1386776e-03, 2.3737894e-03, 1.8049673e-03,
1070 # 1.3802137e-03, 1.0625971e-03, 8.2471236e-04, 6.4617450e-04,
1071 # 5.1210721e-04, 4.1120934e-04, 3.3467950e-04, 2.7561780e-04,
1072 # 2.2846603e-04, 1.8878732e-04, 1.5327653e-04, 1.1999194e-04,
1073 # 8.8573452e-05, 6.0136140e-05, 3.6529669e-05, 1.9238247e-05,
1074 # 8.4746327e-06, 2.9853000e-06, 7.8837418e-07, 1.4128313e-07,
1075 # 1.4820095e-08, 6.0070190e-10, 1.7185758e-12, 1.4369011e-16/
1076 data (gridv(iny, 7),iny=1,32)/
1077 # 1.6432308e-02, 1.1930946e-02, 8.7133575e-03, 6.3970356e-03,
1078 # 4.7264435e-03, 3.5091707e-03, 2.6187361e-03, 1.9645111e-03,
1079 # 1.4819077e-03, 1.1254264e-03, 8.6166780e-04, 6.6606423e-04,
1080 # 5.2091794e-04, 4.1296488e-04, 3.3203523e-04, 2.7031018e-04,
1081 # 2.2163224e-04, 1.8120725e-04, 1.4555330e-04, 1.1266604e-04,
1082 # 8.2152609e-05, 5.5024591e-05, 3.2922540e-05, 1.7044970e-05,
1083 # 7.3639505e-06, 2.5349841e-06, 6.4817141e-07, 1.0938699e-07,
1084 # 1.0789142e-08, 4.0267815e-10, 9.9738412e-13, 9.3965182e-17/
1085 data (gridv(iny, 8),iny=1,32)/
1086 # 1.9588443e-02, 1.4054534e-02, 1.0140342e-02, 7.3511754e-03,
1087 # 5.3617513e-03, 3.9285711e-03, 2.8927241e-03, 2.1409034e-03,
1088 # 1.5930991e-03, 1.1934393e-03, 9.0134688e-04, 6.8734040e-04,
1089 # 5.3043871e-04, 4.1513075e-04, 3.2970284e-04, 2.6531895e-04,
1090 # 2.1516289e-04, 1.7405250e-04, 1.3830950e-04, 1.0585100e-04,
1091 # 7.6238215e-05, 5.0368640e-05, 2.9681423e-05, 1.5103253e-05,
1092 # 6.3960840e-06, 2.1473293e-06, 5.2444493e-07, 7.7848289e-08,
1093 # 6.7448840e-09, 2.0379331e-10, 2.3209743e-13, 4.3818080e-17/
1094 data firsttime/.true./
1095 save
1096 if(firsttime)then
1097 firsttime=.false.
1098 nent(1)=nny
1099 nent(2)=nnz
1100 do iny=1,nny
1101 ent(iny)=(yv(iny))
1102 enddo
1103 do inz=1,nnz
1104 ent(nny+inz)=(zv(inz))
1105 enddo
1106 endif
1107 arg(1)=(y)
1108 arg(2)=(z)
1109 tmp=dfint(narg,arg,nent,ent,gridv)
1110 ewa_wm_p_0=tmp
1111 return
1112 end
1113 function ewa_z_p(x,Q2,pol)
1114 implicit none
1115 real*8 ewa_z_p
1116 real*8 x,Q2
1117 integer pol
1118 real*8 tmp
1119 real*8 y,z
1120 real*8 ylow,yupp,zlow,zupp
1121 parameter (ylow=-16.1181,yupp=-1e-07)
1122 parameter (zlow=4.38683,zupp=13.8155)
1123 real*8 ewa_z_p_1p
1124 real*8 ewa_z_p_1m
1125 real*8 ewa_z_p_0
1126 y=log(x)
1127 z=0.5*log(Q2)
1128 if(pol.eq.1)then
1129 tmp=ewa_z_p_1p(y,z)
1130 else if(pol.eq.-1)then
1131 tmp=ewa_z_p_1m(y,z)
1132 else
1133 tmp=ewa_z_p_0(y,z)
1134 endif
1135 ewa_z_p=tmp/x*y*y
1136 end
1137 function ewa_z_p_1p(y,z)
1138 implicit none
1139 real*8 ewa_z_p_1p,y,z
1140 integer narg,nny,nnz
1141 parameter (narg=2)
1142 parameter (nny=32)
1143 parameter (nnz=8)
1144 integer iny,inz,nent(narg)
1145 real*8 tmp,dfint,ymap,zmap
1146 real*8 arg(narg),ent(nny+nnz)
1147 real*8 yv(nny),zv(nnz),gridv(nny,nnz)
1148 logical firsttime
1149 external dfint,ymap,zmap
1150 data yv/
1151 # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01,
1152 # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00,
1153 # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00,
1154 # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00,
1155 # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00,
1156 # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00,
1157 # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01,
1158 # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/
1159 data zv/
1160 # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00,
1161 # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/
1162 data (gridv(iny, 1),iny=1,32)/
1163 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1164 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1165 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1166 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1167 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1168 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1169 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1170 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00/
1171 data (gridv(iny, 2),iny=1,32)/
1172 # 3.7303045e-03, 2.9227921e-03, 2.3141955e-03, 1.8493581e-03,
1173 # 1.4933843e-03, 1.2162782e-03, 9.9810630e-04, 8.2501787e-04,
1174 # 6.8659282e-04, 5.7544120e-04, 4.8609674e-04, 4.1418784e-04,
1175 # 3.5626496e-04, 3.0973606e-04, 2.7244727e-04, 2.4257706e-04,
1176 # 2.1854792e-04, 1.9876081e-04, 1.8151373e-04, 1.6480475e-04,
1177 # 1.4652391e-04, 1.2495404e-04, 9.9767621e-05, 7.2413235e-05,
1178 # 4.6189116e-05, 2.4986033e-05, 1.0981613e-05, 3.6318686e-06,
1179 # 8.2837802e-07, 1.0232602e-07, 4.9850666e-09, 1.2419766e-08/
1180 data (gridv(iny, 3),iny=1,32)/
1181 # 1.0860874e-02, 8.3686491e-03, 6.5072730e-03, 5.1000356e-03,
1182 # 4.0344753e-03, 3.2163074e-03, 2.5819036e-03, 2.0867745e-03,
1183 # 1.6975997e-03, 1.3904974e-03, 1.1478197e-03, 9.5566048e-04,
1184 # 8.0324203e-04, 6.8259459e-04, 5.8722232e-04, 5.1178459e-04,
1185 # 4.5182361e-04, 4.0308935e-04, 3.6137523e-04, 3.2211460e-04,
1186 # 2.8093250e-04, 2.3463440e-04, 1.8303741e-04, 1.2940501e-04,
1187 # 8.0128195e-05, 4.1902153e-05, 1.7698447e-05, 5.5786779e-06,
1188 # 1.1982518e-06, 1.3567906e-07, 5.1862975e-09, 1.4921624e-08/
1189 data (gridv(iny, 4),iny=1,32)/
1190 # 2.1582709e-02, 1.6384815e-02, 1.2542453e-02, 9.6686760e-03,
1191 # 7.5174482e-03, 5.8869725e-03, 4.6402349e-03, 3.6814614e-03,
1192 # 2.9392736e-03, 2.3625196e-03, 1.9136197e-03, 1.5633551e-03,
1193 # 1.2894368e-03, 1.0755569e-03, 9.0867962e-04, 7.7828223e-04,
1194 # 6.7581905e-04, 5.9350250e-04, 5.2402918e-04, 4.5996420e-04,
1195 # 3.9470912e-04, 3.2387169e-04, 2.4768512e-04, 1.7121604e-04,
1196 # 1.0335642e-04, 5.2501923e-05, 2.1430744e-05, 6.4822592e-06,
1197 # 1.3222258e-06, 1.3895999e-07, 4.1233808e-09, 1.3983723e-08/
1198 data (gridv(iny, 5),iny=1,32)/
1199 # 3.6225205e-02, 2.7139223e-02, 2.0491247e-02, 1.5570792e-02,
1200 # 1.1927494e-02, 9.1990020e-03, 7.1389947e-03, 5.5752406e-03,
1201 # 4.3810786e-03, 3.4655687e-03, 2.7625306e-03, 2.2211128e-03,
1202 # 1.8030325e-03, 1.4806433e-03, 1.2320561e-03, 1.0399620e-03,
1203 # 8.9058578e-04, 7.7179147e-04, 6.7267988e-04, 5.8270496e-04,
1204 # 4.9308080e-04, 3.9840200e-04, 2.9945131e-04, 2.0297089e-04,
1205 # 1.1982930e-04, 5.9340172e-05, 2.3506889e-05, 6.8579981e-06,
1206 # 1.3368364e-06, 1.3162902e-07, 2.9711215e-09, 1.2215759e-08/
1207 data (gridv(iny, 6),iny=1,32)/
1208 # 5.5154342e-02, 4.0827860e-02, 3.0449006e-02, 2.2843096e-02,
1209 # 1.7269263e-02, 1.3140804e-02, 1.0059401e-02, 7.7483419e-03,
1210 # 6.0046554e-03, 4.6839966e-03, 3.6820525e-03, 2.9195345e-03,
1211 # 2.3374414e-03, 1.8936267e-03, 1.5550949e-03, 1.2961420e-03,
1212 # 1.0966733e-03, 9.3947224e-04, 8.0960033e-04, 6.9320130e-04,
1213 # 5.7933366e-04, 4.6170562e-04, 3.4169800e-04, 2.2756193e-04,
1214 # 1.3169713e-04, 6.3745564e-05, 2.4577867e-05, 6.9293186e-06,
1215 # 1.2930488e-06, 1.1992460e-07, 2.0948206e-09, 1.0413998e-08/
1216 data (gridv(iny, 7),iny=1,32)/
1217 # 7.9641332e-02, 5.8283390e-02, 4.2961224e-02, 3.1840880e-02,
1218 # 2.3773251e-02, 1.7861019e-02, 1.3496990e-02, 1.0261222e-02,
1219 # 7.8482212e-03, 6.0415388e-03, 4.6867971e-03, 3.6676358e-03,
1220 # 2.8981380e-03, 2.3178462e-03, 1.8798546e-03, 1.5481330e-03,
1221 # 1.2949777e-03, 1.0972312e-03, 9.3539626e-04, 7.9205439e-04,
1222 # 6.5410473e-04, 5.1445082e-04, 3.7509234e-04, 2.4557633e-04,
1223 # 1.3941666e-04, 6.6000870e-05, 2.4739779e-05, 6.6282306e-06,
1224 # 1.1538853e-06, 9.8657074e-08, 1.5984130e-09, 8.2433190e-09/
1225 data (gridv(iny, 8),iny=1,32)/
1226 # 1.1184163e-01, 8.0917333e-02, 5.8950236e-02, 4.3164542e-02,
1227 # 3.1828151e-02, 2.3609789e-02, 1.7611453e-02, 1.3215123e-02,
1228 # 9.9748771e-03, 7.5776696e-03, 5.8010863e-03, 4.4800093e-03,
1229 # 3.4937519e-03, 2.7582893e-03, 2.2091448e-03, 1.7974773e-03,
1230 # 1.4863368e-03, 1.2455380e-03, 1.0503765e-03, 8.7953603e-04,
1231 # 7.1769738e-04, 5.5700142e-04, 4.0005545e-04, 2.5742663e-04,
1232 # 1.4335613e-04, 6.6352481e-05, 2.4061846e-05, 5.8581041e-06,
1233 # 8.7686172e-07, 6.1694293e-08, 7.6078967e-10, 4.5762876e-09/
1234 data firsttime/.true./
1235 save
1236 if(firsttime)then
1237 firsttime=.false.
1238 nent(1)=nny
1239 nent(2)=nnz
1240 do iny=1,nny
1241 ent(iny)=(yv(iny))
1242 enddo
1243 do inz=1,nnz
1244 ent(nny+inz)=(zv(inz))
1245 enddo
1246 endif
1247 arg(1)=(y)
1248 arg(2)=(z)
1249 tmp=dfint(narg,arg,nent,ent,gridv)
1250 ewa_z_p_1p=tmp
1251 return
1252 end
1253 function ewa_z_p_1m(y,z)
1254 implicit none
1255 real*8 ewa_z_p_1m,y,z
1256 integer narg,nny,nnz
1257 parameter (narg=2)
1258 parameter (nny=32)
1259 parameter (nnz=8)
1260 integer iny,inz,nent(narg)
1261 real*8 tmp,dfint,ymap,zmap
1262 real*8 arg(narg),ent(nny+nnz)
1263 real*8 yv(nny),zv(nnz),gridv(nny,nnz)
1264 logical firsttime
1265 external dfint,ymap,zmap
1266 data yv/
1267 # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01,
1268 # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00,
1269 # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00,
1270 # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00,
1271 # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00,
1272 # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00,
1273 # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01,
1274 # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/
1275 data zv/
1276 # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00,
1277 # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/
1278 data (gridv(iny, 1),iny=1,32)/
1279 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1280 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1281 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1282 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1283 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1284 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1285 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1286 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00/
1287 data (gridv(iny, 2),iny=1,32)/
1288 # 2.4722465e-03, 1.9238378e-03, 1.5105106e-03, 1.1960749e-03,
1289 # 9.5450636e-04, 7.6644980e-04, 6.1891326e-04, 5.0238454e-04,
1290 # 4.0993066e-04, 3.3642652e-04, 2.7788916e-04, 2.3119738e-04,
1291 # 1.9389505e-04, 1.6397539e-04, 1.3974473e-04, 1.1973970e-04,
1292 # 1.0268876e-04, 8.7531986e-05, 7.3507411e-05, 6.0200203e-05,
1293 # 4.7561978e-05, 3.5825675e-05, 2.5363959e-05, 1.6554077e-05,
1294 # 9.6919422e-06, 4.9066425e-06, 2.0356874e-06, 6.4136541e-07,
1295 # 1.3870147e-07, 1.5934953e-08, 3.8134239e-10, 1.5583767e-09/
1296 data (gridv(iny, 3),iny=1,32)/
1297 # 7.0798337e-03, 5.4081649e-03, 4.1625029e-03, 3.2271346e-03,
1298 # 2.5192925e-03, 1.9775657e-03, 1.5603254e-03, 1.2371174e-03,
1299 # 9.8575176e-04, 7.8989545e-04, 6.3703740e-04, 5.1756292e-04,
1300 # 4.2407586e-04, 3.5069124e-04, 2.9260099e-04, 2.4581210e-04,
1301 # 2.0699146e-04, 1.7346123e-04, 1.4331114e-04, 1.1548538e-04,
1302 # 8.9728440e-05, 6.6379120e-05, 4.6055769e-05, 2.9366897e-05,
1303 # 1.6731521e-05, 8.2008648e-06, 3.2726090e-06, 9.8342622e-07,
1304 # 2.0024596e-07, 2.1085367e-08, 3.1115922e-10, 1.8414779e-09/
1305 data (gridv(iny, 4),iny=1,32)/
1306 # 1.3868555e-02, 1.0425215e-02, 7.8892735e-03, 6.0089146e-03,
1307 # 4.6057219e-03, 3.5480566e-03, 2.7464613e-03, 2.1359653e-03,
1308 # 1.6689984e-03, 1.3114613e-03, 1.0371878e-03, 8.2648300e-04,
1309 # 6.6446546e-04, 5.3953412e-04, 4.4244464e-04, 3.6574043e-04,
1310 # 3.0339116e-04, 2.5068534e-04, 2.0431482e-04, 1.6241791e-04,
1311 # 1.2441356e-04, 9.0628951e-05, 6.1799132e-05, 3.8623433e-05,
1312 # 2.1495349e-05, 1.0246602e-05, 3.9545153e-06, 1.1410065e-06,
1313 # 2.2060684e-07, 2.1556121e-08, 1.5852146e-10, 1.6987942e-09/
1314 data (gridv(iny, 5),iny=1,32)/
1315 # 2.2986936e-02, 1.7037927e-02, 1.2705430e-02, 9.5306823e-03,
1316 # 7.1915567e-03, 5.4521722e-03, 4.1524897e-03, 3.1768102e-03,
1317 # 2.4418608e-03, 1.8873270e-03, 1.4682359e-03, 1.1510039e-03,
1318 # 9.1077042e-04, 7.2826552e-04, 5.8860114e-04, 4.7999193e-04,
1319 # 3.9314928e-04, 3.2098035e-04, 2.5857717e-04, 2.0315066e-04,
1320 # 1.5370454e-04, 1.1046511e-04, 7.4187115e-05, 4.5556559e-05,
1321 # 2.4836768e-05, 1.1553471e-05, 4.3299295e-06, 1.2055759e-06,
1322 # 2.2273199e-07, 2.0385221e-08, 2.5365287e-11, 1.4614457e-09/
1323 data (gridv(iny, 6),iny=1,32)/
1324 # 3.4607710e-02, 2.5329231e-02, 1.8643112e-02, 1.3797244e-02,
1325 # 1.0268406e-02, 7.6763540e-03, 5.7640388e-03, 4.3470540e-03,
1326 # 3.2936565e-03, 2.5093254e-03, 1.9243527e-03, 1.4874209e-03,
1327 # 1.1607380e-03, 9.1588915e-04, 7.3097517e-04, 5.8910398e-04,
1328 # 4.7722044e-04, 3.8555267e-04, 3.0742488e-04, 2.3902283e-04,
1329 # 1.7886336e-04, 1.2700213e-04, 8.4135064e-05, 5.0853622e-05,
1330 # 2.7216172e-05, 1.2384960e-05, 4.5198910e-06, 1.2164900e-06,
1331 # 2.1505007e-07, 1.8520572e-08, -5.3697542e-11, 1.2296759e-09/
1332 data (gridv(iny, 7),iny=1,32)/
1333 # 4.9445135e-02, 3.5757010e-02, 2.5994493e-02, 1.8993674e-02,
1334 # 1.3952679e-02, 1.0293089e-02, 7.6258392e-03, 5.6738387e-03,
1335 # 4.2408262e-03, 3.1872474e-03, 2.4113098e-03, 1.8389250e-03,
1336 # 1.4163575e-03, 1.1035738e-03, 8.7029523e-04, 6.9356210e-04,
1337 # 5.5597102e-04, 4.4470895e-04, 3.5113742e-04, 2.7029621e-04,
1338 # 2.0013417e-04, 1.4045648e-04, 9.1828197e-05, 5.4657353e-05,
1339 # 2.8729898e-05, 1.2794546e-05, 4.5409281e-06, 1.1613608e-06,
1340 # 1.9109911e-07, 1.5092145e-08, -5.2811872e-11, 9.5507973e-10/
1341 data (gridv(iny, 8),iny=1,32)/
1342 # 6.8709761e-02, 4.9096606e-02, 3.5253307e-02, 2.5432125e-02,
1343 # 1.8440272e-02, 1.3424173e-02, 9.8127739e-03, 7.2026791e-03,
1344 # 5.3106334e-03, 3.9371633e-03, 2.9384004e-03, 2.2109274e-03,
1345 # 1.6805250e-03, 1.2928794e-03, 1.0073789e-03, 7.9380317e-04,
1346 # 6.2964750e-04, 4.9861161e-04, 3.8984865e-04, 2.9710009e-04,
1347 # 2.1764892e-04, 1.5095775e-04, 9.7391148e-05, 5.7072702e-05,
1348 # 2.9454329e-05, 1.2827026e-05, 4.4049387e-06, 1.0235568e-06,
1349 # 1.4395353e-07, 9.1928386e-09, -5.1047909e-11, 4.9741292e-10/
1350 data firsttime/.true./
1351 save
1352 if(firsttime)then
1353 firsttime=.false.
1354 nent(1)=nny
1355 nent(2)=nnz
1356 do iny=1,nny
1357 ent(iny)=(yv(iny))
1358 enddo
1359 do inz=1,nnz
1360 ent(nny+inz)=(zv(inz))
1361 enddo
1362 endif
1363 arg(1)=(y)
1364 arg(2)=(z)
1365 tmp=dfint(narg,arg,nent,ent,gridv)
1366 ewa_z_p_1m=tmp
1367 return
1368 end
1369 function ewa_z_p_0(y,z)
1370 implicit none
1371 real*8 ewa_z_p_0,y,z
1372 integer narg,nny,nnz
1373 parameter (narg=2)
1374 parameter (nny=32)
1375 parameter (nnz=8)
1376 integer iny,inz,nent(narg)
1377 real*8 tmp,dfint,ymap,zmap
1378 real*8 arg(narg),ent(nny+nnz)
1379 real*8 yv(nny),zv(nnz),gridv(nny,nnz)
1380 logical firsttime
1381 external dfint,ymap,zmap
1382 data yv/
1383 # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01,
1384 # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00,
1385 # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00,
1386 # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00,
1387 # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00,
1388 # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00,
1389 # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01,
1390 # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/
1391 data zv/
1392 # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00,
1393 # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/
1394 data (gridv(iny, 1),iny=1,32)/
1395 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1396 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1397 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1398 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1399 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1400 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1401 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
1402 # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00/
1403 data (gridv(iny, 2),iny=1,32)/
1404 # 2.2972746e-03, 1.7917254e-03, 1.4105851e-03, 1.1202991e-03,
1405 # 8.9758753e-04, 7.2401692e-04, 5.8765422e-04, 4.7973220e-04,
1406 # 3.9382732e-04, 3.2529169e-04, 2.7051159e-04, 2.2663375e-04,
1407 # 1.9144281e-04, 1.6313368e-04, 1.4017673e-04, 1.2123763e-04,
1408 # 1.0509369e-04, 9.0611789e-05, 7.6817182e-05, 6.3022584e-05,
1409 # 4.9058611e-05, 3.5418441e-05, 2.3106352e-05, 1.3215971e-05,
1410 # 6.4045348e-06, 2.5232862e-06, 7.6274114e-07, 1.6120969e-07,
1411 # 2.0920899e-08, 1.1554945e-09, 2.1846051e-11, 3.8164747e-16/
1412 data (gridv(iny, 3),iny=1,32)/
1413 # 3.1443709e-03, 2.4086938e-03, 1.8599149e-03, 1.4469692e-03,
1414 # 1.1345306e-03, 8.9494004e-04, 7.0998827e-04, 5.6630210e-04,
1415 # 4.5410728e-04, 3.6631536e-04, 2.9748449e-04, 2.4339831e-04,
1416 # 2.0085187e-04, 1.6729924e-04, 1.4065172e-04, 1.1916159e-04,
1417 # 1.0130455e-04, 8.5745522e-05, 7.1384433e-05, 5.7493734e-05,
1418 # 4.3890462e-05, 3.1023010e-05, 1.9770186e-05, 1.1015777e-05,
1419 # 5.1834875e-06, 1.9746473e-06, 5.7369065e-07, 1.1562072e-07,
1420 # 1.4116885e-08, 7.1378361e-10, 1.0286193e-11, 2.1760568e-16/
1421 data (gridv(iny, 4),iny=1,32)/
1422 # 4.0583782e-03, 3.0604630e-03, 2.3243967e-03, 1.7771165e-03,
1423 # 1.3685115e-03, 1.0596807e-03, 8.2496027e-04, 6.4554632e-04,
1424 # 5.0775614e-04, 4.0172285e-04, 3.1996314e-04, 2.5677121e-04,
1425 # 2.0788121e-04, 1.6996988e-04, 1.4037525e-04, 1.1693715e-04,
1426 # 9.7839570e-05, 8.1555616e-05, 6.6877295e-05, 5.3032557e-05,
1427 # 3.9820348e-05, 2.7642036e-05, 1.7265954e-05, 9.4071798e-06,
1428 # 4.3162443e-06, 1.5974573e-06, 4.4856401e-07, 8.6784619e-08,
1429 # 1.0054849e-08, 4.7125287e-10, 5.0055779e-12, 1.3353325e-16/
1430 data (gridv(iny, 5),iny=1,32)/
1431 # 5.0242808e-03, 3.7368538e-03, 2.7975112e-03, 2.1069870e-03,
1432 # 1.5976618e-03, 1.2178011e-03, 9.3297051e-04, 7.1829351e-04,
1433 # 5.5582318e-04, 4.3260555e-04, 3.3896481e-04, 2.6762365e-04,
1434 # 2.1321911e-04, 1.7163549e-04, 1.3964927e-04, 1.1469329e-04,
1435 # 9.4678118e-05, 7.7901482e-05, 6.3058870e-05, 4.9337909e-05,
1436 # 3.6517503e-05, 2.4952978e-05, 1.5315618e-05, 8.1824913e-06,
1437 # 3.6722130e-06, 1.3251079e-06, 3.6114078e-07, 6.7413213e-08,
1438 # 7.4593247e-09, 3.2711613e-10, 2.4150815e-12, 8.6646158e-17/
1439 data (gridv(iny, 6),iny=1,32)/
1440 # 6.0434242e-03, 4.4393078e-03, 3.2809706e-03, 2.4384204e-03,
1441 # 1.8240018e-03, 1.3711741e-03, 1.0357484e-03, 7.8624158e-04,
1442 # 5.9978597e-04, 4.6020082e-04, 3.5548403e-04, 2.7671910e-04,
1443 # 2.1741591e-04, 1.7266372e-04, 1.3867688e-04, 1.1250016e-04,
1444 # 9.1784840e-05, 7.4666871e-05, 5.9754966e-05, 4.6199819e-05,
1445 # 3.3759746e-05, 2.2745966e-05, 1.3743797e-05, 7.2147556e-06,
1446 # 3.1743092e-06, 1.1196153e-06, 2.9689509e-07, 5.3518235e-08,
1447 # 5.6721821e-09, 2.3409415e-10, 1.1787607e-12, 5.8729404e-17/
1448 data (gridv(iny, 7),iny=1,32)/
1449 # 7.1959867e-03, 5.2238170e-03, 3.8140515e-03, 2.7991324e-03,
1450 # 2.0670251e-03, 1.5335081e-03, 1.1431466e-03, 8.5620909e-04,
1451 # 6.4440376e-04, 4.8779317e-04, 3.7174709e-04, 2.8552072e-04,
1452 # 2.2138742e-04, 1.7357728e-04, 1.3770573e-04, 1.1041226e-04,
1453 # 8.9081969e-05, 7.1687010e-05, 5.6748485e-05, 4.3377928e-05,
1454 # 3.1310191e-05, 2.0811054e-05, 1.2385981e-05, 6.3920772e-06,
1455 # 2.7583999e-06, 9.5083600e-07, 2.4412955e-07, 4.1454456e-08,
1456 # 4.1336315e-09, 1.5732057e-10, 7.2362906e-13, 3.8540532e-17/
1457 data (gridv(iny, 8),iny=1,32)/
1458 # 8.5794573e-03, 6.1549995e-03, 4.4395854e-03, 3.2173803e-03,
1459 # 2.3455029e-03, 1.7173947e-03, 1.2632918e-03, 9.3357781e-04,
1460 # 6.9319431e-04, 5.1766046e-04, 3.8920495e-04, 2.9492776e-04,
1461 # 2.2566512e-04, 1.7466681e-04, 1.3686160e-04, 1.0845033e-04,
1462 # 8.6522845e-05, 6.8873718e-05, 5.3928273e-05, 4.0752757e-05,
1463 # 2.9053811e-05, 1.9048548e-05, 1.1165828e-05, 5.6636607e-06,
1464 # 2.3959922e-06, 8.0553030e-07, 1.9753531e-07, 2.9524070e-08,
1465 # 2.5899490e-09, 8.0207162e-11, 2.5018623e-13, 1.8180313e-17/
1466 data firsttime/.true./
1467 save
1468 if(firsttime)then
1469 firsttime=.false.
1470 nent(1)=nny
1471 nent(2)=nnz
1472 do iny=1,nny
1473 ent(iny)=(yv(iny))
1474 enddo
1475 do inz=1,nnz
1476 ent(nny+inz)=(zv(inz))
1477 enddo
1478 endif
1479 arg(1)=(y)
1480 arg(2)=(z)
1481 tmp=dfint(narg,arg,nent,ent,gridv)
1482 ewa_z_p_0=tmp
1483 return
1484 end
01485
=== added file 'Template/LO/Source/PDF/ElectroweakFlux.inc'
--- Template/LO/Source/PDF/ElectroweakFlux.inc 1970-01-01 00:00:00 +0000
+++ Template/LO/Source/PDF/ElectroweakFlux.inc 2020-08-13 08:01:43 +0000
@@ -0,0 +1,38 @@
1 double precision pi, pi2, sqrt2, eps
2 double precision ewa_mw2, ewa_mz2, ewa_gf
3 double precision ewa_qu,ewa_qd,ewa_qv,ewa_ql,ewa_t3u,ewa_t3d
4 double precision ewa_cw2,ewa_sw2,ewa_gW2
5 double precision ewa_gV,ewa_gVu,ewa_gVd,ewa_gVv,ewa_gVl
6 double precision ewa_gA,ewa_gAu,ewa_gAd,ewa_gAv,ewa_gAl
7c Math
8 parameter (pi=3.141592653589793d0)
9 parameter (pi2=9.869604401089358d0)
10 parameter (sqrt2=1.4142135623730951d0)
11 parameter (eps=1d-16)
12c Input EW parameters
13 parameter (ewa_mw2 = 80.379d0**2) ! [GeV]^2 PDG 2018
14 parameter (ewa_mz2 = 91.1876d0**2) ! [GeV]^2 PDG 2018
15 parameter (ewa_gf = 1.1663787d-5) ! [GeV]^-2 PDG 2018
16 parameter (ewa_qu = 2d0/3d0)
17 parameter (ewa_qd = -1d0/3d0)
18 parameter (ewa_qv = 0d0)
19 parameter (ewa_ql = -1d0)
20 parameter (ewa_t3u = 0.5d0)
21 parameter (ewa_t3d = -0.5d0)
22c Derived EW parameters
23 parameter (ewa_cw2 = ewa_mw2/ewa_mz2)
24 parameter (ewa_sw2 = 1d0 - ewa_mw2/ewa_mz2)
25 parameter (ewa_gW2 = sqrt2*4d0*ewa_gf*ewa_mw2)
26c Weak Vector Couplings
27 parameter (ewa_gV = 1d0)
28 parameter (ewa_gVu = 0.5d0*ewa_t3u - ewa_qu*ewa_sw2)
29 parameter (ewa_gVd = 0.5d0*ewa_t3d - ewa_qd*ewa_sw2)
30 parameter (ewa_gVv = 0.5d0*ewa_t3u)
31 parameter (ewa_gVl = 0.5d0*ewa_t3d - ewa_ql*ewa_sw2)
32c Weak Axialvector Couplings
33 parameter (ewa_gA = -1d0)
34 parameter (ewa_gAu = -0.5d0*ewa_t3u)
35 parameter (ewa_gAd = -0.5d0*ewa_t3d)
36 parameter (ewa_gAv = -0.5d0*ewa_t3u)
37 parameter (ewa_gAl = -0.5d0*ewa_t3d)
38c
0\ No newline at end of file39\ No newline at end of file
140
=== modified file 'Template/LO/Source/PDF/PhotonFlux.f'
--- Template/LO/Source/PDF/PhotonFlux.f 2020-03-27 13:59:33 +0000
+++ Template/LO/Source/PDF/PhotonFlux.f 2020-08-13 08:01:43 +0000
@@ -1,30 +1,35 @@
1c/* ********************************************************* */1c/* ********************************************************* */
2c/* Equivalent photon approximation structure function. * */2c/* Equivalent photon approximation structure function. * */
3c/* V.M.Budnev et al., Phys.Rep. 15C (1975) 181 * */3c/* V.M.Budnev et al., Phys.Rep. 15C (1975) 181 * */
4c/* Improved Weizsaecker-Williams formula * */4c/* * */
5c/* http://inspirehep.net/record/359425 * */ 5c/* Improved Weizsaecker-Williams formula * */
6c/* S. Frixione et al. hep-ph/9310350 * */
7c/* * */
6c/* ********************************************************* */8c/* ********************************************************* */
7c provided by Tomasz Pierzchala - UCL9c provided by Tomasz Pierzchala - UCL
810
9 real*8 function epa_electron(x,q2max)11 real*8 function epa_lepton(x,q2max, mode)
10 integer i12 implicit none
13 integer i, mode, imode
14c mode is +3/-3 for electron and +4/-4 for muon
11 real*8 x,phi_f15 real*8 x,phi_f
12 real*8 xin16 real*8 xin(3:4)
13 real*8 alpha17 real*8 alpha
14 real*8 f, q2min,q2max18 real*8 f, q2min,q2max
15 real*8 PI19 real*8 PI
16 data PI/3.14159265358979323846/20 data PI/3.14159265358979323846/
1721
18 data xin/0.511d-3/ !electron mass in GeV22 data xin/0.511d-3, 0.105658d0/ !electron mass in GeV
1923
20 alpha = .007299270124 alpha = .0072992701
2125 imode = abs(mode)
26
22C // x = omega/E = (E-E')/E27C // x = omega/E = (E-E')/E
23 if (x.lt.1) then28 if (x.lt.1) then
24 q2min= xin*xin*x*x/(1-x)29 q2min= xin(imode)*xin(imode)*x*x/(1-x)
25 if(q2min.lt.q2max) then 30 if(q2min.lt.q2max) then
26 f = alpha/2d0/PI*31 f = alpha/2d0/PI*
27 & (2d0*xin*xin*x*(-1/q2min+1/q2max)+32 & (2d0*xin(imode)*xin(imode)*x*(-1/q2min+1/q2max)+
28 & (2-2d0*x+x*x)/x*dlog(q2max/q2min))33 & (2-2d0*x+x*x)/x*dlog(q2max/q2min))
29 34
30 else35 else
@@ -35,7 +40,7 @@
35 endif40 endif
36c write (*,*) x,dsqrt(q2min),dsqrt(q2max),f41c write (*,*) x,dsqrt(q2min),dsqrt(q2max),f
37 if (f .lt. 0) f = 042 if (f .lt. 0) f = 0
38 epa_electron= f43 epa_lepton = f
3944
40 end45 end
4146
4247
=== modified file 'Template/LO/Source/PDF/makefile'
--- Template/LO/Source/PDF/makefile 2020-04-08 19:22:14 +0000
+++ Template/LO/Source/PDF/makefile 2020-08-13 08:01:43 +0000
@@ -14,15 +14,16 @@
14 ifeq ($(lhapdfversion),5)14 ifeq ($(lhapdfversion),5)
15 $(error Bad lhadpfversion version 6 is now required)15 $(error Bad lhadpfversion version 6 is now required)
16 else16 else
17 PDF = pdfwrap_lhapdf.o pdf_lhapdf6.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o ElectroweakFlux.o
17 ifeq ($(lhapdfsubversion),1) # 6.1.X18 ifeq ($(lhapdfsubversion),1) # 6.1.X
18 PDF = pdfwrap_lhapdf.o pdf_lhapdf6.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o19 PDF = pdfwrap_lhapdf.o pdf_lhapdf6.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o ElectroweakFlux.o
19 else # 6.2.X20 else # 6.2.X
20 CXXFLAGS+=-std=c++1121 CXXFLAGS+=-std=c++11
21 PDF = pdfwrap_lhapdf.o pdf_lhapdf62.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o22 PDF = pdfwrap_lhapdf.o pdf_lhapdf62.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o ElectroweakFlux.o
22 endif 23 endif
23 endif24 endif
24else25else
25 PDF = Ctq6Pdf.o pdfwrap.o opendata.o pdf.o PhotonFlux.o pdg2pdf.o NNPDFDriver.o26 PDF = Ctq6Pdf.o pdfwrap.o opendata.o pdf.o PhotonFlux.o pdg2pdf.o NNPDFDriver.o ElectroweakFlux.o
26endif27endif
2728
28all: $(LIBDIR)$(LIBRARY)29all: $(LIBDIR)$(LIBRARY)
2930
=== modified file 'Template/LO/Source/PDF/pdf.f'
--- Template/LO/Source/PDF/pdf.f 2018-02-01 23:17:18 +0000
+++ Template/LO/Source/PDF/pdf.f 2020-08-13 08:01:43 +0000
@@ -29,7 +29,7 @@
29 double precision u_val,d_val,u_sea,d_sea,s_sea,c_sea,b_sea,gluon29 double precision u_val,d_val,u_sea,d_sea,s_sea,c_sea,b_sea,gluon
30 double precision Ctq3df,Ctq4Fn,Ctq5Pdf,Ctq6Pdf,Ctq5L30 double precision Ctq3df,Ctq4Fn,Ctq5Pdf,Ctq6Pdf,Ctq5L
31 double precision q2max31 double precision q2max
32 double precision epa_electron,epa_proton32 double precision epa_lepton,epa_proton
33 include 'pdf.inc'33 include 'pdf.inc'
3434
35 integer mode,Iprtn,Irt35 integer mode,Iprtn,Irt
@@ -297,8 +297,8 @@
297c a "diffractive" photon297c a "diffractive" photon
298c 298c
299 q2max=xmu*xmu299 q2max=xmu*xmu
300 if(ih .eq. 3) then !from the electron300 if(abs(ih) .eq. 3.or.abs(ih) .eq. 4) then !from the electron
301 fx(7)=epa_electron(x,q2max)301 fx(7)=epa_lepton(x,q2max, ih)
302 elseif(ih .eq. 2) then !from a proton without breaking302 elseif(ih .eq. 2) then !from a proton without breaking
303 fx(7)=epa_proton(x,q2max)303 fx(7)=epa_proton(x,q2max)
304 endif 304 endif
305305
=== modified file 'Template/LO/Source/PDF/pdg2pdf.f'
--- Template/LO/Source/PDF/pdg2pdf.f 2019-12-04 21:34:25 +0000
+++ Template/LO/Source/PDF/pdg2pdf.f 2020-08-13 08:01:43 +0000
@@ -24,7 +24,7 @@
24 integer mode,Irt,i,j24 integer mode,Irt,i,j
25 double precision xlast(2),xmulast(2),pdflast(-7:7,2),q2max25 double precision xlast(2),xmulast(2),pdflast(-7:7,2),q2max
26 character*7 pdlabellast(2)26 character*7 pdlabellast(2)
27 double precision epa_electron,epa_proton27 double precision epa_lepton,epa_proton
28 integer ipart,ireuse,iporg,ihlast(2)28 integer ipart,ireuse,iporg,ihlast(2)
29 save xlast,xmulast,pdflast,pdlabellast,ihlast29 save xlast,xmulast,pdflast,pdlabellast,ihlast
30 data xlast/2*-99d9/30 data xlast/2*-99d9/
@@ -32,7 +32,29 @@
32 data pdflast/30*-99d9/32 data pdflast/30*-99d9/
33 data pdlabellast/2*'abcdefg'/33 data pdlabellast/2*'abcdefg'/
34 data ihlast/2*-99/34 data ihlast/2*-99/
3535c
36c Special for EWA (need to know current helicity)
37c
38 double precision ewa_wX_ByPID, ewa_zX_ByPID
39 external ewa_wX_ByPID, ewa_zX_ByPID
40 integer hel, ppid
41 double precision hel_jacobian
42 INTEGER HEL_PICKED
43 COMMON/HEL_PICKED/HEL_PICKED,hel_jacobian
44 integer get_nhel
45 external get_nhel
46 REAL*8 POL(2)
47 common/to_polarization/ POL
48c
49c Collider
50c
51 integer lpp(2)
52 double precision ebeam(2), xbk(2),q2fact(2)
53 common/to_collider/ ebeam , xbk ,q2fact, lpp
54c
55c
56c
57 double precision factor
36 if (ih.eq.9) then58 if (ih.eq.9) then
37 pdg2pdf = 1d059 pdg2pdf = 1d0
38 return60 return
@@ -66,12 +88,14 @@
66 ipart=788 ipart=7
67c This will be called for any PDG code, but we only support up to 789c This will be called for any PDG code, but we only support up to 7
68 else if(iabs(ipart).gt.7)then90 else if(iabs(ipart).gt.7)then
69 write(*,*) 'PDF not supported for pdg ',ipdg91 if(iabs(ih).lt.2)then
70 write(*,*) 'For lepton colliders, please set the lpp* '//92 write(*,*) 'PDF not supported for pdg ',ipdg
71 $ 'variables to 0 in the run_card' 93 write(*,*) 'For lepton colliders, please set the lpp* '//
72 open(unit=26,file='../../../error',status='unknown')94 $ 'variables to 0 in the run_card current is' , ih
73 write(26,*) 'Error: PDF not supported for pdg ',ipdg95 open(unit=26,file='../../../error',status='unknown')
74 stop 196 write(26,*) 'Error: PDF not supported for pdg ',ipdg
97 stop 1
98 endif
75 endif99 endif
76100
77 iporg=ipart101 iporg=ipart
@@ -85,7 +109,7 @@
85 enddo109 enddo
86110
87c Reuse previous result, if possible111c Reuse previous result, if possible
88 if (ireuse.gt.0.)then112 if (ireuse.gt.0.and.iabs(iporg).lt.8)then
89 if (pdflast(iporg,ireuse).ne.-99d9) then113 if (pdflast(iporg,ireuse).ne.-99d9) then
90 pdg2pdf = get_ion_pdf(pdflast(-7, ireuse), iporg, nb_proton(beamid),114 pdg2pdf = get_ion_pdf(pdflast(-7, ireuse), iporg, nb_proton(beamid),
91 $ nb_neutron(beamid))115 $ nb_neutron(beamid))
@@ -129,15 +153,85 @@
129 pdlabellast(ireuse)=pdlabel153 pdlabellast(ireuse)=pdlabel
130 ihlast(ireuse)=ih154 ihlast(ireuse)=ih
131155
132 if(iabs(ipart).eq.7.and.ih.gt.1) then156c
157c Special mode for Improved Weizsacker-Williams,
158c Equivalent photon, and Effective W/Z Approximations
159c
160 if (ih.gt.1.and.ih.ne.9) then
161c Effective photon approximation
133 q2max=xmu*xmu162 q2max=xmu*xmu
134 if(ih.eq.3) then !from the electron163 if (iabs(ipart).eq.7) then
135 pdg2pdf=epa_electron(x,q2max)164 if(abs(ih).eq.3.or.abs(ih).eq.4) then !from the electron or muonn
136 elseif(ih .eq. 2) then !from a proton without breaking165 pdg2pdf=epa_lepton(x,q2max, ih)
137 pdg2pdf=epa_proton(x,q2max,beamid)166 elseif(ih .eq. 2) then !from a proton without breaking
138 endif 167 pdg2pdf=epa_proton(x,q2max,beamid)
139 pdflast(iporg,ireuse)=pdg2pdf168 endif
140 return169 pdflast(iporg,ireuse)=pdg2pdf
170 return
171 elseif(iabs(ipart).eq.23) then ! z boson
172 factor = 3d0 ! 3 to cancel the average over W helicities´
173 if (ABS(ih).eq.3) then
174 ppid = 11
175 elseif(ABS(ih).eq.4) then
176 ppid = 13
177 elseif(ABS(ih).eq.2) then
178 ppid = 2212
179 else
180 write(*,*) "type of beam not yet supported for EWA"
181 stop 4
182 endif
183 hel = GET_NHEL(HEL_PICKED, beamid)
184 pdg2pdf = factor * ewa_zX_ByPID(x,q2max,hel,ppid)
185 if (ABS(POL(beamid)).ne.1d0) then
186 write(*,*) 'beam polarization not supported for EWA with Z'
187 stop 33
188 endif
189
190 return
191 elseif(ipart.eq.24) then ! w+ boson
192 factor = 3d0 ! 3 to cancel the average over W helicities´
193 if (ih.eq.-3) then ! from e+
194 ppid = -11
195 elseif(ih.eq.-4) then ! from mu+
196 ppid = -13
197 elseif(ih.eq.2) then
198 ppid = 2212
199 else
200 write(*,*) "type of beam not yet supported for EWA"
201 stop 4
202 endif
203 hel = GET_NHEL(HEL_PICKED, beamid)
204 pdg2pdf = factor*ewa_wX_ByPID(x,q2max,hel,ppid)
205 if(pol(beamid).lt.0d0)then
206 pdg2pdf = pdg2pdf * (2-ABS(POL(beamid)))/2d0 ! couple only to right handed componenta
207 else
208 pdg2pdf = pdg2pdf * ABS(POL(beamid))/2d0 ! couple only to right handed componenta
209 endif
210 return
211 elseif(ipart.eq.-24) then ! w- boson
212 factor = 3d0 ! 3 to cancel the average over W helicities´
213 if (ih.eq.3) then ! from e-
214 ppid = 11
215 elseif(ih.eq.4) then ! from mu-
216 ppid = 13
217 elseif(ih.eq.2) then
218 ppid = -2212
219 else
220 write(*,*) "type of beam not yet supported for EWA"
221 stop 4
222 endif
223
224 hel = GET_NHEL(HEL_PICKED, beamid)
225 pdg2pdf = factor*ewa_wX_ByPID(x,q2max,hel,ppid)
226 if(pol(beamid)*lpp(beamid).lt.0d0)then
227 pdg2pdf = pdg2pdf * ABS(POL(beamid))/2d0 ! couple only to left handed componenta
228 else
229 pdg2pdf = pdg2pdf * (2-ABS(POL(beamid)))/2d0 ! couple only to left handed componenta
230 endif
231
232
233 return
234 endif
141 endif235 endif
142 236
143 if (pdlabel(1:5) .eq. 'cteq6') then237 if (pdlabel(1:5) .eq. 'cteq6') then
144238
=== removed file 'Template/LO/Source/PDF/pdg2pdf_lhapdf.f'
=== modified file 'Template/LO/Source/PDF/pdg2pdf_lhapdf6.f'
--- Template/LO/Source/PDF/pdg2pdf_lhapdf6.f 2020-03-06 20:47:59 +0000
+++ Template/LO/Source/PDF/pdg2pdf_lhapdf6.f 2020-08-13 08:01:43 +0000
@@ -24,7 +24,7 @@
24 integer i,j,ihlast(20),ipart,iporg,ireuse,imemlast(20),iset,imem24 integer i,j,ihlast(20),ipart,iporg,ireuse,imemlast(20),iset,imem
25 & ,i_replace,ii,ipartlast(20)25 & ,i_replace,ii,ipartlast(20)
26 double precision xlast(20),xmulast(20),pdflast(-7:7,20)26 double precision xlast(20),xmulast(20),pdflast(-7:7,20)
27 double precision epa_proton, epa_electron27 double precision epa_proton, epa_lepton
28 save ihlast,xlast,xmulast,pdflast,imemlast,ipartlast28 save ihlast,xlast,xmulast,pdflast,imemlast,ipartlast
29 data ihlast/20*-99/29 data ihlast/20*-99/
30 data ipartlast/20*-99/30 data ipartlast/20*-99/
@@ -33,6 +33,37 @@
33 data pdflast/300*-99d9/33 data pdflast/300*-99d9/
34 data imemlast/20*-99/34 data imemlast/20*-99/
35 data i_replace/20/35 data i_replace/20/
36c
37c Special for EWA (need to know current helicity)
38c
39 double precision ewa_wX_ByPID, ewa_zX_ByPID
40 external ewa_wX_ByPID, ewa_zX_ByPID
41 integer hel, ppid
42 double precision hel_jacobian
43 INTEGER HEL_PICKED
44 COMMON/HEL_PICKED/HEL_PICKED,hel_jacobian
45 integer get_nhel
46 external get_nhel
47 REAL*8 POL(2)
48 common/to_polarization/ POL
49 double precision q2max
50 double precision epa_electron
51c
52c Collider
53c
54 integer lpp(2)
55 double precision ebeam(2), xbk(2),q2fact(2)
56 common/to_collider/ ebeam , xbk ,q2fact, lpp
57c
58c
59c
60 double precision factor
61
62 if (ih.eq.9) then
63 pdg2pdf = 1d0
64 return
65 endif
66
3667
37 nb_hadron = (nb_proton(beamid)+nb_neutron(beamid))68 nb_hadron = (nb_proton(beamid)+nb_neutron(beamid))
38c Make sure we have a reasonable Bjorken x. Note that even though69c Make sure we have a reasonable Bjorken x. Note that even though
@@ -62,12 +93,14 @@
62 ipart=793 ipart=7
63c This will be called for any PDG code, but we only support up to 794c This will be called for any PDG code, but we only support up to 7
64 else if(iabs(ipart).gt.7)then95 else if(iabs(ipart).gt.7)then
65 write(*,*) 'PDF not supported for pdg ',ipdg96 if(iabs(ih).lt.2)then
66 write(*,*) 'For lepton colliders, please set the lpp* '//97 write(*,*) 'PDF not supported for pdg ',ipdg
67 $ 'variables to 0 in the run_card' 98 write(*,*) 'For lepton colliders, please set the lpp* '//
68 open(unit=26,file='../../../error',status='unknown')99 $ 'variables to 0 in the run_card'
69 write(26,*) 'Error: PDF not supported for pdg ',ipdg100 open(unit=26,file='../../../error',status='unknown')
70 stop 1101 write(26,*) 'Error: PDF not supported for pdg ',ipdg
102 stop 1
103 endif
71 endif104 endif
72105
73 iporg=ipart106 iporg=ipart
@@ -139,10 +172,77 @@
139 pdg2pdf = get_ion_pdf(pdflast(-7, i_replace), ipart, nb_proton(beamid), nb_neutron(beamid))172 pdg2pdf = get_ion_pdf(pdflast(-7, i_replace), ipart, nb_proton(beamid), nb_neutron(beamid))
140 endif173 endif
141 pdg2pdf=pdg2pdf/x174 pdg2pdf=pdg2pdf/x
142 else if(ih.eq.3) then !from the electron175 else if(ih.gt.1.and.ih.ne.9) then ! photon from a proton without breaking
143 pdg2pdf=epa_electron(x,xmu*xmu)176c Effective photon approximation
144 else if(ih.eq.2) then ! photon from a proton without breaking177 q2max=xmu*xmu
145 pdg2pdf = epa_proton(x,xmu*xmu)178 if (iabs(ipart).eq.7) then
179 if(abs(ih).eq.3.or.abs(ih).eq.4) then !from the electron
180 pdg2pdf=epa_lepton(x,xmu*xmu, ih)
181 elseif(ih .eq. 2) then !from a proton without breaking
182 pdg2pdf=epa_proton(x,q2max,beamid)
183 endif
184 pdflast(iporg,ireuse)=pdg2pdf
185 return
186 elseif(iabs(ipart).eq.23) then ! z boson
187 if (ih.eq.3) then
188 ppid = 11
189 elseif(ih.eq.4) then
190 ppid = 13
191 elseif(ih.eq.2) then
192 ppid = 2212
193 else
194 write(*,*) "type of beam not yet supported for EWA"
195 stop 4
196 endif
197 hel = GET_NHEL(HEL_PICKED, beamid)
198 pdg2pdf = ewa_zX_ByPID(x,q2max,hel,ppid)
199 if (ABS(POL(beamid)).ne.1d0) then
200 write(*,*)
201 & 'beam polarization not supported for EWA with Z'
202 stop 33
203 endif
204 return
205 elseif(ipart.eq.24) then ! w+ boson
206 factor = 3d0 ! 3 to cancel the average over W helicities´
207 if (ih.eq.-3) then ! from e+
208 ppid = -11
209 elseif(ih.eq.-4) then ! from mu+
210 ppid = -13
211 elseif(ih.eq.2) then
212 ppid = 2212
213 else
214 write(*,*) "type of beam not yet supported for EWA"
215 stop 4
216 endif
217 hel = GET_NHEL(HEL_PICKED, beamid)
218 pdg2pdf = factor*ewa_wX_ByPID(x,q2max,hel,ppid)
219 if(pol(beamid).lt.0d0)then
220 pdg2pdf = pdg2pdf * (2-ABS(POL(beamid)))/2d0 ! couple only to right handed componenta
221 else
222 pdg2pdf = pdg2pdf * ABS(POL(beamid))/2d0 ! couple only to right handed componenta
223 endif
224 return
225 elseif(ipart.eq.-24) then ! w- boson
226 factor = 3d0 ! 3 to cancel the average over W helicities´
227 if (ih.eq.3) then ! from e-
228 ppid = 11
229 elseif(ih.eq.4) then ! from mu-
230 ppid = 13
231 elseif(ih.eq.2) then
232 ppid = -2212
233 else
234 write(*,*) "type of beam not yet supported for EWA"
235 stop 4
236 endif
237
238 hel = GET_NHEL(HEL_PICKED, beamid)
239 pdg2pdf = factor*ewa_wX_ByPID(x,q2max,hel,ppid)
240 if(pol(beamid)*lpp(beamid).lt.0d0)then
241 pdg2pdf = pdg2pdf * ABS(POL(beamid))/2d0 ! couple only to left handed componenta
242 else
243 pdg2pdf = pdg2pdf * (2-ABS(POL(beamid)))/2d0 ! couple only to left handed componenta
244 endif
245 endif
146 else246 else
147 write (*,*) 'beam type not supported in lhadpf'247 write (*,*) 'beam type not supported in lhadpf'
148 stop 1248 stop 1
149249
=== modified file 'Template/LO/Source/kin_functions.f'
--- Template/LO/Source/kin_functions.f 2016-02-10 14:56:17 +0000
+++ Template/LO/Source/kin_functions.f 2020-08-13 08:01:43 +0000
@@ -590,11 +590,13 @@
590C 4-Vector Dot product590C 4-Vector Dot product
591C****************************************************************************591C****************************************************************************
592 implicit none592 implicit none
593 double precision p1(0:3),p2(0:3)593 double precision p1(0:3),p2(0:3), dot2
594 dot=p1(0)*p2(0)-p1(1)*p2(1)-p1(2)*p2(2)-p1(3)*p2(3)594 dot=p1(0)*p2(0)-p1(1)*p2(1)-p1(2)*p2(2)-p1(3)*p2(3)
595595
596 if(dabs(dot).lt.1d-6)then ! solve numerical problem 596 if(dabs(dot).lt.1d-6)then ! solve numerical problem
597 dot=0d0597 dot2 = p1(0)*p2(0)+p1(1)*p2(1)+p1(2)*p2(2)+p1(3)*p2(3)
598 dot2 = max(1e-99,dot2)
599 if (dot/dot2.lt.1e-6) dot=0d0
598 endif600 endif
599601
600 end602 end
601603
=== modified file 'Template/LO/Source/setrun.f'
--- Template/LO/Source/setrun.f 2016-03-04 16:16:23 +0000
+++ Template/LO/Source/setrun.f 2020-08-13 08:01:43 +0000
@@ -83,12 +83,27 @@
83 q2fact(1) = sf1**2 ! fact scale**2 for pdf183 q2fact(1) = sf1**2 ! fact scale**2 for pdf1
84 q2fact(2) = sf2**2 ! fact scale**2 for pdf2 84 q2fact(2) = sf2**2 ! fact scale**2 for pdf2
8585
86 if(pb1.ne.0d0)then
87 if (abs(lpp(1)).eq.1.or.abs(lpp(1)).eq.2)then
88 write(*,*) 'proton/anti-proton beam polarization are not allowed'
89 stop 1
90 endif
91 pol(1)=sign(1+abs(pb1)/100d0,pb1)
92 endif
93 if(pb2.ne.0d0)then
94 if (abs(lpp(2)).eq.1.or.abs(lpp(2)).eq.2)then
95 write(*,*) 'proton/anti-proton beam polarization are not allowed'
96 stop 1
97 endif
98 pol(2)=sign(1+abs(pb2)/100d0,pb2)
99 endif
100
86 if(pb1.ne.0d0.and.lpp(1).eq.0) pol(1)=sign(1+abs(pb1)/100d0,pb1)101 if(pb1.ne.0d0.and.lpp(1).eq.0) pol(1)=sign(1+abs(pb1)/100d0,pb1)
87 if(pb2.ne.0d0.and.lpp(2).eq.0) pol(2)=sign(1+abs(pb2)/100d0,pb2)102 if(pb2.ne.0d0.and.lpp(2).eq.0) pol(2)=sign(1+abs(pb2)/100d0,pb2)
88103
89 if(pb1.ne.0.or.pb2.ne.0) write(*,*) 'Setting beam polarization ',104 if(pb1.ne.0.or.pb2.ne.0) write(*,*) 'Setting beam polarization ',
90 $ sign((abs(pol(1))-1)*100,pol(1)),105 $ pol(1), pol(2)
91 $ sign((abs(pol(2))-1)*100,pol(2))106
92107
93c !!! Default behavior changed (MH, Aug. 07) !!!108c !!! Default behavior changed (MH, Aug. 07) !!!
94c If no pdf, read the param_card and use the value from there and109c If no pdf, read the param_card and use the value from there and
95110
=== modified file 'Template/LO/SubProcesses/genps.f'
--- Template/LO/SubProcesses/genps.f 2020-06-15 07:16:51 +0000
+++ Template/LO/SubProcesses/genps.f 2020-08-13 08:01:43 +0000
@@ -572,6 +572,9 @@
572 if (abs(lpp(2)) .eq. 1 .or. abs(lpp(2)) .eq. 2) m2 = 0.938d0572 if (abs(lpp(2)) .eq. 1 .or. abs(lpp(2)) .eq. 2) m2 = 0.938d0
573 if (abs(lpp(1)) .eq. 3) m1 = 0.000511d0573 if (abs(lpp(1)) .eq. 3) m1 = 0.000511d0
574 if (abs(lpp(2)) .eq. 3) m2 = 0.000511d0574 if (abs(lpp(2)) .eq. 3) m2 = 0.000511d0
575 if (abs(lpp(1)) .eq. 4) m1 = 0.000511d0
576 if (abs(lpp(1)) .eq. 4) m1 = 0.105658d0
577 if (abs(lpp(2)) .eq. 4) m2 = 0.105658d0
575 if (mass_ion(1).ge.0d0) m1 = mass_ion(1)578 if (mass_ion(1).ge.0d0) m1 = mass_ion(1)
576 if (mass_ion(2).ge.0d0) m2 = mass_ion(2)579 if (mass_ion(2).ge.0d0) m2 = mass_ion(2)
577 if(ebeam(1).lt.m1.and.lpp(1).ne.9) ebeam(1)=m1580 if(ebeam(1).lt.m1.and.lpp(1).ne.9) ebeam(1)=m1
578581
=== modified file 'Template/LO/SubProcesses/reweight.f'
--- Template/LO/SubProcesses/reweight.f 2020-05-24 20:16:56 +0000
+++ Template/LO/SubProcesses/reweight.f 2020-08-13 08:01:43 +0000
@@ -1738,9 +1738,9 @@
1738 if (btest(mlevel,3))1738 if (btest(mlevel,3))
1739 $ write(*,*)' set fact scales for PS to ',1739 $ write(*,*)' set fact scales for PS to ',
1740 $ sqrt(q2fact(1)),sqrt(q2fact(2))1740 $ sqrt(q2fact(1)),sqrt(q2fact(2))
1741 else if (abs(lpp(1)).eq.2.or.abs(lpp(1)).eq.3) then1741 else if (abs(lpp(1)).ge.2.and.abs(lpp(1)).le.4) then
1742 q2fact(1)=q2bck(1)1742 q2fact(1)=q2bck(1)
1743 else if (abs(lpp(2)).eq.2.or.abs(lpp(2)).eq.3) then1743 else if (abs(lpp(2)).ge.2.or.abs(lpp(2)).le.4) then
1744 q2fact(2)=q2bck(2)1744 q2fact(2)=q2bck(2)
1745 endif1745 endif
17461746
17471747
=== modified file 'Template/LO/SubProcesses/unwgt.f'
--- Template/LO/SubProcesses/unwgt.f 2020-05-20 11:52:45 +0000
+++ Template/LO/SubProcesses/unwgt.f 2020-08-13 08:01:43 +0000
@@ -145,10 +145,19 @@
145C compute the boost for the requested transformation145C compute the boost for the requested transformation
146 implicit none146 implicit none
147 double precision pin(0:3), pout(0:3)147 double precision pin(0:3), pout(0:3)
148 double precision denom148 double precision denom, control
149149
150 denom = pin(0)*pout(0) - pin(3)*pout(3)150 denom = pin(0)*pout(0) - pin(3)*pout(3)
151 if (denom.ne.0d0) then151 if (denom.ne.0d0) then
152 control = pin(0)*pout(0) + pin(3)*pout(3)
153 if (denom/control.gt.1d-12)then
154 get_betaz = (pin(3) * pout(0) - pout(3) * pin(0)) / denom
155c pass in massless case
156 else if (abs(pin(0)+pin(3)).gt.abs(pin(0))) then
157 get_betaz = (pin(0)**2 - pout(0)**2)/(pin(0)**2 + pout(0)**2)
158 else
159 get_betaz = (pout(0)**2 - pin(0)**2)/(pin(0)**2 + pout(0)**2)
160 endif
152 get_betaz = (pin(3) * pout(0) - pout(3) * pin(0)) / denom161 get_betaz = (pin(3) * pout(0) - pout(3) * pin(0)) / denom
153 else if (pin(0).eq.pin(3)) then162 else if (pin(0).eq.pin(3)) then
154 get_betaz = (pin(0)**2 - pout(0)**2)/(pin(0)**2 + pout(0)**2)163 get_betaz = (pin(0)**2 - pout(0)**2)/(pin(0)**2 + pout(0)**2)
155164
=== modified file 'Template/MadWeight/src/setrun.f'
--- Template/MadWeight/src/setrun.f 2018-04-27 21:01:37 +0000
+++ Template/MadWeight/src/setrun.f 2020-08-13 08:01:43 +0000
@@ -536,3 +536,11 @@
536536
537 return537 return
538 end538 end
539
540 INTEGER FUNCTION GET_NHEL(HEL, IPART)
541 implicit none
542 integer hel
543 integer ipart
544 get_nhel = 99
545 return
546 end
539547
=== modified file 'UpdateNotes.txt'
--- UpdateNotes.txt 2020-06-21 12:17:36 +0000
+++ UpdateNotes.txt 2020-08-13 08:01:43 +0000
@@ -1,5 +1,23 @@
1Update notes for MadGraph5_aMC@NLO (in reverse time order)1Update notes for MadGraph5_aMC@NLO (in reverse time order)
22
32.8.0:
4 OM: In madspin_card you can now replace the line "launch"
5 by "launch -n NAME", this will allow to specify the name of the
6 directory in EVENTS where that run is stored.
7 OM: Change in the python interface of the standalone output. In top of the pdg of the particles,
8 you can now use the process_id (the one specified with @X) to distinguish process with the same particle
9 content. This parameter can be set to -1 and the function then ignore that parameter.
10 OM: Adding new option in reweighting to allow the user to use the process_id in presence of ambiguous
11 initial/final state.
12 OM: For LO process, you can now set lpp1 and lpp2 to "4" for process with initial photon in order to get the
13 effective photon approximation. This mode behaves like the "3" one: The cut-off scale of the approximation
14 is taken from the fixed renormalization factorisation scale: "dsqrt_q2fact1/dsqrt_q2fact2"
15 OM: Update the makefile of standalone interface to python to be able to compile in multicore.
16 (thanks Matthias Komm)
17 OM: Update of the auto-width code to support UFO form-factors
18 OM: Fixing numerical issue at very low invariant mass and another numerical issue with the boost in EPA mode.
19
20
32.7.3(21/06/20)212.7.3(21/06/20)
4 OM: Fixing some bug for read-only LO gridpacks (wrong cross-section and shape when generating events).22 OM: Fixing some bug for read-only LO gridpacks (wrong cross-section and shape when generating events).
5 Thanks to Congqiao Li for this23 Thanks to Congqiao Li for this
624
=== modified file 'aloha/aloha_writers.py'
--- aloha/aloha_writers.py 2020-01-09 23:14:56 +0000
+++ aloha/aloha_writers.py 2020-08-13 08:01:43 +0000
@@ -1241,12 +1241,15 @@
1241 """ build the name for combined aloha function """1241 """ build the name for combined aloha function """
12421242
1243 def myHash(target_string):1243 def myHash(target_string):
1244 suffix = ''
1245 if '%(propa)s' in target_string:
1246 target_string = target_string.replace('%(propa)s','')
1247 suffix = '%(propa)s'
1248
1244 if len(target_string)<50:1249 if len(target_string)<50:
1245 return target_string1250 return '%s%s' % (target_string, suffix)
1246 if '%(propa)s' in target_string:
1247 return 'ALOHA_'+(str(hash(target_string.lower()))).replace('-','m')+'%(propa)s'
1248 else:1251 else:
1249 return 'ALOHA_'+(str(hash(target_string.lower()))).replace('-','m')1252 return 'ALOHA_%s%s' % (str(hash(target_string.lower())).replace('-','m'), suffix)
12501253
1251 if tag and any(t.startswith('P') for t in tag[:-1]):1254 if tag and any(t.startswith('P') for t in tag[:-1]):
1252 # propagator need to be the last entry for the tag1255 # propagator need to be the last entry for the tag
12531256
=== modified file 'madgraph/core/base_objects.py'
--- madgraph/core/base_objects.py 2020-05-07 13:47:24 +0000
+++ madgraph/core/base_objects.py 2020-08-13 08:01:43 +0000
@@ -1222,7 +1222,8 @@
12221222
1223 if name == 'particles':1223 if name == 'particles':
1224 # Ensure no doublets in particle list1224 # Ensure no doublets in particle list
1225 make_unique(value)1225 if value:
1226 make_unique(value)
1226 # Reset dictionaries1227 # Reset dictionaries
1227 self['particle_dict'] = {}1228 self['particle_dict'] = {}
1228 self['ref_dict_to0'] = {}1229 self['ref_dict_to0'] = {}
@@ -4053,7 +4054,7 @@
4053 is needed"""4054 is needed"""
40544055
4055 assert isinstance(doubletlist, list), \4056 assert isinstance(doubletlist, list), \
4056 "Argument to make_unique must be list"4057 "Argument to make_unique must be list not %s" % type(doubletlist)
4057 4058
40584059
4059 uniquelist = []4060 uniquelist = []
40604061
=== modified file 'madgraph/interface/common_run_interface.py'
--- madgraph/interface/common_run_interface.py 2020-06-17 07:23:03 +0000
+++ madgraph/interface/common_run_interface.py 2020-08-13 08:01:43 +0000
@@ -3704,11 +3704,21 @@
37043704
3705 madspin_cmd.import_command_file(path)3705 madspin_cmd.import_command_file(path)
37063706
3707 # create a new run_name directory for this output3707
3708 i = 13708 if not madspin_cmd.me_run_name:
3709 while os.path.exists(pjoin(self.me_dir,'Events', '%s_decayed_%i' % (self.run_name,i))):3709 # create a new run_name directory for this output
3710 i+=13710 i = 1
3711 new_run = '%s_decayed_%i' % (self.run_name,i)3711 while os.path.exists(pjoin(self.me_dir,'Events', '%s_decayed_%i' % (self.run_name,i))):
3712 i+=1
3713 new_run = '%s_decayed_%i' % (self.run_name,i)
3714 else:
3715 new_run = madspin_cmd.me_run_name
3716 if os.path.exists(pjoin(self.me_dir,'Events', new_run)):
3717 i = 1
3718 while os.path.exists(pjoin(self.me_dir,'Events', '%s_%i' % (new_run,i))):
3719 i+=1
3720 new_run = '%s_%i' % (new_run,i)
3721
3712 evt_dir = pjoin(self.me_dir, 'Events')3722 evt_dir = pjoin(self.me_dir, 'Events')
37133723
3714 os.mkdir(pjoin(evt_dir, new_run))3724 os.mkdir(pjoin(evt_dir, new_run))
@@ -5828,6 +5838,21 @@
5828 self.run_card['mass_ion1'] != self.run_card['mass_ion2']):5838 self.run_card['mass_ion1'] != self.run_card['mass_ion2']):
5829 raise Exception, "Heavy ion profile for both beam are different but the symmetry used forbids it. \n Please generate your process with \"set group_subprocesses False\"."5839 raise Exception, "Heavy ion profile for both beam are different but the symmetry used forbids it. \n Please generate your process with \"set group_subprocesses False\"."
5830 5840
5841 # EWA mode should use MC over polarization and no systematics (due to pdf call inreweight)
5842 if self.run_card['lpp1'] in [2,3,4,-3,-4] or self.run_card['lpp2'] in [2,3,4,-3,-4]:
5843 if any(pdg in proc_charac['pdg_initial1']+ proc_charac['pdg_initial2']
5844 for pdg in [24, -24, 23]):
5845 if self.run_card['nhel'] == 0:
5846 logger.warning("only MC over polarization supported for EWA mode")
5847 self.do_set('run_card nhel 1')
5848 if self.run_card['use_syst']:
5849 logger.warning("evaluation of systematics not allowed in EWA mode. set use_syst to False")
5850 self.do_set('run_card use_syst False')
5851
5852 if self.run_card['lpp1'] in [4,-4] or self.run_card['lpp2'] in [4,-4]:
5853 if 22 in proc_charac['pdg_initial1']+ proc_charac['pdg_initial2']:
5854 raise Exception, "EPA not implemented from muon beam. (please open a ticket and we will do it)"
5855
5831 # check the status of small width status from LO5856 # check the status of small width status from LO
5832 for param in self.param_card['decay']:5857 for param in self.param_card['decay']:
5833 width = param.value5858 width = param.value
58345859
=== modified file 'madgraph/interface/madevent_interface.py'
--- madgraph/interface/madevent_interface.py 2020-06-18 20:23:25 +0000
+++ madgraph/interface/madevent_interface.py 2020-08-13 08:01:43 +0000
@@ -5414,6 +5414,7 @@
5414 elif mode in [1,2]:5414 elif mode in [1,2]:
5415 exename = os.path.basename(exe)5415 exename = os.path.basename(exe)
5416 # For condor cluster, create the input/output files5416 # For condor cluster, create the input/output files
5417 misc.sprint(exename)
5417 if 'ajob' in exename: 5418 if 'ajob' in exename:
5418 input_files = ['madevent','input_app.txt','symfact.dat','iproc.dat','dname.mg',5419 input_files = ['madevent','input_app.txt','symfact.dat','iproc.dat','dname.mg',
5419 pjoin(self.me_dir, 'SubProcesses','randinit')]5420 pjoin(self.me_dir, 'SubProcesses','randinit')]
@@ -5509,7 +5510,7 @@
5509 #submitting5510 #submitting
5510 self.cluster.cluster_submit(exe, stdout=stdout, cwd=cwd, argument=argument, 5511 self.cluster.cluster_submit(exe, stdout=stdout, cwd=cwd, argument=argument,
5511 input_files=input_files, output_files=output_files,5512 input_files=input_files, output_files=output_files,
5512 required_output=required_output, **opt)5513 required_output=required_output, allow_array=True, **opt)
5513 elif "refine_splitted.sh" in exename:5514 elif "refine_splitted.sh" in exename:
5514 input_files = ['madevent','symfact.dat','iproc.dat', 'dname.mg',5515 input_files = ['madevent','symfact.dat','iproc.dat', 'dname.mg',
5515 pjoin(self.me_dir, 'SubProcesses','randinit')] 5516 pjoin(self.me_dir, 'SubProcesses','randinit')]
@@ -5533,7 +5534,7 @@
5533 #submitting5534 #submitting
5534 self.cluster.cluster_submit(exe, stdout=stdout, cwd=cwd, argument=argument, 5535 self.cluster.cluster_submit(exe, stdout=stdout, cwd=cwd, argument=argument,
5535 input_files=input_files, output_files=output_files,5536 input_files=input_files, output_files=output_files,
5536 required_output=required_output, **opt) 5537 required_output=required_output,allow_array=True, **opt)
55375538
5538 5539
5539 5540
55405541
=== modified file 'madgraph/interface/madgraph_interface.py'
--- madgraph/interface/madgraph_interface.py 2020-06-17 06:15:07 +0000
+++ madgraph/interface/madgraph_interface.py 2020-08-13 08:01:43 +0000
@@ -8353,7 +8353,7 @@
8353 decay_dir = pjoin(path,'temp_decay')8353 decay_dir = pjoin(path,'temp_decay')
8354 logger_mg.info('More info in temporary files:\n %s/index.html' % (decay_dir))8354 logger_mg.info('More info in temporary files:\n %s/index.html' % (decay_dir))
8355 with misc.MuteLogger(['madgraph','ALOHA','cmdprint','madevent'], [40,40,40,40]):8355 with misc.MuteLogger(['madgraph','ALOHA','cmdprint','madevent'], [40,40,40,40]):
8356 self.exec_cmd('output %s -f' % decay_dir,child=False)8356 self.exec_cmd('output madevent %s -f' % decay_dir,child=False)
8357 8357
8358 #modify some parameter of the default run_card8358 #modify some parameter of the default run_card
8359 run_card = banner_module.RunCard(pjoin(decay_dir,'Cards','run_card.dat'))8359 run_card = banner_module.RunCard(pjoin(decay_dir,'Cards','run_card.dat'))
83608360
=== modified file 'madgraph/interface/reweight_interface.py'
--- madgraph/interface/reweight_interface.py 2020-06-16 13:10:57 +0000
+++ madgraph/interface/reweight_interface.py 2020-08-13 08:01:43 +0000
@@ -111,6 +111,7 @@
111 self.rwgt_dir = None111 self.rwgt_dir = None
112 self.exitted = False # Flag to know if do_quit was already called.112 self.exitted = False # Flag to know if do_quit was already called.
113 self.keep_ordering = False113 self.keep_ordering = False
114 self.use_eventid = False
114 if event_path:115 if event_path:
115 logger.info("Extracting the banner ...")116 logger.info("Extracting the banner ...")
116 self.do_import(event_path, allow_madspin=allow_madspin)117 self.do_import(event_path, allow_madspin=allow_madspin)
@@ -356,8 +357,8 @@
356 if self.has_standalone_dir:357 if self.has_standalone_dir:
357 self.terminate_fortran_executables()358 self.terminate_fortran_executables()
358 self.has_standalone_dir = False359 self.has_standalone_dir = False
359 elif args[0] == "keep_ordering":360 elif args[0] in ["keep_ordering", "use_eventid"]:
360 self.keep_ordering = banner.ConfigFile.format_variable(args[1], bool, "keep_ordering")361 setattr(self, args[0], banner.ConfigFile.format_variable(args[1], bool, args[0]))
361 elif args[0] == "allow_missing_finalstate":362 elif args[0] == "allow_missing_finalstate":
362 self.options["allow_missing_finalstate"] = banner.ConfigFile.format_variable(args[1], bool, "allow_missing_finalstate")363 self.options["allow_missing_finalstate"] = banner.ConfigFile.format_variable(args[1], bool, "allow_missing_finalstate")
363 elif args[0] == "process":364 elif args[0] == "process":
@@ -980,11 +981,12 @@
980 def calculate_weight(self, event):981 def calculate_weight(self, event):
981 """space defines where to find the calculator (in multicore)"""982 """space defines where to find the calculator (in multicore)"""
982 983
983 if not hasattr(self,'pdf'):984
984 lhapdf = misc.import_python_lhapdf(self.mg5cmd.options['lhapdf'])
985 self.pdf = lhapdf.mkPDF(self.banner.run_card.get_lhapdf_id())
986
987 if self.has_nlo and self.rwgt_mode != "LO":985 if self.has_nlo and self.rwgt_mode != "LO":
986 if not hasattr(self,'pdf'):
987 lhapdf = misc.import_python_lhapdf(self.mg5cmd.options['lhapdf'])
988 self.pdf = lhapdf.mkPDF(self.banner.run_card.get_lhapdf_id())
989
988 return self.calculate_nlo_weight(event)990 return self.calculate_nlo_weight(event)
989 991
990 event.parse_reweight() 992 event.parse_reweight()
@@ -1206,7 +1208,7 @@
1206 # base = "rw_mevirt"1208 # base = "rw_mevirt"
1207 #else:1209 #else:
1208 # base = "rw_me"1210 # base = "rw_me"
1209 1211
1210 if (not self.second_model and not self.second_process and not self.dedicated_path) or hypp_id==0:1212 if (not self.second_model and not self.second_process and not self.dedicated_path) or hypp_id==0:
1211 orig_order, Pdir, hel_dict = self.id_to_path[tag]1213 orig_order, Pdir, hel_dict = self.id_to_path[tag]
1212 else:1214 else:
@@ -1269,10 +1271,16 @@
1269 pold = list(p)1271 pold = list(p)
1270 p = self.invert_momenta(p)1272 p = self.invert_momenta(p)
1271 pdg = list(orig_order[0])+list(orig_order[1])1273 pdg = list(orig_order[0])+list(orig_order[1])
12721274 try:
1275 pid = event.ievent
1276 except AttributeError:
1277 pid = -1
1278 if not self.use_eventid:
1279 pid = -1
1280
1273 with misc.chdir(Pdir):1281 with misc.chdir(Pdir):
1274 with misc.stdchannel_redirected(sys.stdout, os.devnull):1282 with misc.stdchannel_redirected(sys.stdout, os.devnull):
1275 me_value = module.smatrixhel(pdg,p, event.aqcd, scale2, nhel)1283 me_value = module.smatrixhel(pdg, pid, p, event.aqcd, scale2, nhel)
1276 1284
1277 # for loop we have also the stability status code1285 # for loop we have also the stability status code
1278 if isinstance(me_value, tuple):1286 if isinstance(me_value, tuple):
@@ -1387,10 +1395,12 @@
1387 nlo_order = nlo_order.replace('noborn', 'virt')1395 nlo_order = nlo_order.replace('noborn', 'virt')
1388 commandline += "add process %s [%s] %s;" % (base,nlo_order,post)1396 commandline += "add process %s [%s] %s;" % (base,nlo_order,post)
1389 commandline = commandline.replace('add process', 'generate',1)1397 commandline = commandline.replace('add process', 'generate',1)
1390 logger.info("RETRY with %s", commandline)1398 if commandline:
1391 mgcmd.exec_cmd(commandline, precmd=True)1399 logger.info("RETRY with %s", commandline)
1392 has_nlo = False1400 mgcmd.exec_cmd(commandline, precmd=True)
1401 has_nlo = False
1393 except Exception, error:1402 except Exception, error:
1403 misc.sprint(type(error))
1394 raise1404 raise
1395 1405
1396 commandline = 'output standalone_rw %s --prefix=int' % pjoin(path_me,data['paths'][0])1406 commandline = 'output standalone_rw %s --prefix=int' % pjoin(path_me,data['paths'][0])
@@ -1802,8 +1812,9 @@
1802 data = self.id_to_path_second1812 data = self.id_to_path_second
18031813
1804 # get all the information1814 # get all the information
1805 all_pdgs = mymod.get_pdg_order()1815 allids, all_pids = mymod.get_pdg_order()
1806 all_pdgs = [[pdg for pdg in pdgs if pdg!=0] for pdgs in mymod.get_pdg_order()]1816 all_pdgs = [[pdg for pdg in pdgs if pdg!=0] for pdgs in allids]
1817 #all_pids = [pid for (pdgs, pid) in allids]
1807 all_prefix = [''.join(j).strip().lower() for j in mymod.get_prefix()]1818 all_prefix = [''.join(j).strip().lower() for j in mymod.get_prefix()]
1808 prefix_set = set(all_prefix)1819 prefix_set = set(all_prefix)
18091820
@@ -1826,7 +1837,7 @@
1826 misc.sprint(os.path.exists(pjoin(path_me,onedir,'SubProcesses','MadLoop5_resources', '%sHelConfigs.dat' % prefix.upper())))1837 misc.sprint(os.path.exists(pjoin(path_me,onedir,'SubProcesses','MadLoop5_resources', '%sHelConfigs.dat' % prefix.upper())))
1827 continue1838 continue
18281839
1829 for i,pdg in enumerate(all_pdgs):1840 for i,(pdg,pid) in enumerate(zip(all_pdgs,all_pids)):
1830 if self.is_decay:1841 if self.is_decay:
1831 incoming = [pdg[0]]1842 incoming = [pdg[0]]
1832 outgoing = pdg[1:]1843 outgoing = pdg[1:]
18331844
=== modified file 'madgraph/iolibs/export_v4.py'
--- madgraph/iolibs/export_v4.py 2020-06-20 21:10:10 +0000
+++ madgraph/iolibs/export_v4.py 2020-08-13 08:01:43 +0000
@@ -166,6 +166,7 @@
166 self.mgme_dir = MG5DIR166 self.mgme_dir = MG5DIR
167 self.dir_path = dir_path167 self.dir_path = dir_path
168 self.model = None168 self.model = None
169 self.beam_polarization = True
169170
170 self.opt = dict(self.default_opt)171 self.opt = dict(self.default_opt)
171 if opt:172 if opt:
@@ -185,12 +186,48 @@
185 def export_processes(self, matrix_elements, fortran_model):186 def export_processes(self, matrix_elements, fortran_model):
186 """Make the switch between grouped and not grouped output"""187 """Make the switch between grouped and not grouped output"""
187 188
189
188 calls = 0190 calls = 0
189 if isinstance(matrix_elements, group_subprocs.SubProcessGroupList):191 if isinstance(matrix_elements, group_subprocs.SubProcessGroupList):
192 # check handling for the polarization
193 for m in matrix_elements:
194 for me in m.get('matrix_elements'):
195 for p in me.get('processes'):
196 for pid in p.get_initial_ids():
197 spin = p.get('model').get_particle(pid).get('spin')
198 if spin != 2:
199 self.beam_polarization = False
200 break
201 else:
202 continue
203 break
204 else:
205 continue
206 break
207 else:
208 continue
209 break
210
190 for (group_number, me_group) in enumerate(matrix_elements):211 for (group_number, me_group) in enumerate(matrix_elements):
191 calls = calls + self.generate_subprocess_directory(\212 calls = calls + self.generate_subprocess_directory(\
192 me_group, fortran_model, group_number)213 me_group, fortran_model, group_number)
193 else:214 else:
215 # check handling for the polarization
216 self.beam_polarization = True
217 for me in matrix_elements.get_matrix_elements():
218 for p in me.get('processes'):
219 for pid in p.get_initial_ids():
220 spin = p.get('model').get_particle(pid).get('spin')
221 if spin != 2:
222 self.beam_polarization = False
223 break
224 else:
225 continue
226 break
227 else:
228 continue
229 break
230
194 for me_number, me in enumerate(matrix_elements.get_matrix_elements()):231 for me_number, me in enumerate(matrix_elements.get_matrix_elements()):
195 calls = calls + self.generate_subprocess_directory(\232 calls = calls + self.generate_subprocess_directory(\
196 me, fortran_model, me_number) 233 me, fortran_model, me_number)
@@ -2066,17 +2103,18 @@
2066 2103
2067 template = """2104 template = """
2068%(python_information)s2105%(python_information)s
2069 subroutine smatrixhel(pdgs, npdg, p, ALPHAS, SCALE2, nhel, ANS)2106 subroutine smatrixhel(pdgs, procid, npdg, p, ALPHAS, SCALE2, nhel, ANS)
2070 IMPLICIT NONE2107 IMPLICIT NONE
20712108
2072CF2PY double precision, intent(in), dimension(0:3,npdg) :: p2109CF2PY double precision, intent(in), dimension(0:3,npdg) :: p
2073CF2PY integer, intent(in), dimension(npdg) :: pdgs2110CF2PY integer, intent(in), dimension(npdg) :: pdgs
2111CF2PY integer, intent(in):: procid
2074CF2PY integer, intent(in) :: npdg2112CF2PY integer, intent(in) :: npdg
2075CF2PY double precision, intent(out) :: ANS2113CF2PY double precision, intent(out) :: ANS
2076CF2PY double precision, intent(in) :: ALPHAS2114CF2PY double precision, intent(in) :: ALPHAS
2077CF2PY double precision, intent(in) :: SCALE22115CF2PY double precision, intent(in) :: SCALE2
2078 integer pdgs(*)2116 integer pdgs(*)
2079 integer npdg, nhel2117 integer npdg, nhel, procid
2080 double precision p(*)2118 double precision p(*)
2081 double precision ANS, ALPHAS, PI,SCALE22119 double precision ANS, ALPHAS, PI,SCALE2
2082 include 'coupl.inc'2120 include 'coupl.inc'
@@ -2128,12 +2166,16 @@
2128 end2166 end
2129 2167
21302168
2131 subroutine get_pdg_order(PDG)2169 subroutine get_pdg_order(PDG, ALLPROC)
2132 IMPLICIT NONE2170 IMPLICIT NONE
2133CF2PY INTEGER, intent(out) :: PDG(%(nb_me)i,%(maxpart)i) 2171CF2PY INTEGER, intent(out) :: PDG(%(nb_me)i,%(maxpart)i)
2172CF2PY INTEGER, intent(out) :: ALLPROC(%(nb_me)i)
2134 INTEGER PDG(%(nb_me)i,%(maxpart)i), PDGS(%(nb_me)i,%(maxpart)i)2173 INTEGER PDG(%(nb_me)i,%(maxpart)i), PDGS(%(nb_me)i,%(maxpart)i)
2174 INTEGER ALLPROC(%(nb_me)i),PIDs(%(nb_me)i)
2135 DATA PDGS/ %(pdgs)s /2175 DATA PDGS/ %(pdgs)s /
2176 DATA PIDS/ %(pids)s /
2136 PDG = PDGS2177 PDG = PDGS
2178 ALLPROC = PIDS
2137 RETURN2179 RETURN
2138 END 2180 END
21392181
@@ -2151,31 +2193,33 @@
2151 2193
2152 allids = self.prefix_info.keys()2194 allids = self.prefix_info.keys()
2153 allprefix = [self.prefix_info[key][0] for key in allids]2195 allprefix = [self.prefix_info[key][0] for key in allids]
2154 min_nexternal = min([len(ids) for ids in allids])2196 min_nexternal = min([len(ids[0]) for ids in allids])
2155 max_nexternal = max([len(ids) for ids in allids])2197 max_nexternal = max([len(ids[0]) for ids in allids])
21562198
2157 info = []2199 info = []
2158 for key, (prefix, tag) in self.prefix_info.items():2200 for (key, pid), (prefix, tag) in self.prefix_info.items():
2159 info.append('#PY %s : %s # %s' % (tag, key, prefix))2201 info.append('#PY %s : %s # %s %s' % (tag, key, prefix, pid))
2160 2202
21612203
2162 text = []2204 text = []
2163 for n_ext in range(min_nexternal, max_nexternal+1):2205 for n_ext in range(min_nexternal, max_nexternal+1):
2164 current = [ids for ids in allids if len(ids)==n_ext]2206 current_id = [ids[0] for ids in allids if len(ids[0])==n_ext]
2165 if not current:2207 current_pid = [ids[1] for ids in allids if len(ids[0])==n_ext]
2208 if not current_id:
2166 continue2209 continue
2167 if min_nexternal != max_nexternal:2210 if min_nexternal != max_nexternal:
2168 if n_ext == min_nexternal:2211 if n_ext == min_nexternal:
2169 text.append(' if (npdg.eq.%i)then' % n_ext)2212 text.append(' if (npdg.eq.%i)then' % n_ext)
2170 else:2213 else:
2171 text.append(' else if (npdg.eq.%i)then' % n_ext)2214 text.append(' else if (npdg.eq.%i)then' % n_ext)
2172 for ii,pdgs in enumerate(current):2215 for ii,pdgs in enumerate(current_id):
2216 pid = current_pid[ii]
2173 condition = '.and.'.join(['%i.eq.pdgs(%i)' %(pdg, i+1) for i, pdg in enumerate(pdgs)])2217 condition = '.and.'.join(['%i.eq.pdgs(%i)' %(pdg, i+1) for i, pdg in enumerate(pdgs)])
2174 if ii==0:2218 if ii==0:
2175 text.append( ' if(%s) then ! %i' % (condition, i))2219 text.append( ' if(%s.and.(procid.le.0.or.procid.eq.%d)) then ! %i' % (condition, pid, i))
2176 else:2220 else:
2177 text.append( ' else if(%s) then ! %i' % (condition,i))2221 text.append( ' else if(%s.and.(procid.le.0.or.procid.eq.%d)) then ! %i' % (condition,pid,i))
2178 text.append(' call %ssmatrixhel(p, nhel, ans)' % self.prefix_info[pdgs][0])2222 text.append(' call %ssmatrixhel(p, nhel, ans)' % self.prefix_info[(pdgs,pid)][0])
2179 text.append(' endif')2223 text.append(' endif')
2180 #close the function2224 #close the function
2181 if min_nexternal != max_nexternal:2225 if min_nexternal != max_nexternal:
@@ -2192,8 +2236,9 @@
2192 'maxpart': max_nexternal,2236 'maxpart': max_nexternal,
2193 'nb_me': len(allids),2237 'nb_me': len(allids),
2194 'pdgs': ','.join(str(pdg[i]) if i<len(pdg) else '0' 2238 'pdgs': ','.join(str(pdg[i]) if i<len(pdg) else '0'
2195 for i in range(max_nexternal) for pdg in allids),2239 for i in range(max_nexternal) for (pdg,pid) in allids),
2196 'prefix':'\',\''.join(allprefix),2240 'prefix':'\',\''.join(allprefix),
2241 'pids': ','.join(str(pid) for (pdg,pid) in allids),
2197 'parameter_setup': '\n'.join(parameter_setup),2242 'parameter_setup': '\n'.join(parameter_setup),
2198 }2243 }
2199 formatting['lenprefix'] = len(formatting['prefix'])2244 formatting['lenprefix'] = len(formatting['prefix'])
@@ -2311,7 +2356,7 @@
2311 raise Exception, '--prefix options supports only \'int\' and \'proc\''2356 raise Exception, '--prefix options supports only \'int\' and \'proc\''
2312 for proc in matrix_element.get('processes'):2357 for proc in matrix_element.get('processes'):
2313 ids = [l.get('id') for l in proc.get('legs_with_decays')]2358 ids = [l.get('id') for l in proc.get('legs_with_decays')]
2314 self.prefix_info[tuple(ids)] = [proc_prefix, proc.get_tag()] 2359 self.prefix_info[(tuple(ids), proc.get('id'))] = [proc_prefix, proc.get_tag()]
2315 2360
2316 calls = self.write_matrix_element_v4(2361 calls = self.write_matrix_element_v4(
2317 writers.FortranWriter(filename),2362 writers.FortranWriter(filename),
@@ -4186,11 +4231,24 @@
4186 split_orders if len(split_orders)>0 else ['ALL_ORDERS'])4231 split_orders if len(split_orders)>0 else ['ALL_ORDERS'])
4187 replace_dict['jamp_lines'] = '\n'.join(jamp_lines)4232 replace_dict['jamp_lines'] = '\n'.join(jamp_lines)
41884233
4234 if self.beam_polarization:
4235 replace_dict['beam_polarization'] = """
4236 DO JJ=1,nincoming
4237 IF(POL(JJ).NE.1d0.AND.NHEL(JJ,I).EQ.INT(SIGN(1d0,POL(JJ)))) THEN
4238 T=T*ABS(POL(JJ))
4239 ELSE IF(POL(JJ).NE.1d0)THEN
4240 T=T*(2d0-ABS(POL(JJ)))
4241 ENDIF
4242 ENDDO
4243 """
4244 else:
4245 replace_dict['beam_polarization'] = ""
4246
4247
4189 replace_dict['template_file'] = pjoin(_file_path, \4248 replace_dict['template_file'] = pjoin(_file_path, \
4190 'iolibs/template_files/%s' % self.matrix_file)4249 'iolibs/template_files/%s' % self.matrix_file)
4191 replace_dict['template_file2'] = pjoin(_file_path, \4250 replace_dict['template_file2'] = pjoin(_file_path, \
4192 'iolibs/template_files/split_orders_helping_functions.inc') 4251 'iolibs/template_files/split_orders_helping_functions.inc')
4193
4194 s1,s2 = matrix_element.get_spin_state_initial()4252 s1,s2 = matrix_element.get_spin_state_initial()
4195 replace_dict['nb_spin_state1'] = s14253 replace_dict['nb_spin_state1'] = s1
4196 replace_dict['nb_spin_state2'] = s24254 replace_dict['nb_spin_state2'] = s2
@@ -4297,14 +4355,21 @@
4297 replace_dict['define_subdiag_lines'] = ""4355 replace_dict['define_subdiag_lines'] = ""
4298 replace_dict['cutsdone'] = " cutsdone=.false.\n cutspassed=.false."4356 replace_dict['cutsdone'] = " cutsdone=.false.\n cutspassed=.false."
42994357
4358 ncomb=matrix_element.get_helicity_combinations()
4359
4360 replace_dict['ncomb']= ncomb
4361 helicity_lines = self.get_helicity_lines(matrix_element)
4362 replace_dict['helicity_lines'] = helicity_lines
4363
4300 if not isinstance(self, ProcessExporterFortranMEGroup):4364 if not isinstance(self, ProcessExporterFortranMEGroup):
4301 ncomb=matrix_element.get_helicity_combinations()
4302 replace_dict['read_write_good_hel'] = self.read_write_good_hel(ncomb)4365 replace_dict['read_write_good_hel'] = self.read_write_good_hel(ncomb)
4303 else:4366 else:
4304 replace_dict['read_write_good_hel'] = ""4367 replace_dict['read_write_good_hel'] = ""
4368 # Extract helicity lines
4305 4369
4306 context = {'read_write_good_hel':True}4370 context = {'read_write_good_hel':True}
4307 4371
4372
4308 if writer:4373 if writer:
4309 file = open(pjoin(_file_path, \4374 file = open(pjoin(_file_path, \
4310 'iolibs/template_files/auto_dsig_v4.inc')).read()4375 'iolibs/template_files/auto_dsig_v4.inc')).read()
43114376
=== modified file 'madgraph/iolibs/template_files/auto_dsig_v4.inc'
--- madgraph/iolibs/template_files/auto_dsig_v4.inc 2019-06-10 19:05:58 +0000
+++ madgraph/iolibs/template_files/auto_dsig_v4.inc 2020-08-13 08:01:43 +0000
@@ -156,3 +156,18 @@
156%(read_write_good_hel)s156%(read_write_good_hel)s
157157
158## }158## }
159
160
161 integer FUNCTION GET_NHEL%(proc_id)s(hel, ipart)
162 implicit none
163 integer hel,i, ipart
164 Include 'nexternal.inc'
165 integer one_nhel(nexternal)
166 INTEGER NCOMB
167 PARAMETER ( NCOMB=%(ncomb)d)
168 INTEGER NHEL(NEXTERNAL,NCOMB)
169 %(helicity_lines)s
170
171 get_nhel%(proc_id)s = nhel(ipart, hel)
172 return
173 end
159174
=== modified file 'madgraph/iolibs/template_files/loop_optimized/check_sa_all.py.inc'
--- madgraph/iolibs/template_files/loop_optimized/check_sa_all.py.inc 2016-10-20 23:12:29 +0000
+++ madgraph/iolibs/template_files/loop_optimized/check_sa_all.py.inc 2020-08-13 08:01:43 +0000
@@ -49,10 +49,10 @@
49allmatrix2py.set_madloop_path(os.path.abspath(pjoin(root_path,'MadLoop5_resources')))49allmatrix2py.set_madloop_path(os.path.abspath(pjoin(root_path,'MadLoop5_resources')))
50# List all processes available in this module50# List all processes available in this module
5151
52all_procs_available = [[pdg for pdg in proc_pdgs if pdg!=0] for proc_pdgs in allmatrix2py.get_pdg_order()]52all_procs_available = [[(pdg,pids[i]) for i, pdg in enumerate(proc_pdgs) if pdg!=0] for (proc_pdgs, pids) in allmatrix2py.get_pdg_order()]
53print "Available processes are:"53print "Available processes are:"
54for process_pdgs in all_procs_available:54for process_pdgs in all_procs_available:
55 print " --> %s"%str(process_pdgs)55 print " --> %s: process id: %i "%str(process_pdgs[0], process_pdgs[1])
5656
57def invert_momenta(p):57def invert_momenta(p):
58 """ fortran/C-python do not order table in the same order"""58 """ fortran/C-python do not order table in the same order"""
@@ -62,7 +62,7 @@
6262
63# The kinematic configuration in the convention (E, px, py, pz) and with particles ordered as in the process definition.63# The kinematic configuration in the convention (E, px, py, pz) and with particles ordered as in the process definition.
64# This is the structure of this dictionary.64# This is the structure of this dictionary.
65p= dict( (tuple(process_pdgs),[[None,]*4]*len(process_pdgs)) for process_pdgs in all_procs_available)65p= dict( (tuple(process_pdgs[0]),[[None,]*4]*len(process_pdgs[0])) for process_pdgs in all_procs_available)
6666
67if (p.values()[0])[0][0] is None:67if (p.values()[0])[0][0] is None:
68 if not os.path.isfile(pjoin(root_path,'PS.input')):68 if not os.path.isfile(pjoin(root_path,'PS.input')):
@@ -120,7 +120,7 @@
120 # Choice of renormalization scale120 # Choice of renormalization scale
121 renormalization_scale = 91.188121 renormalization_scale = 91.188
122122
123 finite_loop_me, return_code = allmatrix2py.smatrixhel(pdgs=list(process_pdgs),123 finite_loop_me, return_code = allmatrix2py.smatrixhel(pdgs=list(process_pdgs), procid=-1,
124 p=P, alphas=alphas,scales2=renormalization_scale,nhel=nhel)124 p=P, alphas=alphas,scales2=renormalization_scale,nhel=nhel)
125125
126 print '* %-108s *'%' MadLoop evaluation for the process '126 print '* %-108s *'%' MadLoop evaluation for the process '
127127
=== modified file 'madgraph/iolibs/template_files/loop_optimized/loop_matrix_standalone.inc'
--- madgraph/iolibs/template_files/loop_optimized/loop_matrix_standalone.inc 2017-07-31 22:08:40 +0000
+++ madgraph/iolibs/template_files/loop_optimized/loop_matrix_standalone.inc 2020-08-13 08:01:43 +0000
@@ -2737,11 +2737,14 @@
2737 PARAMETER (NEXTERNAL=%(nexternal)d)2737 PARAMETER (NEXTERNAL=%(nexternal)d)
2738 INTEGER NSQUAREDSO2738 INTEGER NSQUAREDSO
2739 PARAMETER (NSQUAREDSO=%(nSquaredSO)d)2739 PARAMETER (NSQUAREDSO=%(nSquaredSO)d)
2740 %(get_nsqso_born)s
2740C 2741C
2741C ARGUMENTS 2742C ARGUMENTS
2742C 2743C
2743 %(real_dp_format)s P(0:3,NEXTERNAL)2744 %(real_dp_format)s P(0:3,NEXTERNAL)
2744 %(real_dp_format)s ANS(0:3,0:NSQUAREDSO)2745 INTEGER ANS_DIMENSION
2746 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2747 %(real_dp_format)s ANS(0:3,0:ANS_DIMENSION)
2745 INTEGER HEL, USERHEL2748 INTEGER HEL, USERHEL
2746 common/%(proc_prefix)sUSERCHOICE/USERHEL2749 common/%(proc_prefix)sUSERCHOICE/USERHEL
2747C ----------2750C ----------
@@ -2764,7 +2767,10 @@
2764C ARGUMENTS 2767C ARGUMENTS
2765C 2768C
2766 %(real_dp_format)s P(0:3,NEXTERNAL)2769 %(real_dp_format)s P(0:3,NEXTERNAL)
2767 %(real_dp_format)s ANS(0:3,0:NSQUAREDSO)2770 %(get_nsqso_born)s
2771 INTEGER ANS_DIMENSION
2772 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2773 %(real_dp_format)s ANS(0:3,0:ANS_DIMENSION)
2768 INTEGER HEL, RET_CODE2774 INTEGER HEL, RET_CODE
2769 %(real_dp_format)s PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2775 %(real_dp_format)s PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2770C2776C
@@ -2875,7 +2881,10 @@
2875C ARGUMENTS 2881C ARGUMENTS
2876C 2882C
2877 %(real_dp_format)s P(0:3,NEXTERNAL)2883 %(real_dp_format)s P(0:3,NEXTERNAL)
2878 %(real_dp_format)s ANS(0:3,0:NSQUAREDSO)2884 %(get_nsqso_born)s
2885 INTEGER ANS_DIMENSION
2886 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2887 %(real_dp_format)s ANS(0:3,0:ANS_DIMENSION)
2879 %(real_dp_format)s PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2888 %(real_dp_format)s PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2880 INTEGER RET_CODE 2889 INTEGER RET_CODE
2881C2890C
28822891
=== modified file 'madgraph/iolibs/template_files/makefile_sa_f2py'
--- madgraph/iolibs/template_files/makefile_sa_f2py 2017-09-25 21:30:36 +0000
+++ madgraph/iolibs/template_files/makefile_sa_f2py 2020-08-13 08:01:43 +0000
@@ -2,7 +2,8 @@
2SHELL = /bin/bash2SHELL = /bin/bash
3LIBDIR = ../lib/3LIBDIR = ../lib/
4PROG = check4PROG = check
5LINKLIBS = -L../lib/ -ldhelas -lmodel5LINKLIBS_ME = -L../lib/ -ldhelas -lmodel
6LINKLIBS_ALL = -L../lib/ -lmatrix -ldhelas -lmodel
6LIBS = $(LIBDIR)libdhelas.$(libext) $(LIBDIR)libmodel.$(libext)7LIBS = $(LIBDIR)libdhelas.$(libext) $(LIBDIR)libmodel.$(libext)
7PROCESS= allmatrix.o8PROCESS= allmatrix.o
8LIBRARY = libmatrix.a9LIBRARY = libmatrix.a
@@ -12,12 +13,19 @@
12 MENUM=213 MENUM=2
13endif14endif
1415
1516%$(MENUM)py.so: %/matrix.f
16allmatrix$(MENUM)py.so: $(LIBDIR)/$(LIBRARY) all_matrix.o17 $(F2PY) --f77exec=$(FC) $(LINKLIBS_ME) -c $^ -m $(patsubst %/matrix.f,%$(MENUM)py,$^)
17 $(F2PY) --f77exec=$(FC) $(LINKLIBS) -lmatrix -c all_matrix.f */matrix.f -m allmatrix$(MENUM)py18
1819all_matrix$(MENUM)py.so: $(LIBDIR)/$(LIBRARY) all_matrix.f
1920 $(F2PY) --f77exec=$(FC) $(LINKLIBS_ALL) -c all_matrix.f -m all_matrix$(MENUM)py
2021
22
23allmatrix$(MENUM)py.so: $(patsubst %/matrix.f,%$(MENUM)py.so,$(wildcard */matrix.f)) all_matrix$(MENUM)py.so
24 for lib in $(patsubst %.so,%,$^); do \
25 echo "from $$lib import *" >> allmatrix$(MENUM)py.py; \
26 done
27
28
21$(LIBDIR)/$(LIBRARY): $(patsubst %.f,%.o,$(wildcard */matrix.f)) all_matrix.o29$(LIBDIR)/$(LIBRARY): $(patsubst %.f,%.o,$(wildcard */matrix.f)) all_matrix.o
22 $(call CREATELIB, $@, $^) 30 $(call CREATELIB, $@, $^)
2331
2432
=== modified file 'madgraph/iolibs/template_files/matrix_madevent_group_v4.inc'
--- madgraph/iolibs/template_files/matrix_madevent_group_v4.inc 2019-06-26 10:35:18 +0000
+++ madgraph/iolibs/template_files/matrix_madevent_group_v4.inc 2020-08-13 08:01:43 +0000
@@ -123,13 +123,7 @@
123 DO I=1,NCOMB123 DO I=1,NCOMB
124 IF (GOODHEL(I,IMIRROR) .OR. NTRY(IMIRROR).LE.MAXTRIES.or.(ISUM_HEL.NE.0).or.THIS_NTRY(IMIRROR).le.2) THEN124 IF (GOODHEL(I,IMIRROR) .OR. NTRY(IMIRROR).LE.MAXTRIES.or.(ISUM_HEL.NE.0).or.THIS_NTRY(IMIRROR).le.2) THEN
125 T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1))125 T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1))
126 DO JJ=1,nincoming126 %(beam_polarization)s
127 IF(POL(JJ).NE.1d0.AND.NHEL(JJ,I).EQ.INT(SIGN(1d0,POL(JJ)))) THEN
128 T=T*ABS(POL(JJ))*NB_SPIN_STATE_IN(JJ)/2d0 ! NB_SPIN_STATE(JJ)/2d0 is added for polarised beam
129 ELSE IF(POL(JJ).NE.1d0)THEN
130 T=T*(2d0-ABS(POL(JJ)))*NB_SPIN_STATE_IN(JJ)/2d0
131 ENDIF
132 ENDDO
133 IF (ISUM_HEL.NE.0.and.DS_get_dim_status('Helicity').eq.0.and.ALLOW_HELICITY_GRID_ENTRIES) then127 IF (ISUM_HEL.NE.0.and.DS_get_dim_status('Helicity').eq.0.and.ALLOW_HELICITY_GRID_ENTRIES) then
134 call DS_add_entry('Helicity',I,T)128 call DS_add_entry('Helicity',I,T)
135 endif129 endif
@@ -174,14 +168,7 @@
174 I = HEL_PICKED168 I = HEL_PICKED
175169
176 T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1))170 T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1))
177171 %(beam_polarization)s
178 DO JJ=1,nincoming
179 IF(POL(JJ).NE.1d0.AND.NHEL(JJ,I).EQ.INT(SIGN(1d0,POL(JJ)))) THEN
180 T=T*ABS(POL(JJ))
181 ELSE IF(POL(JJ).NE.1d0)THEN
182 T=T*(2d0-ABS(POL(JJ)))
183 ENDIF
184 ENDDO
185c Always one helicity at a time172c Always one helicity at a time
186 ANS = T173 ANS = T
187c Include the Jacobian from helicity sampling174c Include the Jacobian from helicity sampling
188175
=== modified file 'madgraph/iolibs/template_files/matrix_madevent_v4.inc'
--- madgraph/iolibs/template_files/matrix_madevent_v4.inc 2019-09-26 11:09:58 +0000
+++ madgraph/iolibs/template_files/matrix_madevent_v4.inc 2020-08-13 08:01:43 +0000
@@ -103,13 +103,7 @@
103 DO I=1,NCOMB103 DO I=1,NCOMB
104 IF (GOODHEL(I) .OR. NTRY .LE. MAXTRIES.OR.(ISUM_HEL.NE.0)) THEN104 IF (GOODHEL(I) .OR. NTRY .LE. MAXTRIES.OR.(ISUM_HEL.NE.0)) THEN
105 T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) 105 T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1))
106 DO JJ=1,nincoming106 %(beam_polarization)s
107 IF(POL(JJ).NE.1d0.AND.NHEL(JJ,I).EQ.INT(SIGN(1d0,POL(JJ)))) THEN
108 T=T*ABS(POL(JJ))*NB_SPIN_STATE(JJ)/2d0 ! NB_SPIN_STATE(JJ)/2d0 is added for polarised beam
109 ELSE IF(POL(JJ).NE.1d0)THEN
110 T=T*(2d0-ABS(POL(JJ)))*NB_SPIN_STATE(JJ)/2d0
111 ENDIF
112 ENDDO
113 IF (ISUM_HEL.NE.0) then107 IF (ISUM_HEL.NE.0) then
114 call DS_add_entry('Helicity',I,T)108 call DS_add_entry('Helicity',I,T)
115 endif109 endif
@@ -153,13 +147,7 @@
153 I = HEL_PICKED147 I = HEL_PICKED
154 148
155 T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) 149 T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1))
156 DO JJ=1,nincoming150 %(beam_polarization)s
157 IF(POL(JJ).NE.1d0.AND.NHEL(JJ,I).EQ.INT(SIGN(1d0,POL(JJ)))) 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
163c Always one helicity at a time151c Always one helicity at a time
164 ANS = T152 ANS = T
165c Include the Jacobian from helicity sampling153c Include the Jacobian from helicity sampling
166154
=== modified file 'madgraph/iolibs/template_files/super_auto_dsig_group_v4.inc'
--- madgraph/iolibs/template_files/super_auto_dsig_group_v4.inc 2020-01-16 07:19:30 +0000
+++ madgraph/iolibs/template_files/super_auto_dsig_group_v4.inc 2020-08-13 08:01:43 +0000
@@ -506,5 +506,10 @@
506C506C
507%(read_write_good_hel)s507%(read_write_good_hel)s
508508
509509 integer function get_nhel(hel, partid)
510510 implicit none
511 integer hel, partid
512 write(*,*) "do not support this type of pdf with group_subprocess=True"
513 stop 1
514 return
515 end
511516
=== modified file 'madgraph/loop/loop_exporters.py'
--- madgraph/loop/loop_exporters.py 2020-06-20 21:10:10 +0000
+++ madgraph/loop/loop_exporters.py 2020-08-13 08:01:43 +0000
@@ -334,11 +334,12 @@
334 CALL SETMADLOOPPATH(PATH)334 CALL SETMADLOOPPATH(PATH)
335 END335 END
336336
337 subroutine smatrixhel(pdgs, npdg, p, ALPHAS, SCALES2, nhel, ANS, RETURNCODE)337 subroutine smatrixhel(pdgs, procid, npdg, p, ALPHAS, SCALES2, nhel, ANS, RETURNCODE)
338 IMPLICIT NONE338 IMPLICIT NONE
339339
340CF2PY double precision, intent(in), dimension(0:3,npdg) :: p340CF2PY double precision, intent(in), dimension(0:3,npdg) :: p
341CF2PY integer, intent(in), dimension(npdg) :: pdgs341CF2PY integer, intent(in), dimension(npdg) :: pdgs
342CF2PY integer, intent(in):: procid
342CF2PY integer, intent(in) :: npdg343CF2PY integer, intent(in) :: npdg
343CF2PY double precision, intent(out) :: ANS344CF2PY double precision, intent(out) :: ANS
344CF2PY integer, intent(out) :: RETURNCODE345CF2PY integer, intent(out) :: RETURNCODE
@@ -346,22 +347,25 @@
346CF2PY double precision, intent(in) :: SCALES2347CF2PY double precision, intent(in) :: SCALES2
347348
348 integer pdgs(*)349 integer pdgs(*)
349 integer npdg, nhel, RETURNCODE350 integer npdg, nhel, RETURNCODE, procid
350 double precision p(*)351 double precision p(*)
351 double precision ANS, ALPHAS, PI,SCALES2352 double precision ANS, ALPHAS, PI,SCALES2
352353 1 continue
353%(smatrixhel)s354%(smatrixhel)s
354355
355 return356 return
356 end357 end
357 358
358 subroutine get_pdg_order(OUT)359 subroutine get_pdg_order(OUT, ALLPROC)
359 IMPLICIT NONE360 IMPLICIT NONE
360CF2PY INTEGER, intent(out) :: OUT(%(nb_me)i,%(maxpart)i) 361CF2PY INTEGER, intent(out) :: OUT(%(nb_me)i,%(maxpart)i)
361 362CF2PY INTEGER, intent(out) :: ALLPROC(%(nb_me)i)
362 INTEGER OUT(%(nb_me)i,%(maxpart)i), PDGS(%(nb_me)i,%(maxpart)i)363 INTEGER OUT(%(nb_me)i,%(maxpart)i), PDGS(%(nb_me)i,%(maxpart)i)
364 INTEGER ALLPROC(%(nb_me)i),PIDs(%(nb_me)i)
363 DATA PDGS/ %(pdgs)s /365 DATA PDGS/ %(pdgs)s /
366 DATA PIDS/ %(pids)s /
364 OUT=PDGS367 OUT=PDGS
368 ALLPROC = PIDS
365 RETURN369 RETURN
366 END370 END
367 371
@@ -378,31 +382,37 @@
378 382
379 allids = self.prefix_info.keys()383 allids = self.prefix_info.keys()
380 allprefix = [self.prefix_info[key][0] for key in allids]384 allprefix = [self.prefix_info[key][0] for key in allids]
381 min_nexternal = min([len(ids) for ids in allids])385 min_nexternal = min([len(ids[0]) for ids in allids])
382 max_nexternal = max([len(ids) for ids in allids])386 max_nexternal = max([len(ids[0]) for ids in allids])
383387
384 info = []388 info = []
385 for key, (prefix, tag) in self.prefix_info.items():389 for (key,pid), (prefix, tag) in self.prefix_info.items():
386 info.append('#PY %s : %s # %s' % (tag, key, prefix))390 info.append('#PY %s : %s # %s %s' % (tag, key, prefix, pid))
387 391
388392
389 text = []393 text = []
390 for n_ext in range(min_nexternal, max_nexternal+1):394 for n_ext in range(min_nexternal, max_nexternal+1):
391 current = [ids for ids in allids if len(ids)==n_ext]395 current_id = [ids[0] for ids in allids if len(ids[0])==n_ext]
392 if not current:396 current_pid = [ids[1] for ids in allids if len(ids[0])==n_ext]
397 if not current_id:
393 continue398 continue
394 if min_nexternal != max_nexternal:399 if min_nexternal != max_nexternal:
395 if n_ext == min_nexternal:400 if n_ext == min_nexternal:
396 text.append(' if (npdg.eq.%i)then' % n_ext)401 text.append(' if (npdg.eq.%i)then' % n_ext)
397 else:402 else:
398 text.append(' else if (npdg.eq.%i)then' % n_ext)403 text.append(' else if (npdg.eq.%i)then' % n_ext)
399 for ii,pdgs in enumerate(current):404 for ii,pdgs in enumerate(current_id):
405 pid = current_pid[ii]
400 condition = '.and.'.join(['%i.eq.pdgs(%i)' %(pdg, i+1) for i, pdg in enumerate(pdgs)])406 condition = '.and.'.join(['%i.eq.pdgs(%i)' %(pdg, i+1) for i, pdg in enumerate(pdgs)])
401 if ii==0:407 if ii==0:
402 text.append( ' if(%s) then ! %i' % (condition, i))408 text.append( ' if(%s.and.(procid.le.0.or.procid.eq.%d)) then ! %i' % (condition, pid, i))
403 else:409 else:
404 text.append( ' else if(%s) then ! %i' % (condition,i))410 text.append( ' else if(%s.and.(procid.le.0.or.procid.eq.%d)) then ! %i' % (condition,pid,i))
405 text.append(' call %sget_me(p, ALPHAS, DSQRT(SCALES2), NHEL, ANS, RETURNCODE)' % self.prefix_info[pdgs][0])411 text.append(' call %sget_me(p, ALPHAS, DSQRT(SCALES2), NHEL, ANS, RETURNCODE)' % self.prefix_info[(pdgs,pid)][0])
412 text.append( ' else if(procid.gt.0) then !')
413 text.append( ' procid = -1' )
414 text.append( ' goto 1' )
415
406 text.append(' endif')416 text.append(' endif')
407 #close the function417 #close the function
408 if min_nexternal != max_nexternal:418 if min_nexternal != max_nexternal:
@@ -422,9 +432,10 @@
422 'nb_me': len(allids),432 'nb_me': len(allids),
423 'pdgs': ','.join([str(pdg[i]) if i<len(pdg) else '0' 433 'pdgs': ','.join([str(pdg[i]) if i<len(pdg) else '0'
424 for i in range(max_nexternal) \434 for i in range(max_nexternal) \
425 for pdg in allids]),435 for (pdg,pid) in allids]),
426 'prefix':'\',\''.join(allprefix),436 'prefix':'\',\''.join(allprefix),
427 'parameter_setup': '\n'.join(parameter_setup),437 'parameter_setup': '\n'.join(parameter_setup),
438 'pids': ','.join(str(pid) for (pdg,pid) in allids),
428 }439 }
429 440
430 441
@@ -1023,7 +1034,7 @@
1023 if 'prefix' in self.cmd_options and self.cmd_options['prefix'] in ['int','proc']:1034 if 'prefix' in self.cmd_options and self.cmd_options['prefix'] in ['int','proc']:
1024 for proc in matrix_element.get('processes'):1035 for proc in matrix_element.get('processes'):
1025 ids = [l.get('id') for l in proc.get('legs_with_decays')]1036 ids = [l.get('id') for l in proc.get('legs_with_decays')]
1026 self.prefix_info[tuple(ids)] = [dict['proc_prefix'], proc.get_tag()]1037 self.prefix_info[tuple(ids),proc.get('id')] = [dict['proc_prefix'], proc.get_tag()]
10271038
1028 # The proc_id is used for MadEvent grouping, so none of our concern here1039 # The proc_id is used for MadEvent grouping, so none of our concern here
1029 # and it is simply set to an empty string. 1040 # and it is simply set to an empty string.
@@ -3013,7 +3024,6 @@
3013 matrix_element.rep_dict['coef_construction']=replace_dict['coef_construction'] 3024 matrix_element.rep_dict['coef_construction']=replace_dict['coef_construction']
3014 3025
3015 replace_dict['coef_merging']='\n'.join(coef_merging)3026 replace_dict['coef_merging']='\n'.join(coef_merging)
3016
3017 file = file % replace_dict3027 file = file % replace_dict
3018 number_of_calls = len(filter(lambda call: call.find('CALL LOOP') != 0, \3028 number_of_calls = len(filter(lambda call: call.find('CALL LOOP') != 0, \
3019 loop_CT_calls)) 3029 loop_CT_calls))
30203030
=== modified file 'madgraph/various/banner.py'
--- madgraph/various/banner.py 2020-05-25 21:16:05 +0000
+++ madgraph/various/banner.py 2020-08-13 08:01:43 +0000
@@ -24,6 +24,7 @@
24import math24import math
25import StringIO25import StringIO
26import itertools26import itertools
27import time
2728
2829
29pjoin = os.path.join30pjoin = os.path.join
@@ -2896,10 +2897,10 @@
2896 self.add_param("nevents", 10000) 2897 self.add_param("nevents", 10000)
2897 self.add_param("iseed", 0)2898 self.add_param("iseed", 0)
2898 self.add_param("python_seed", -2, include=False, hidden=True, comment="controlling python seed [handling in particular the final unweighting].\n -1 means use default from random module.\n -2 means set to same value as iseed")2899 self.add_param("python_seed", -2, include=False, hidden=True, comment="controlling python seed [handling in particular the final unweighting].\n -1 means use default from random module.\n -2 means set to same value as iseed")
2899 self.add_param("lpp1", 1, fortran_name="lpp(1)", allowed=[-1,1,0,2,3,9, -2,-3],2900 self.add_param("lpp1", 1, fortran_name="lpp(1)", allowed=[-1,1,0,2,3,4,9,-2,-3,-4],
2900 comment='first beam energy distribution:\n 0: fixed energy\n 1: PDF from proton\n -1: PDF from anti-proton\n 2:photon from proton, 3:photon from electron, 9: PLUGIN MODE')2901 comment='first beam energy distribution:\n 0: fixed energy\n 1: PDF from proton\n -1: PDF from anti-proton\n 2:photon from proton, 3:photon/W/Z from electron, 4:photon/W/Z from muon,\n 9: PLUGIN MODE')
2901 self.add_param("lpp2", 1, fortran_name="lpp(2)", allowed=[-1,1,0,2,3,9],2902 self.add_param("lpp2", 1, fortran_name="lpp(2)", allowed=[-1,1,0,2,3,4,9,-3,-4],
2902 comment='first beam energy distribution:\n 0: fixed energy\n 1: PDF from proton\n -1: PDF from anti-proton\n 2:photon from proton, 3:photon from electron, 9: PLUGIN MODE')2903 comment='first beam energy distribution:\n 0: fixed energy\n 1: PDF from proton\n -1: PDF from anti-proton\n 2:photon from proton, 3:photon/W/Z from electron, 4:photon/W/Z from muon,\n 9: PLUGIN MODE')
2903 self.add_param("ebeam1", 6500.0, fortran_name="ebeam(1)")2904 self.add_param("ebeam1", 6500.0, fortran_name="ebeam(1)")
2904 self.add_param("ebeam2", 6500.0, fortran_name="ebeam(2)")2905 self.add_param("ebeam2", 6500.0, fortran_name="ebeam(2)")
2905 self.add_param("polbeam1", 0.0, fortran_name="pb1", hidden=True,2906 self.add_param("polbeam1", 0.0, fortran_name="pb1", hidden=True,
@@ -3182,7 +3183,6 @@
3182 if self['xqcut'] > 0:3183 if self['xqcut'] > 0:
3183 if self['ickkw'] == 0:3184 if self['ickkw'] == 0:
3184 logger.error('xqcut>0 but ickkw=0. Potentially not fully consistent setup. Be carefull')3185 logger.error('xqcut>0 but ickkw=0. Potentially not fully consistent setup. Be carefull')
3185 import time
3186 time.sleep(5)3186 time.sleep(5)
3187 if self['drjj'] != 0:3187 if self['drjj'] != 0:
3188 if 'drjj' in self.user_set:3188 if 'drjj' in self.user_set:
@@ -3212,14 +3212,16 @@
32123212
3213 # check if lpp = 3213 # check if lpp =
3214 for i in [1,2]:3214 for i in [1,2]:
3215 if self['lpp%s' % i ] == 3 and self['dsqrt_q2fact%s'%i] > 4:3215 if abs(self['lpp%s' % i ]) in [3,4] and self['dsqrt_q2fact%s'%i] == 91.188:
3216 raise InvalidRunCard( "Photon from electron are using fixed scale value of muf [dsqrt_q2fact%s] as the cut off value of the approximation.\n" % i + \3216 logger.warning("Photon from lepton are using fixed scale value of muf [dsqrt_q2fact%s] as the cut of the EPA. Looks like you kept the default value (Mz). Is this really the cut-off of the EPA that you want to use?" % i)
3217 "For EPA this number should be small (for HERA prediction it should be 2 at most)")3217 time.sleep(5)
3218 if self['lpp%s' % i ] == 2 and self['dsqrt_q2fact%s'%i] == 91.188:
3219 raise InvalidRunCard("Since 2.7.1 Photon from proton are using fixed scale value of muf [dsqrt_q2fact%s] as the cut of th Improved Weizsaecker-Williams formula. Please edit it accordingly." % i)
3220 3218
3219 if abs(self['lpp%s' % i ]) == 2 and self['dsqrt_q2fact%s'%i] == 91.188:
3220 logger.warning("Since 2.7.1 Photon from proton are using fixed scale value of muf [dsqrt_q2fact%s] as the cut of the Improved Weizsaecker-Williams formula. Please edit it accordingly." % i)
3221 time.sleep(5)
3222
3221 # if both lpp1/2 are on PA mode -> force fixed factorization scale3223 # if both lpp1/2 are on PA mode -> force fixed factorization scale
3222 if self['lpp1'] in [2, 3] and self['lpp2'] in [2, 3] and not self['fixed_fac_scale']:3224 if abs(self['lpp1']) in [2, 3,4] and abs(self['lpp2']) in [2, 3,4] and not self['fixed_fac_scale']:
3223 raise InvalidRunCard("Having both beam in elastic photon mode requires fixec_fac_scale to be on True [since this is use as cutoff]")3225 raise InvalidRunCard("Having both beam in elastic photon mode requires fixec_fac_scale to be on True [since this is use as cutoff]")
32243226
32253227
@@ -3293,8 +3295,11 @@
3293 process 1->N all cut set on off.3295 process 1->N all cut set on off.
3294 loop_induced -> MC over helicity3296 loop_induced -> MC over helicity
3295 e+ e- beam -> lpp:0 ebeam:5003297 e+ e- beam -> lpp:0 ebeam:500
3298 P X beam (X: neutrino, lepton, EWA)
3299 support of EWA beam [ZW] (from proton by default -> 100TeV)
3296 p p beam -> set maxjetflavor automatically3300 p p beam -> set maxjetflavor automatically
3297 more than one multiplicity: ickkw=1 xqcut=30 use_syst=F3301 more than one multiplicity: ickkw=1 xqcut=30 use_syst=F
3302 interference module -> no systematics
3298 """3303 """
32993304
3300 if proc_characteristic['loop_induced']:3305 if proc_characteristic['loop_induced']:
@@ -3318,11 +3323,87 @@
3318 beam_id.add(leg['id'])3323 beam_id.add(leg['id'])
33193324
3320 if any(i in beam_id for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21,22]):3325 if any(i in beam_id for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21,22]):
3321 maxjetflavor = max([4]+[abs(i) for i in beam_id if -7< i < 7])3326 maxjetflavor = max([3]+[abs(i) for i in beam_id if -7< i < 7])
3322 self['maxjetflavor'] = maxjetflavor3327 self['maxjetflavor'] = maxjetflavor
3323 self['asrwgtflavor'] = maxjetflavor3328 self['asrwgtflavor'] = maxjetflavor
3324 3329
3325 if any(i in beam_id for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21,22]):3330 # check EWA case -> for pp at 100TeV or EWA-lepton (1+1 TeV)
3331 if any(i in beam_id for i in [23,24,-24]):
3332
3333 self['use_syst'] = False
3334 self['nhel'] = 1
3335
3336 # check where the W/Z are (on which beam)
3337 EWA_in1 = any(i in beam_id_split[0] for i in [23,24,-24])
3338 EWA_in2 = any(i in beam_id_split[1] for i in [23,24,-24])
3339 p_in1 = any(i in beam_id_split[0] for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21])
3340 p_in2 = any(i in beam_id_split[1] for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21])
3341
3342
3343 # case1 W W collision
3344 if EWA_in1 and EWA_in2:
3345 self['lpp1'] = 2
3346 self['lpp2'] = 2
3347 self['ebeam1'] = '50k'
3348 self['ebeam2'] = '50k'
3349 # case2 p W collision
3350 elif p_in1 and EWA_in2:
3351 self['lpp1'] = 1
3352 self['lpp2'] = 2
3353 self['ebeam1'] = '50k'
3354 self['ebeam2'] = '50k'
3355 # case3 W p collision
3356 elif p_in2 and EWA_in1:
3357 self['lpp1'] = 2
3358 self['lpp2'] = 1
3359 self['ebeam1'] = '50k'
3360 self['ebeam2'] = '50k'
3361 # case3 W X collision (mainly for X=lepton)
3362 elif EWA_in1:
3363 self['ebeam1'] = '1k'
3364 self['ebeam2'] = '1k'
3365 if 11 in beam_id_split[1]:
3366 self['lpp1'] = -3
3367 self['lpp2'] = 0
3368 elif -11 in beam_id_split[1]:
3369 self['lpp1'] = 3
3370 self['lpp2'] = 0
3371 elif 13 in beam_id_split[1]:
3372 self['lpp1'] = -4
3373 self['lpp2'] = 0
3374 elif -13 in beam_id_split[1]:
3375 self['lpp1'] = 4
3376 self['lpp2'] = 0
3377 else:
3378 self['lpp1'] = 0
3379 self['lpp2'] = 0
3380 # case3 X W collision (mainly for X=lepton)
3381 elif EWA_in2:
3382 self['ebeam1'] = '1k'
3383 self['ebeam2'] = '1k'
3384 if 11 in beam_id_split[0]:
3385 self['lpp1'] = 0
3386 self['lpp2'] = -3
3387 elif -11 in beam_id_split[0]:
3388 self['lpp1'] = 0
3389 self['lpp2'] = 3
3390 elif 13 in beam_id_split[0]:
3391 self['lpp1'] = 0
3392 self['lpp2'] = -4
3393 elif -13 in beam_id_split[0]:
3394 self['lpp1'] = 0
3395 self['lpp2'] = 4
3396 else:
3397 self['lpp1'] = 0
3398 self['lpp2'] = 0
3399 # anything else should it happen?
3400 else:
3401 self['nhel'] = 1
3402 self['lpp1'] = 0
3403 self['lpp2'] = 0
3404 self['ebeam1'] = '1k'
3405 self['ebeam2'] = '1k'
3406 elif any(i in beam_id for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21,22]):
3326 # check for e p collision3407 # check for e p collision
3327 if any(id in beam_id for id in [11,-11,13,-13]):3408 if any(id in beam_id for id in [11,-11,13,-13]):
3328 self.display_block.append('beam_pol')3409 self.display_block.append('beam_pol')
@@ -3336,20 +3417,25 @@
3336 self['lpp2'] = 0 3417 self['lpp2'] = 0
3337 self['ebeam1'] = '6500' 3418 self['ebeam1'] = '6500'
3338 self['ebeam2'] = '1k' 3419 self['ebeam2'] = '1k'
3339 3420
3340 elif 11 in beam_id or -11 in beam_id:3421 elif any(id in beam_id for id in [11,-11,13,-13]):
3341 self['lpp1'] = 03422 self['lpp1'] = 0
3342 self['lpp2'] = 03423 self['lpp2'] = 0
3343 self['ebeam1'] = 5003424 self['ebeam1'] = 500
3344 self['ebeam2'] = 5003425 self['ebeam2'] = 500
3345 self['use_syst'] = False3426 self['use_syst'] = False
3427 if beam_id_split[0] == beam_id_split[1]:
3428 self.display_block.append('ecut')
3346 self.display_block.append('beam_pol')3429 self.display_block.append('beam_pol')
3347 self.display_block.append('ecut')3430
3431 if beam_id_split[0] == beam_id_split[1]:
3432 self.display_block.append('ecut')
3348 else:3433 else:
3349 self['lpp1'] = 03434 self['lpp1'] = 0
3350 self['lpp2'] = 0 3435 self['lpp2'] = 0
3351 self['use_syst'] = False 3436 self['use_syst'] = False
3352 self.display_block.append('beam_pol') 3437 self.display_block.append('beam_pol')
3438 self.display_block.append('ecut')
3353 3439
3354 # automatic polarisation of the beam if neutrino beam 3440 # automatic polarisation of the beam if neutrino beam
3355 if any(id in beam_id for id in [12,-12,14,-14,16,-16]):3441 if any(id in beam_id for id in [12,-12,14,-14,16,-16]):
@@ -3358,25 +3444,25 @@
3358 self['lpp1'] = 0 3444 self['lpp1'] = 0
3359 self['ebeam1'] = '1k' 3445 self['ebeam1'] = '1k'
3360 self['polbeam1'] = -1003446 self['polbeam1'] = -100
3361 if not all(id in beam_id_split[0] for id in [12,14,16]):3447 if not all(id in [12,14,16] for id in beam_id_split[0]):
3362 logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam1].')3448 logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam1]. %s')
3363 elif any(id in beam_id_split[0] for id in [-12,-14,-16]):3449 elif any(id in beam_id_split[0] for id in [-12,-14,-16]):
3364 self['lpp1'] = 0 3450 self['lpp1'] = 0
3365 self['ebeam1'] = '1k' 3451 self['ebeam1'] = '1k'
3366 self['polbeam1'] = 1003452 self['polbeam1'] = 100
3367 if not all(id in beam_id_split[0] for id in [-12,-14,-16]):3453 if not all(id in [-12,-14,-16] for id in beam_id_split[0]):
3368 logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam1].') 3454 logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam1].')
3369 if any(id in beam_id_split[1] for id in [12,14,16]):3455 if any(id in beam_id_split[1] for id in [12,14,16]):
3370 self['lpp2'] = 0 3456 self['lpp2'] = 0
3371 self['ebeam2'] = '1k' 3457 self['ebeam2'] = '1k'
3372 self['polbeam2'] = -1003458 self['polbeam2'] = -100
3373 if not all(id in beam_id_split[1] for id in [12,14,16]):3459 if not all(id in [12,14,16] for id in beam_id_split[1]):
3374 logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam2].')3460 logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam2].')
3375 if any(id in beam_id_split[1] for id in [-12,-14,-16]):3461 if any(id in beam_id_split[1] for id in [-12,-14,-16]):
3376 self['lpp2'] = 0 3462 self['lpp2'] = 0
3377 self['ebeam2'] = '1k' 3463 self['ebeam2'] = '1k'
3378 self['polbeam2'] = 1003464 self['polbeam2'] = 100
3379 if not all(id in beam_id_split[1] for id in [-12,-14,-16]):3465 if not all(id in [-12,-14,-16] for id in beam_id_split[1]):
3380 logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam2].')3466 logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam2].')
3381 3467
3382 # Check if need matching3468 # Check if need matching
@@ -4285,7 +4371,7 @@
4285 maxjetflavor = max([4]+[abs(i) for i in beam_id if -7< i < 7])4371 maxjetflavor = max([4]+[abs(i) for i in beam_id if -7< i < 7])
4286 self['maxjetflavor'] = maxjetflavor4372 self['maxjetflavor'] = maxjetflavor
4287 pass4373 pass
4288 elif 11 in beam_id or -11 in beam_id:4374 elif any(id in beam_id for id in [11,-11,13,-13]):
4289 self['lpp1'] = 04375 self['lpp1'] = 0
4290 self['lpp2'] = 04376 self['lpp2'] = 0
4291 self['ebeam1'] = 5004377 self['ebeam1'] = 500
42924378
=== modified file 'madgraph/various/cluster.py'
--- madgraph/various/cluster.py 2017-11-17 14:15:01 +0000
+++ madgraph/various/cluster.py 2020-08-13 08:01:43 +0000
@@ -87,6 +87,7 @@
87 """Basic Class for all cluster type submission"""87 """Basic Class for all cluster type submission"""
88 name = 'mother class'88 name = 'mother class'
89 identifier_length = 1489 identifier_length = 14
90 allow_arrays = False
9091
91 def __init__(self,*args, **opts):92 def __init__(self,*args, **opts):
92 """Init the cluster"""93 """Init the cluster"""
@@ -97,6 +98,8 @@
97 self.submitted_dirs = [] #HTCaaS98 self.submitted_dirs = [] #HTCaaS
98 self.submitted_exes = [] #HTCaaS99 self.submitted_exes = [] #HTCaaS
99 self.submitted_args = [] #HTCaaS100 self.submitted_args = [] #HTCaaS
101 self.waiting_array_job = [] # for job array submission
102
100103
101 if 'cluster_queue' in opts:104 if 'cluster_queue' in opts:
102 self.cluster_queue = opts['cluster_queue']105 self.cluster_queue = opts['cluster_queue']
@@ -122,7 +125,6 @@
122 """How to make one submission. Return status id on the cluster."""125 """How to make one submission. Return status id on the cluster."""
123 raise NotImplemented, 'No implementation of how to submit a job to cluster \'%s\'' % self.name126 raise NotImplemented, 'No implementation of how to submit a job to cluster \'%s\'' % self.name
124127
125
126 @store_input()128 @store_input()
127 def submit2(self, prog, argument=[], cwd=None, stdout=None, stderr=None, 129 def submit2(self, prog, argument=[], cwd=None, stdout=None, stderr=None,
128 log=None, input_files=[], output_files=[], required_output=[],130 log=None, input_files=[], output_files=[], required_output=[],
@@ -199,10 +201,15 @@
199201
200 def cluster_submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, 202 def cluster_submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None,
201 log=None, input_files=[], output_files=[], required_output=[],203 log=None, input_files=[], output_files=[], required_output=[],
202 nb_submit=0, packet_member=None):204 nb_submit=0, packet_member=None, allow_array=False):
203 """This function wrap the cluster submition with cluster independant205 """This function wrap the cluster submition with cluster independant
204 method should not be overwritten (but for DAG type submission)"""206 method should not be overwritten (but for DAG type submission)"""
205 207
208 if allow_array and self.allow_array:
209 self.add_into_array(prog, argument, cwd, stdout, stderr, log, input_files,
210 output_files, required_output, nb_submit)
211 return None
212
206 id = self.submit2(prog, argument, cwd, stdout, stderr, log, input_files, 213 id = self.submit2(prog, argument, cwd, stdout, stderr, log, input_files,
207 output_files, required_output, nb_submit) 214 output_files, required_output, nb_submit)
208 215
@@ -458,7 +465,27 @@
458 self.submit2(**args)465 self.submit2(**args)
459 return 'resubmit'466 return 'resubmit'
460 return 'done'467 return 'done'
461 468
469 def add_into_array(self,*args, **opts):
470 """ """
471 raise NotImplemented, 'No implementation of how to submit with a job array to cluster \'%s\'' % self.name
472
473 def submit_array(self, list_of_args):
474 """ """
475 raise NotImplemented, 'No implementation of how to submit with a job array to cluster \'%s\'' % self.name
476
477
478 def release_array(self):
479
480 if not self.allow_arrays:
481 if self.waiting_array_jobs:
482 raise NotImplemented, 'No implementation of how to submit with a job array to cluster \'%s\'' % self.name
483 return None
484 elif self.waiting_array_jobs:
485 return self.submit_array(self.waiting_array_jobs)
486 else:
487 return None
488
462 @check_interupt()489 @check_interupt()
463 def launch_and_wait(self, prog, argument=[], cwd=None, stdout=None, 490 def launch_and_wait(self, prog, argument=[], cwd=None, stdout=None,
464 stderr=None, log=None, required_output=[], nb_submit=0,491 stderr=None, log=None, required_output=[], nb_submit=0,
@@ -1648,6 +1675,7 @@
1648 running_tag = ['R', 'CG']1675 running_tag = ['R', 'CG']
1649 complete_tag = ['C']1676 complete_tag = ['C']
1650 identifier_length = 81677 identifier_length = 8
1678 allow_arrays = True
16511679
1652 @multiple_try()1680 @multiple_try()
1653 def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None,1681 def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None,
@@ -1692,6 +1720,42 @@
1692 self.submitted_ids.append(id)1720 self.submitted_ids.append(id)
1693 return id1721 return id
16941722
1723 def add_into_array(prog, argument, cwd, stdout, stderr, log, input_files,
1724 output_files, required_output, nb_submit):
1725
1726 self.waiting_array_job.append((prog, argument, cwd, stdout, stderr, log, input_files,
1727 output_files, required_output, nb_submit))
1728
1729
1730 def submit_array(self, waiting_array_jobs):
1731 """write a temporary file in order to submit an array of jobs"""
1732
1733 for arg in waiting_array_jobs):
1734 print( arg)
1735 misc.sprint(waiting_array_jobs)
1736 template= """
1737#SBATCH --job-name=%(job_name)s # Job name
1738#SBATCH --mail-type=NONE # Mail events (NONE, BEGIN, END, FAIL, ALL)
1739#SBATCH --mail-user=gatorlink@ufl.edu # Where to send mail
1740#SBATCH --nodes=1 # Use one node
1741#SBATCH --ntasks=1 # Run a single task
1742#SBATCH --output=array_%A-%a.out # Standard output and error log
1743#SBATCH --array=1-5 # Array range
1744 """
1745
1746 import os
1747 import tempfile
1748
1749 fd, path = tempfile.mkstemp()
1750 try:
1751 with os.fdopen(fd, 'w') as tmp:
1752 # do stuff with temp file
1753 tmp.write('stuff')
1754 finally:
1755 os.remove(path)
1756
1757
1758
1695 @multiple_try()1759 @multiple_try()
1696 def control_one_job(self, id):1760 def control_one_job(self, id):
1697 """ control the status of a single job with it's cluster id """1761 """ control the status of a single job with it's cluster id """
16981762
=== modified file 'mg5decay/decay_objects.py'
--- mg5decay/decay_objects.py 2018-06-01 08:46:21 +0000
+++ mg5decay/decay_objects.py 2020-08-13 08:01:43 +0000
@@ -4086,15 +4086,28 @@
4086 # Evaluate the coupling strength4086 # Evaluate the coupling strength
4087 vertex = model.get('interaction_dict')[abs(vert.get('id'))]4087 vertex = model.get('interaction_dict')[abs(vert.get('id'))]
4088 lorentz_factor = 04088 lorentz_factor = 0
4089
4090 for fct in model['functions']:
4091 if ';' in fct.expr:
4092 raise Exception('; is not allowed in function_library')
4093 exec("mdl_%s = lambda %s: %s" %(fct.name, ','.join( fct.arguments), fct.expr))
4094 exec("%s = lambda %s: %s" %(fct.name, ','.join( fct.arguments), fct.expr))
4095
4089 for key, v in vertex['couplings'].items():4096 for key, v in vertex['couplings'].items():
4090 if not hasattr(model, 'lorentz_dict'):4097 if not hasattr(model, 'lorentz_dict'):
4091 model.lorentz_dict = dict([(l.name, l) for l in model['lorentz']])4098 model.lorentz_dict = dict([(l.name, l) for l in model['lorentz']])
4092 self.init_regular_expression()4099 self.init_regular_expression()
4100
4101 lorentz = model.lorentz_dict[vertex['lorentz'][key[1]]]
4102 structure = lorentz.structure
4103 if hasattr(lorentz, 'formfactors') and lorentz.formfactors:
4104 for ff in lorentz.formfactors:
4105 structure = structure.replace(ff.name, '(%s)' % ff.value)
4093 4106
4094 structure = model.lorentz_dict[vertex['lorentz'][key[1]]].structure
4095 new_structure = self.lor_pattern.sub(self.simplify_lorentz,4107 new_structure = self.lor_pattern.sub(self.simplify_lorentz,
4096 structure)4108 structure)
4097 lor_value = eval(new_structure % q_dict_lor)4109
4110 lor_value = eval(new_structure % q_dict_lor, locals(), globals())
4098 if lor_value == 0:4111 if lor_value == 0:
4099 new_structure = new_structure.replace('-','+')4112 new_structure = new_structure.replace('-','+')
4100 lor_value = eval(new_structure % q_dict_lor)4113 lor_value = eval(new_structure % q_dict_lor)
@@ -4131,6 +4144,12 @@
4131 # A quick estimate of the next-level decay of a off-shell decay4144 # A quick estimate of the next-level decay of a off-shell decay
4132 # Consider all legs are onshell.4145 # Consider all legs are onshell.
4133 else:4146 else:
4147 for fct in model['functions']:
4148 if ';' in fct.expr:
4149 raise Exception('; is not allowed in function_library')
4150 exec("mdl_%s = lambda %s: %s" %(fct.name, ','.join( fct.arguments), fct.expr))
4151 exec("%s = lambda %s: %s" %(fct.name, ','.join( fct.arguments), fct.expr))
4152
4134 M = abs(eval(ini_part.get('mass')))4153 M = abs(eval(ini_part.get('mass')))
4135 # The avg_E is lower by one more particle in the next-level.4154 # The avg_E is lower by one more particle in the next-level.
4136 avg_E = (M/(len(self.get_final_legs())+1.))4155 avg_E = (M/(len(self.get_final_legs())+1.))
41374156
=== modified file 'tests/acceptance_tests/test_cmd_reweight.py'
--- tests/acceptance_tests/test_cmd_reweight.py 2020-06-20 21:10:10 +0000
+++ tests/acceptance_tests/test_cmd_reweight.py 2020-08-13 08:01:43 +0000
@@ -212,8 +212,12 @@
212 ff = open(pjoin(self.run_dir, 'Cards', 'reweight_card.dat'),'w')212 ff = open(pjoin(self.run_dir, 'Cards', 'reweight_card.dat'),'w')
213 ff.write(cmd_lines)213 ff.write(cmd_lines)
214 ff.close()214 ff.close()
215 215 mad_logger = logging.getLogger('madgraph')
216 with misc.stdchannel_redirected(sys.stdout, os.devnull):216
217 if mad_logger.level > 20:
218 with misc.stdchannel_redirected(sys.stdout, os.devnull):
219 me_cmd.run_cmd('reweight run_01 --from_cards')
220 else:
217 me_cmd.run_cmd('reweight run_01 --from_cards')221 me_cmd.run_cmd('reweight run_01 --from_cards')
218 222
219 lhe = lhe_parser.EventFile(pjoin(self.run_dir,'Events','run_01', 'events.lhe.gz'))223 lhe = lhe_parser.EventFile(pjoin(self.run_dir,'Events','run_01', 'events.lhe.gz'))
@@ -242,9 +246,12 @@
242 ff.write(cmd_lines)246 ff.write(cmd_lines)
243 ff.close()247 ff.close()
244 248
245 if 1: #with misc.stdchannel_redirected(sys.stdout, os.devnull):249 mad_logger = logging.getLogger('madgraph')
250 if mad_logger.level > 20:
251 with misc.stdchannel_redirected(sys.stdout, os.devnull):
252 me_cmd.run_cmd('reweight run_01 --from_cards')
253 else:
246 me_cmd.run_cmd('reweight run_01 --from_cards')254 me_cmd.run_cmd('reweight run_01 --from_cards')
247
248 #solutions = [41.511565, 41.930505, 41.511565, 41.511565, 41.586169, 41.511565, 41.511565, 41.511565, 41.511565, 42.046806, 41.511565, 44.164503, 41.511565, -41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.778368, 41.511565, 42.05448, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 42.115494, 41.511854, 41.511567, 41.511565, 42.00028, 42.120605, 41.514867, -41.511565, 41.511565, 45.125706, 41.511565, 42.180208, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.997509, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.513926, 41.511565, 41.882499, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 47.532736, 41.511565, 41.809063, 41.511565, 41.511565, 41.511565, 41.927695, 41.511565, 41.511565, 41.555692, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, -41.511565, 41.511565, 42.029675, 41.725129, 41.511565, 41.511565, 41.511778, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 42.050439, 41.511565, 41.511565, 41.511565, -41.511565, 42.071105, 41.511565, 41.511565]255 #solutions = [41.511565, 41.930505, 41.511565, 41.511565, 41.586169, 41.511565, 41.511565, 41.511565, 41.511565, 42.046806, 41.511565, 44.164503, 41.511565, -41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.778368, 41.511565, 42.05448, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 42.115494, 41.511854, 41.511567, 41.511565, 42.00028, 42.120605, 41.514867, -41.511565, 41.511565, 45.125706, 41.511565, 42.180208, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.997509, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.513926, 41.511565, 41.882499, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 47.532736, 41.511565, 41.809063, 41.511565, 41.511565, 41.511565, 41.927695, 41.511565, 41.511565, 41.555692, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, -41.511565, 41.511565, 42.029675, 41.725129, 41.511565, 41.511565, 41.511778, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 42.050439, 41.511565, 41.511565, 41.511565, -41.511565, 42.071105, 41.511565, 41.511565]
249 solutions = [41.511565, 41.75164, 41.511565, 41.511565, 41.557009, 41.511565, 41.511565, 41.511565, 41.511565, 41.759881, 41.511565, 44.717244, 41.511565, -41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 42.041827, 41.511565, 41.663092, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.920917, 41.511736, 41.511566, 41.511565, 205.29791, 42.538389, 41.513573, -41.511565, 41.511565, 44.650974, 41.511565, 42.549187, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.431553, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.513265, 41.511565, 43.902643, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 8853.0397, 41.511565, 333.38491, 41.511565, 41.511565, 41.511565, 75.701362, 41.511565, 41.511565, 41.54695, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, -41.511565, 41.511565, 41.454923, 41.53984, 41.511565, 41.511565, 41.511743, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.732627, 41.511565, 41.511565, 41.511565, -41.511565, 41.395865, 41.511565, 41.511565]256 solutions = [41.511565, 41.75164, 41.511565, 41.511565, 41.557009, 41.511565, 41.511565, 41.511565, 41.511565, 41.759881, 41.511565, 44.717244, 41.511565, -41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 42.041827, 41.511565, 41.663092, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.920917, 41.511736, 41.511566, 41.511565, 205.29791, 42.538389, 41.513573, -41.511565, 41.511565, 44.650974, 41.511565, 42.549187, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.431553, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.513265, 41.511565, 43.902643, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 8853.0397, 41.511565, 333.38491, 41.511565, 41.511565, 41.511565, 75.701362, 41.511565, 41.511565, 41.54695, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, -41.511565, 41.511565, 41.454923, 41.53984, 41.511565, 41.511565, 41.511743, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.732627, 41.511565, 41.511565, 41.511565, -41.511565, 41.395865, 41.511565, 41.511565]
250 lhe = lhe_parser.EventFile(pjoin(self.run_dir,'Events','run_01', 'rwgt_events_tree_rwgt_1.lhe.gz'))257 lhe = lhe_parser.EventFile(pjoin(self.run_dir,'Events','run_01', 'rwgt_events_tree_rwgt_1.lhe.gz'))
251258
=== modified file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%loop_matrix.f'
--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%loop_matrix.f 2020-06-20 21:10:10 +0000
+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%loop_matrix.f 2020-08-13 08:01:43 +0000
@@ -2553,11 +2553,14 @@
2553 PARAMETER (NEXTERNAL=3)2553 PARAMETER (NEXTERNAL=3)
2554 INTEGER NSQUAREDSO2554 INTEGER NSQUAREDSO
2555 PARAMETER (NSQUAREDSO=1)2555 PARAMETER (NSQUAREDSO=1)
2556 INCLUDE 'nsqso_born.inc'
2556C 2557C
2557C ARGUMENTS 2558C ARGUMENTS
2558C 2559C
2559 REAL*8 P(0:3,NEXTERNAL)2560 REAL*8 P(0:3,NEXTERNAL)
2560 REAL*8 ANS(0:3,0:NSQUAREDSO)2561 INTEGER ANS_DIMENSION
2562 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2563 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2561 INTEGER HEL, USERHEL2564 INTEGER HEL, USERHEL
2562 COMMON/USERCHOICE/USERHEL2565 COMMON/USERCHOICE/USERHEL
2563C ----------2566C ----------
@@ -2581,7 +2584,10 @@
2581C ARGUMENTS 2584C ARGUMENTS
2582C 2585C
2583 REAL*8 P(0:3,NEXTERNAL)2586 REAL*8 P(0:3,NEXTERNAL)
2584 REAL*8 ANS(0:3,0:NSQUAREDSO)2587 INCLUDE 'nsqso_born.inc'
2588 INTEGER ANS_DIMENSION
2589 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2590 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2585 INTEGER HEL, RET_CODE2591 INTEGER HEL, RET_CODE
2586 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2592 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2587C 2593C
@@ -2698,7 +2704,10 @@
2698C ARGUMENTS 2704C ARGUMENTS
2699C 2705C
2700 REAL*8 P(0:3,NEXTERNAL)2706 REAL*8 P(0:3,NEXTERNAL)
2701 REAL*8 ANS(0:3,0:NSQUAREDSO)2707 INCLUDE 'nsqso_born.inc'
2708 INTEGER ANS_DIMENSION
2709 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2710 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2702 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2711 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2703 INTEGER RET_CODE2712 INTEGER RET_CODE
2704C 2713C
27052714
=== modified file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%loop_matrix.f'
--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%loop_matrix.f 2020-06-20 21:10:10 +0000
+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%loop_matrix.f 2020-08-13 08:01:43 +0000
@@ -2553,11 +2553,14 @@
2553 PARAMETER (NEXTERNAL=3)2553 PARAMETER (NEXTERNAL=3)
2554 INTEGER NSQUAREDSO2554 INTEGER NSQUAREDSO
2555 PARAMETER (NSQUAREDSO=1)2555 PARAMETER (NSQUAREDSO=1)
2556 INCLUDE 'nsqso_born.inc'
2556C 2557C
2557C ARGUMENTS 2558C ARGUMENTS
2558C 2559C
2559 REAL*8 P(0:3,NEXTERNAL)2560 REAL*8 P(0:3,NEXTERNAL)
2560 REAL*8 ANS(0:3,0:NSQUAREDSO)2561 INTEGER ANS_DIMENSION
2562 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2563 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2561 INTEGER HEL, USERHEL2564 INTEGER HEL, USERHEL
2562 COMMON/USERCHOICE/USERHEL2565 COMMON/USERCHOICE/USERHEL
2563C ----------2566C ----------
@@ -2581,7 +2584,10 @@
2581C ARGUMENTS 2584C ARGUMENTS
2582C 2585C
2583 REAL*8 P(0:3,NEXTERNAL)2586 REAL*8 P(0:3,NEXTERNAL)
2584 REAL*8 ANS(0:3,0:NSQUAREDSO)2587 INCLUDE 'nsqso_born.inc'
2588 INTEGER ANS_DIMENSION
2589 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2590 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2585 INTEGER HEL, RET_CODE2591 INTEGER HEL, RET_CODE
2586 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2592 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2587C 2593C
@@ -2698,7 +2704,10 @@
2698C ARGUMENTS 2704C ARGUMENTS
2699C 2705C
2700 REAL*8 P(0:3,NEXTERNAL)2706 REAL*8 P(0:3,NEXTERNAL)
2701 REAL*8 ANS(0:3,0:NSQUAREDSO)2707 INCLUDE 'nsqso_born.inc'
2708 INTEGER ANS_DIMENSION
2709 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2710 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2702 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2711 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2703 INTEGER RET_CODE2712 INTEGER RET_CODE
2704C 2713C
27052714
=== modified file 'tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/auto_dsig.f'
--- tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/auto_dsig.f 2019-06-17 21:29:56 +0000
+++ tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/auto_dsig.f 2020-08-13 08:01:43 +0000
@@ -174,3 +174,33 @@
174174
175175
176176
177
178 INTEGER FUNCTION GET_NHEL1(HEL, IPART)
179 IMPLICIT NONE
180 INTEGER HEL,I, IPART
181 INCLUDE 'nexternal.inc'
182 INTEGER ONE_NHEL(NEXTERNAL)
183 INTEGER NCOMB
184 PARAMETER ( NCOMB=16)
185 INTEGER NHEL(NEXTERNAL,NCOMB)
186 DATA (NHEL(I, 1),I=1,4) / 1,-1,-1, 1/
187 DATA (NHEL(I, 2),I=1,4) / 1,-1,-1,-1/
188 DATA (NHEL(I, 3),I=1,4) / 1,-1, 1, 1/
189 DATA (NHEL(I, 4),I=1,4) / 1,-1, 1,-1/
190 DATA (NHEL(I, 5),I=1,4) / 1, 1,-1, 1/
191 DATA (NHEL(I, 6),I=1,4) / 1, 1,-1,-1/
192 DATA (NHEL(I, 7),I=1,4) / 1, 1, 1, 1/
193 DATA (NHEL(I, 8),I=1,4) / 1, 1, 1,-1/
194 DATA (NHEL(I, 9),I=1,4) /-1,-1,-1, 1/
195 DATA (NHEL(I, 10),I=1,4) /-1,-1,-1,-1/
196 DATA (NHEL(I, 11),I=1,4) /-1,-1, 1, 1/
197 DATA (NHEL(I, 12),I=1,4) /-1,-1, 1,-1/
198 DATA (NHEL(I, 13),I=1,4) /-1, 1,-1, 1/
199 DATA (NHEL(I, 14),I=1,4) /-1, 1,-1,-1/
200 DATA (NHEL(I, 15),I=1,4) /-1, 1, 1, 1/
201 DATA (NHEL(I, 16),I=1,4) /-1, 1, 1,-1/
202
203 GET_NHEL1 = NHEL(IPART, HEL)
204 RETURN
205 END
206
177207
=== modified file 'tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/matrix1.f'
--- tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/matrix1.f 2020-06-20 21:10:10 +0000
+++ tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/matrix1.f 2020-08-13 08:01:43 +0000
@@ -150,6 +150,7 @@
150 $ .LE.MAXTRIES.OR.(ISUM_HEL.NE.0).OR.THIS_NTRY(IMIRROR).LE.2)150 $ .LE.MAXTRIES.OR.(ISUM_HEL.NE.0).OR.THIS_NTRY(IMIRROR).LE.2)
151 $ THEN151 $ THEN
152 T=MATRIX1(P ,NHEL(1,I),JC(1))152 T=MATRIX1(P ,NHEL(1,I),JC(1))
153
153 DO JJ=1,NINCOMING154 DO JJ=1,NINCOMING
154 IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ))155 IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ))
155 $ )) THEN156 $ )) THEN
@@ -158,6 +159,7 @@
158 T=T*(2D0-ABS(POL(JJ)))*NB_SPIN_STATE_IN(JJ)/2D0159 T=T*(2D0-ABS(POL(JJ)))*NB_SPIN_STATE_IN(JJ)/2D0
159 ENDIF160 ENDIF
160 ENDDO161 ENDDO
162
161 IF (ISUM_HEL.NE.0.AND.DS_GET_DIM_STATUS('Helicity')163 IF (ISUM_HEL.NE.0.AND.DS_GET_DIM_STATUS('Helicity')
162 $ .EQ.0.AND.ALLOW_HELICITY_GRID_ENTRIES) THEN164 $ .EQ.0.AND.ALLOW_HELICITY_GRID_ENTRIES) THEN
163 CALL DS_ADD_ENTRY('Helicity',I,T)165 CALL DS_ADD_ENTRY('Helicity',I,T)
@@ -216,6 +218,7 @@
216 T=T*(2D0-ABS(POL(JJ)))218 T=T*(2D0-ABS(POL(JJ)))
217 ENDIF219 ENDIF
218 ENDDO220 ENDDO
221
219C Always one helicity at a time222C Always one helicity at a time
220 ANS = T223 ANS = T
221C Include the Jacobian from helicity sampling224C Include the Jacobian from helicity sampling
222225
=== modified file 'tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/super_auto_dsig.f'
--- tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/super_auto_dsig.f 2020-01-19 16:22:42 +0000
+++ tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/super_auto_dsig.f 2020-08-13 08:01:43 +0000
@@ -595,6 +595,12 @@
595595
596596
597597
598598 INTEGER FUNCTION GET_NHEL(HEL, PARTID)
599599 IMPLICIT NONE
600 INTEGER HEL, PARTID
601 WRITE(*,*) 'do not support this type of pdf with'
602 $ //' group_subprocess=True'
603 STOP 1
604 RETURN
605 END
600606
601607
=== modified file 'tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/auto_dsig.f'
--- tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/auto_dsig.f 2019-06-17 21:29:56 +0000
+++ tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/auto_dsig.f 2020-08-13 08:01:43 +0000
@@ -221,3 +221,33 @@
221221
222222
223223
224
225 INTEGER FUNCTION GET_NHEL(HEL, IPART)
226 IMPLICIT NONE
227 INTEGER HEL,I, IPART
228 INCLUDE 'nexternal.inc'
229 INTEGER ONE_NHEL(NEXTERNAL)
230 INTEGER NCOMB
231 PARAMETER ( NCOMB=16)
232 INTEGER NHEL(NEXTERNAL,NCOMB)
233 DATA (NHEL(I, 1),I=1,4) / 1,-1,-1,-1/
234 DATA (NHEL(I, 2),I=1,4) / 1,-1,-1, 1/
235 DATA (NHEL(I, 3),I=1,4) / 1,-1, 1,-1/
236 DATA (NHEL(I, 4),I=1,4) / 1,-1, 1, 1/
237 DATA (NHEL(I, 5),I=1,4) / 1, 1,-1,-1/
238 DATA (NHEL(I, 6),I=1,4) / 1, 1,-1, 1/
239 DATA (NHEL(I, 7),I=1,4) / 1, 1, 1,-1/
240 DATA (NHEL(I, 8),I=1,4) / 1, 1, 1, 1/
241 DATA (NHEL(I, 9),I=1,4) /-1,-1,-1,-1/
242 DATA (NHEL(I, 10),I=1,4) /-1,-1,-1, 1/
243 DATA (NHEL(I, 11),I=1,4) /-1,-1, 1,-1/
244 DATA (NHEL(I, 12),I=1,4) /-1,-1, 1, 1/
245 DATA (NHEL(I, 13),I=1,4) /-1, 1,-1,-1/
246 DATA (NHEL(I, 14),I=1,4) /-1, 1,-1, 1/
247 DATA (NHEL(I, 15),I=1,4) /-1, 1, 1,-1/
248 DATA (NHEL(I, 16),I=1,4) /-1, 1, 1, 1/
249
250 GET_NHEL = NHEL(IPART, HEL)
251 RETURN
252 END
253
224254
=== modified file 'tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/matrix.f'
--- tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/matrix.f 2020-06-20 21:10:10 +0000
+++ tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/matrix.f 2020-08-13 08:01:43 +0000
@@ -122,6 +122,7 @@
122 IF (GOODHEL(I) .OR. NTRY .LE. MAXTRIES.OR.(ISUM_HEL.NE.0))122 IF (GOODHEL(I) .OR. NTRY .LE. MAXTRIES.OR.(ISUM_HEL.NE.0))
123 $ THEN123 $ THEN
124 T=MATRIX(P ,NHEL(1,I),JC(1))124 T=MATRIX(P ,NHEL(1,I),JC(1))
125
125 DO JJ=1,NINCOMING126 DO JJ=1,NINCOMING
126 IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ))127 IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ))
127 $ )) THEN128 $ )) THEN
@@ -130,6 +131,7 @@
130 T=T*(2D0-ABS(POL(JJ)))*NB_SPIN_STATE(JJ)/2D0131 T=T*(2D0-ABS(POL(JJ)))*NB_SPIN_STATE(JJ)/2D0
131 ENDIF132 ENDIF
132 ENDDO133 ENDDO
134
133 IF (ISUM_HEL.NE.0) THEN135 IF (ISUM_HEL.NE.0) THEN
134 CALL DS_ADD_ENTRY('Helicity',I,T)136 CALL DS_ADD_ENTRY('Helicity',I,T)
135 ENDIF137 ENDIF
@@ -175,6 +177,7 @@
175 I = HEL_PICKED177 I = HEL_PICKED
176178
177 T=MATRIX(P ,NHEL(1,I),JC(1))179 T=MATRIX(P ,NHEL(1,I),JC(1))
180
178 DO JJ=1,NINCOMING181 DO JJ=1,NINCOMING
179 IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ))))182 IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ))))
180 $ THEN183 $ THEN
@@ -183,6 +186,7 @@
183 T=T*(2D0-ABS(POL(JJ)))186 T=T*(2D0-ABS(POL(JJ)))
184 ENDIF187 ENDIF
185 ENDDO188 ENDDO
189
186C Always one helicity at a time190C Always one helicity at a time
187 ANS = T191 ANS = T
188C Include the Jacobian from helicity sampling192C Include the Jacobian from helicity sampling
189193
=== modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_eq_4.f'
--- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_eq_4.f 2020-06-20 21:10:10 +0000
+++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_eq_4.f 2020-08-13 08:01:43 +0000
@@ -2630,11 +2630,14 @@
2630 PARAMETER (NEXTERNAL=4)2630 PARAMETER (NEXTERNAL=4)
2631 INTEGER NSQUAREDSO2631 INTEGER NSQUAREDSO
2632 PARAMETER (NSQUAREDSO=3)2632 PARAMETER (NSQUAREDSO=3)
2633 INCLUDE 'nsqso_born.inc'
2633C 2634C
2634C ARGUMENTS 2635C ARGUMENTS
2635C 2636C
2636 REAL*8 P(0:3,NEXTERNAL)2637 REAL*8 P(0:3,NEXTERNAL)
2637 REAL*8 ANS(0:3,0:NSQUAREDSO)2638 INTEGER ANS_DIMENSION
2639 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2640 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2638 INTEGER HEL, USERHEL2641 INTEGER HEL, USERHEL
2639 COMMON/ML5_0_USERCHOICE/USERHEL2642 COMMON/ML5_0_USERCHOICE/USERHEL
2640C ----------2643C ----------
@@ -2658,7 +2661,10 @@
2658C ARGUMENTS 2661C ARGUMENTS
2659C 2662C
2660 REAL*8 P(0:3,NEXTERNAL)2663 REAL*8 P(0:3,NEXTERNAL)
2661 REAL*8 ANS(0:3,0:NSQUAREDSO)2664 INCLUDE 'nsqso_born.inc'
2665 INTEGER ANS_DIMENSION
2666 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2667 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2662 INTEGER HEL, RET_CODE2668 INTEGER HEL, RET_CODE
2663 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2669 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2664C 2670C
@@ -2775,7 +2781,10 @@
2775C ARGUMENTS 2781C ARGUMENTS
2776C 2782C
2777 REAL*8 P(0:3,NEXTERNAL)2783 REAL*8 P(0:3,NEXTERNAL)
2778 REAL*8 ANS(0:3,0:NSQUAREDSO)2784 INCLUDE 'nsqso_born.inc'
2785 INTEGER ANS_DIMENSION
2786 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2787 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2779 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2788 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2780 INTEGER RET_CODE2789 INTEGER RET_CODE
2781C 2790C
27822791
=== modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_0_QEDAmpAndQEDsq_gt_2.f'
--- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_0_QEDAmpAndQEDsq_gt_2.f 2020-06-20 21:10:10 +0000
+++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_0_QEDAmpAndQEDsq_gt_2.f 2020-08-13 08:01:43 +0000
@@ -2801,11 +2801,14 @@
2801 PARAMETER (NEXTERNAL=4)2801 PARAMETER (NEXTERNAL=4)
2802 INTEGER NSQUAREDSO2802 INTEGER NSQUAREDSO
2803 PARAMETER (NSQUAREDSO=3)2803 PARAMETER (NSQUAREDSO=3)
2804 INCLUDE 'nsqso_born.inc'
2804C 2805C
2805C ARGUMENTS 2806C ARGUMENTS
2806C 2807C
2807 REAL*8 P(0:3,NEXTERNAL)2808 REAL*8 P(0:3,NEXTERNAL)
2808 REAL*8 ANS(0:3,0:NSQUAREDSO)2809 INTEGER ANS_DIMENSION
2810 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2811 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2809 INTEGER HEL, USERHEL2812 INTEGER HEL, USERHEL
2810 COMMON/ML5_0_USERCHOICE/USERHEL2813 COMMON/ML5_0_USERCHOICE/USERHEL
2811C ----------2814C ----------
@@ -2829,7 +2832,10 @@
2829C ARGUMENTS 2832C ARGUMENTS
2830C 2833C
2831 REAL*8 P(0:3,NEXTERNAL)2834 REAL*8 P(0:3,NEXTERNAL)
2832 REAL*8 ANS(0:3,0:NSQUAREDSO)2835 INCLUDE 'nsqso_born.inc'
2836 INTEGER ANS_DIMENSION
2837 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2838 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2833 INTEGER HEL, RET_CODE2839 INTEGER HEL, RET_CODE
2834 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2840 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2835C 2841C
@@ -2946,7 +2952,10 @@
2946C ARGUMENTS 2952C ARGUMENTS
2947C 2953C
2948 REAL*8 P(0:3,NEXTERNAL)2954 REAL*8 P(0:3,NEXTERNAL)
2949 REAL*8 ANS(0:3,0:NSQUAREDSO)2955 INCLUDE 'nsqso_born.inc'
2956 INTEGER ANS_DIMENSION
2957 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2958 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2950 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2959 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2951 INTEGER RET_CODE2960 INTEGER RET_CODE
2952C 2961C
29532962
=== modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_4.f'
--- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_4.f 2020-06-20 21:10:10 +0000
+++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_4.f 2020-08-13 08:01:43 +0000
@@ -2567,11 +2567,14 @@
2567 PARAMETER (NEXTERNAL=4)2567 PARAMETER (NEXTERNAL=4)
2568 INTEGER NSQUAREDSO2568 INTEGER NSQUAREDSO
2569 PARAMETER (NSQUAREDSO=1)2569 PARAMETER (NSQUAREDSO=1)
2570 INCLUDE 'nsqso_born.inc'
2570C 2571C
2571C ARGUMENTS 2572C ARGUMENTS
2572C 2573C
2573 REAL*8 P(0:3,NEXTERNAL)2574 REAL*8 P(0:3,NEXTERNAL)
2574 REAL*8 ANS(0:3,0:NSQUAREDSO)2575 INTEGER ANS_DIMENSION
2576 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2577 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2575 INTEGER HEL, USERHEL2578 INTEGER HEL, USERHEL
2576 COMMON/ML5_0_USERCHOICE/USERHEL2579 COMMON/ML5_0_USERCHOICE/USERHEL
2577C ----------2580C ----------
@@ -2595,7 +2598,10 @@
2595C ARGUMENTS 2598C ARGUMENTS
2596C 2599C
2597 REAL*8 P(0:3,NEXTERNAL)2600 REAL*8 P(0:3,NEXTERNAL)
2598 REAL*8 ANS(0:3,0:NSQUAREDSO)2601 INCLUDE 'nsqso_born.inc'
2602 INTEGER ANS_DIMENSION
2603 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2604 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2599 INTEGER HEL, RET_CODE2605 INTEGER HEL, RET_CODE
2600 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2606 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2601C 2607C
@@ -2712,7 +2718,10 @@
2712C ARGUMENTS 2718C ARGUMENTS
2713C 2719C
2714 REAL*8 P(0:3,NEXTERNAL)2720 REAL*8 P(0:3,NEXTERNAL)
2715 REAL*8 ANS(0:3,0:NSQUAREDSO)2721 INCLUDE 'nsqso_born.inc'
2722 INTEGER ANS_DIMENSION
2723 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2724 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2716 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2725 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2717 INTEGER RET_CODE2726 INTEGER RET_CODE
2718C 2727C
27192728
=== modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QEDsq_le_4.f'
--- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QEDsq_le_4.f 2020-06-20 21:10:10 +0000
+++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QEDsq_le_4.f 2020-08-13 08:01:43 +0000
@@ -2817,11 +2817,14 @@
2817 PARAMETER (NEXTERNAL=4)2817 PARAMETER (NEXTERNAL=4)
2818 INTEGER NSQUAREDSO2818 INTEGER NSQUAREDSO
2819 PARAMETER (NSQUAREDSO=4)2819 PARAMETER (NSQUAREDSO=4)
2820 INCLUDE 'nsqso_born.inc'
2820C 2821C
2821C ARGUMENTS 2822C ARGUMENTS
2822C 2823C
2823 REAL*8 P(0:3,NEXTERNAL)2824 REAL*8 P(0:3,NEXTERNAL)
2824 REAL*8 ANS(0:3,0:NSQUAREDSO)2825 INTEGER ANS_DIMENSION
2826 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2827 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2825 INTEGER HEL, USERHEL2828 INTEGER HEL, USERHEL
2826 COMMON/ML5_0_USERCHOICE/USERHEL2829 COMMON/ML5_0_USERCHOICE/USERHEL
2827C ----------2830C ----------
@@ -2845,7 +2848,10 @@
2845C ARGUMENTS 2848C ARGUMENTS
2846C 2849C
2847 REAL*8 P(0:3,NEXTERNAL)2850 REAL*8 P(0:3,NEXTERNAL)
2848 REAL*8 ANS(0:3,0:NSQUAREDSO)2851 INCLUDE 'nsqso_born.inc'
2852 INTEGER ANS_DIMENSION
2853 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2854 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2849 INTEGER HEL, RET_CODE2855 INTEGER HEL, RET_CODE
2850 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2856 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2851C 2857C
@@ -2962,7 +2968,10 @@
2962C ARGUMENTS 2968C ARGUMENTS
2963C 2969C
2964 REAL*8 P(0:3,NEXTERNAL)2970 REAL*8 P(0:3,NEXTERNAL)
2965 REAL*8 ANS(0:3,0:NSQUAREDSO)2971 INCLUDE 'nsqso_born.inc'
2972 INTEGER ANS_DIMENSION
2973 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2974 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2966 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2975 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2967 INTEGER RET_CODE2976 INTEGER RET_CODE
2968C 2977C
29692978
=== modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_WGTsq_le_10_QEDAmpAndQEDsq_gt_2.f'
--- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_WGTsq_le_10_QEDAmpAndQEDsq_gt_2.f 2020-06-20 21:10:10 +0000
+++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_WGTsq_le_10_QEDAmpAndQEDsq_gt_2.f 2020-08-13 08:01:43 +0000
@@ -2801,11 +2801,14 @@
2801 PARAMETER (NEXTERNAL=4)2801 PARAMETER (NEXTERNAL=4)
2802 INTEGER NSQUAREDSO2802 INTEGER NSQUAREDSO
2803 PARAMETER (NSQUAREDSO=3)2803 PARAMETER (NSQUAREDSO=3)
2804 INCLUDE 'nsqso_born.inc'
2804C 2805C
2805C ARGUMENTS 2806C ARGUMENTS
2806C 2807C
2807 REAL*8 P(0:3,NEXTERNAL)2808 REAL*8 P(0:3,NEXTERNAL)
2808 REAL*8 ANS(0:3,0:NSQUAREDSO)2809 INTEGER ANS_DIMENSION
2810 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2811 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2809 INTEGER HEL, USERHEL2812 INTEGER HEL, USERHEL
2810 COMMON/ML5_0_USERCHOICE/USERHEL2813 COMMON/ML5_0_USERCHOICE/USERHEL
2811C ----------2814C ----------
@@ -2829,7 +2832,10 @@
2829C ARGUMENTS 2832C ARGUMENTS
2830C 2833C
2831 REAL*8 P(0:3,NEXTERNAL)2834 REAL*8 P(0:3,NEXTERNAL)
2832 REAL*8 ANS(0:3,0:NSQUAREDSO)2835 INCLUDE 'nsqso_born.inc'
2836 INTEGER ANS_DIMENSION
2837 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2838 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2833 INTEGER HEL, RET_CODE2839 INTEGER HEL, RET_CODE
2834 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2840 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2835C 2841C
@@ -2946,7 +2952,10 @@
2946C ARGUMENTS 2952C ARGUMENTS
2947C 2953C
2948 REAL*8 P(0:3,NEXTERNAL)2954 REAL*8 P(0:3,NEXTERNAL)
2949 REAL*8 ANS(0:3,0:NSQUAREDSO)2955 INCLUDE 'nsqso_born.inc'
2956 INTEGER ANS_DIMENSION
2957 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2958 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2950 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2959 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2951 INTEGER RET_CODE2960 INTEGER RET_CODE
2952C 2961C
29532962
=== modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_default.f'
--- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_default.f 2020-06-20 21:10:10 +0000
+++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_default.f 2020-08-13 08:01:43 +0000
@@ -2630,11 +2630,14 @@
2630 PARAMETER (NEXTERNAL=4)2630 PARAMETER (NEXTERNAL=4)
2631 INTEGER NSQUAREDSO2631 INTEGER NSQUAREDSO
2632 PARAMETER (NSQUAREDSO=3)2632 PARAMETER (NSQUAREDSO=3)
2633 INCLUDE 'nsqso_born.inc'
2633C 2634C
2634C ARGUMENTS 2635C ARGUMENTS
2635C 2636C
2636 REAL*8 P(0:3,NEXTERNAL)2637 REAL*8 P(0:3,NEXTERNAL)
2637 REAL*8 ANS(0:3,0:NSQUAREDSO)2638 INTEGER ANS_DIMENSION
2639 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2640 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2638 INTEGER HEL, USERHEL2641 INTEGER HEL, USERHEL
2639 COMMON/ML5_0_USERCHOICE/USERHEL2642 COMMON/ML5_0_USERCHOICE/USERHEL
2640C ----------2643C ----------
@@ -2658,7 +2661,10 @@
2658C ARGUMENTS 2661C ARGUMENTS
2659C 2662C
2660 REAL*8 P(0:3,NEXTERNAL)2663 REAL*8 P(0:3,NEXTERNAL)
2661 REAL*8 ANS(0:3,0:NSQUAREDSO)2664 INCLUDE 'nsqso_born.inc'
2665 INTEGER ANS_DIMENSION
2666 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2667 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2662 INTEGER HEL, RET_CODE2668 INTEGER HEL, RET_CODE
2663 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2669 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2664C 2670C
@@ -2775,7 +2781,10 @@
2775C ARGUMENTS 2781C ARGUMENTS
2776C 2782C
2777 REAL*8 P(0:3,NEXTERNAL)2783 REAL*8 P(0:3,NEXTERNAL)
2778 REAL*8 ANS(0:3,0:NSQUAREDSO)2784 INCLUDE 'nsqso_born.inc'
2785 INTEGER ANS_DIMENSION
2786 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2787 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2779 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2788 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2780 INTEGER RET_CODE2789 INTEGER RET_CODE
2781C 2790C
27822791
=== modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDpert_default.f'
--- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDpert_default.f 2020-06-20 21:10:10 +0000
+++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDpert_default.f 2020-08-13 08:01:43 +0000
@@ -2567,11 +2567,14 @@
2567 PARAMETER (NEXTERNAL=4)2567 PARAMETER (NEXTERNAL=4)
2568 INTEGER NSQUAREDSO2568 INTEGER NSQUAREDSO
2569 PARAMETER (NSQUAREDSO=1)2569 PARAMETER (NSQUAREDSO=1)
2570 INCLUDE 'nsqso_born.inc'
2570C 2571C
2571C ARGUMENTS 2572C ARGUMENTS
2572C 2573C
2573 REAL*8 P(0:3,NEXTERNAL)2574 REAL*8 P(0:3,NEXTERNAL)
2574 REAL*8 ANS(0:3,0:NSQUAREDSO)2575 INTEGER ANS_DIMENSION
2576 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2577 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2575 INTEGER HEL, USERHEL2578 INTEGER HEL, USERHEL
2576 COMMON/ML5_0_USERCHOICE/USERHEL2579 COMMON/ML5_0_USERCHOICE/USERHEL
2577C ----------2580C ----------
@@ -2595,7 +2598,10 @@
2595C ARGUMENTS 2598C ARGUMENTS
2596C 2599C
2597 REAL*8 P(0:3,NEXTERNAL)2600 REAL*8 P(0:3,NEXTERNAL)
2598 REAL*8 ANS(0:3,0:NSQUAREDSO)2601 INCLUDE 'nsqso_born.inc'
2602 INTEGER ANS_DIMENSION
2603 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2604 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2599 INTEGER HEL, RET_CODE2605 INTEGER HEL, RET_CODE
2600 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2606 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2601C 2607C
@@ -2712,7 +2718,10 @@
2712C ARGUMENTS 2718C ARGUMENTS
2713C 2719C
2714 REAL*8 P(0:3,NEXTERNAL)2720 REAL*8 P(0:3,NEXTERNAL)
2715 REAL*8 ANS(0:3,0:NSQUAREDSO)2721 INCLUDE 'nsqso_born.inc'
2722 INTEGER ANS_DIMENSION
2723 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2724 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2716 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2725 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2717 INTEGER RET_CODE2726 INTEGER RET_CODE
2718C 2727C
27192728
=== modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QEDpert_default.f'
--- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QEDpert_default.f 2020-06-20 21:10:10 +0000
+++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QEDpert_default.f 2020-08-13 08:01:43 +0000
@@ -2565,11 +2565,14 @@
2565 PARAMETER (NEXTERNAL=4)2565 PARAMETER (NEXTERNAL=4)
2566 INTEGER NSQUAREDSO2566 INTEGER NSQUAREDSO
2567 PARAMETER (NSQUAREDSO=1)2567 PARAMETER (NSQUAREDSO=1)
2568 INCLUDE 'nsqso_born.inc'
2568C 2569C
2569C ARGUMENTS 2570C ARGUMENTS
2570C 2571C
2571 REAL*8 P(0:3,NEXTERNAL)2572 REAL*8 P(0:3,NEXTERNAL)
2572 REAL*8 ANS(0:3,0:NSQUAREDSO)2573 INTEGER ANS_DIMENSION
2574 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2575 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2573 INTEGER HEL, USERHEL2576 INTEGER HEL, USERHEL
2574 COMMON/ML5_0_USERCHOICE/USERHEL2577 COMMON/ML5_0_USERCHOICE/USERHEL
2575C ----------2578C ----------
@@ -2593,7 +2596,10 @@
2593C ARGUMENTS 2596C ARGUMENTS
2594C 2597C
2595 REAL*8 P(0:3,NEXTERNAL)2598 REAL*8 P(0:3,NEXTERNAL)
2596 REAL*8 ANS(0:3,0:NSQUAREDSO)2599 INCLUDE 'nsqso_born.inc'
2600 INTEGER ANS_DIMENSION
2601 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2602 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2597 INTEGER HEL, RET_CODE2603 INTEGER HEL, RET_CODE
2598 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2604 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2599C 2605C
@@ -2710,7 +2716,10 @@
2710C ARGUMENTS 2716C ARGUMENTS
2711C 2717C
2712 REAL*8 P(0:3,NEXTERNAL)2718 REAL*8 P(0:3,NEXTERNAL)
2713 REAL*8 ANS(0:3,0:NSQUAREDSO)2719 INCLUDE 'nsqso_born.inc'
2720 INTEGER ANS_DIMENSION
2721 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2722 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2714 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2723 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2715 INTEGER RET_CODE2724 INTEGER RET_CODE
2716C 2725C
27172726
=== modified file 'tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%loop_matrix.f'
--- tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%loop_matrix.f 2020-06-20 21:10:10 +0000
+++ tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%loop_matrix.f 2020-08-13 08:01:43 +0000
@@ -2584,11 +2584,14 @@
2584 PARAMETER (NEXTERNAL=4)2584 PARAMETER (NEXTERNAL=4)
2585 INTEGER NSQUAREDSO2585 INTEGER NSQUAREDSO
2586 PARAMETER (NSQUAREDSO=1)2586 PARAMETER (NSQUAREDSO=1)
2587 INCLUDE 'nsqso_born.inc'
2587C 2588C
2588C ARGUMENTS 2589C ARGUMENTS
2589C 2590C
2590 REAL*8 P(0:3,NEXTERNAL)2591 REAL*8 P(0:3,NEXTERNAL)
2591 REAL*8 ANS(0:3,0:NSQUAREDSO)2592 INTEGER ANS_DIMENSION
2593 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2594 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2592 INTEGER HEL, USERHEL2595 INTEGER HEL, USERHEL
2593 COMMON/ML5_0_USERCHOICE/USERHEL2596 COMMON/ML5_0_USERCHOICE/USERHEL
2594C ----------2597C ----------
@@ -2612,7 +2615,10 @@
2612C ARGUMENTS 2615C ARGUMENTS
2613C 2616C
2614 REAL*8 P(0:3,NEXTERNAL)2617 REAL*8 P(0:3,NEXTERNAL)
2615 REAL*8 ANS(0:3,0:NSQUAREDSO)2618 INCLUDE 'nsqso_born.inc'
2619 INTEGER ANS_DIMENSION
2620 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2621 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2616 INTEGER HEL, RET_CODE2622 INTEGER HEL, RET_CODE
2617 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2623 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2618C 2624C
@@ -2729,7 +2735,10 @@
2729C ARGUMENTS 2735C ARGUMENTS
2730C 2736C
2731 REAL*8 P(0:3,NEXTERNAL)2737 REAL*8 P(0:3,NEXTERNAL)
2732 REAL*8 ANS(0:3,0:NSQUAREDSO)2738 INCLUDE 'nsqso_born.inc'
2739 INTEGER ANS_DIMENSION
2740 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2741 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2733 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2742 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2734 INTEGER RET_CODE2743 INTEGER RET_CODE
2735C 2744C
27362745
=== modified file 'tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%loop_matrix.f'
--- tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%loop_matrix.f 2020-06-20 21:10:10 +0000
+++ tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%loop_matrix.f 2020-08-13 08:01:43 +0000
@@ -2574,11 +2574,14 @@
2574 PARAMETER (NEXTERNAL=4)2574 PARAMETER (NEXTERNAL=4)
2575 INTEGER NSQUAREDSO2575 INTEGER NSQUAREDSO
2576 PARAMETER (NSQUAREDSO=1)2576 PARAMETER (NSQUAREDSO=1)
2577 INCLUDE 'nsqso_born.inc'
2577C 2578C
2578C ARGUMENTS 2579C ARGUMENTS
2579C 2580C
2580 REAL*8 P(0:3,NEXTERNAL)2581 REAL*8 P(0:3,NEXTERNAL)
2581 REAL*8 ANS(0:3,0:NSQUAREDSO)2582 INTEGER ANS_DIMENSION
2583 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2584 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2582 INTEGER HEL, USERHEL2585 INTEGER HEL, USERHEL
2583 COMMON/MG5_1_USERCHOICE/USERHEL2586 COMMON/MG5_1_USERCHOICE/USERHEL
2584C ----------2587C ----------
@@ -2602,7 +2605,10 @@
2602C ARGUMENTS 2605C ARGUMENTS
2603C 2606C
2604 REAL*8 P(0:3,NEXTERNAL)2607 REAL*8 P(0:3,NEXTERNAL)
2605 REAL*8 ANS(0:3,0:NSQUAREDSO)2608 INCLUDE 'nsqso_born.inc'
2609 INTEGER ANS_DIMENSION
2610 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2611 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2606 INTEGER HEL, RET_CODE2612 INTEGER HEL, RET_CODE
2607 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2613 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2608C 2614C
@@ -2719,7 +2725,10 @@
2719C ARGUMENTS 2725C ARGUMENTS
2720C 2726C
2721 REAL*8 P(0:3,NEXTERNAL)2727 REAL*8 P(0:3,NEXTERNAL)
2722 REAL*8 ANS(0:3,0:NSQUAREDSO)2728 INCLUDE 'nsqso_born.inc'
2729 INTEGER ANS_DIMENSION
2730 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2731 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2723 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2732 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2724 INTEGER RET_CODE2733 INTEGER RET_CODE
2725C 2734C
27262735
=== modified file 'tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/loop_matrix.f'
--- tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/loop_matrix.f 2020-06-20 21:10:10 +0000
+++ tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/loop_matrix.f 2020-08-13 08:01:43 +0000
@@ -2548,11 +2548,14 @@
2548 PARAMETER (NEXTERNAL=5)2548 PARAMETER (NEXTERNAL=5)
2549 INTEGER NSQUAREDSO2549 INTEGER NSQUAREDSO
2550 PARAMETER (NSQUAREDSO=0)2550 PARAMETER (NSQUAREDSO=0)
2551 INCLUDE 'nsqso_born.inc'
2551C 2552C
2552C ARGUMENTS 2553C ARGUMENTS
2553C 2554C
2554 REAL*8 P(0:3,NEXTERNAL)2555 REAL*8 P(0:3,NEXTERNAL)
2555 REAL*8 ANS(0:3,0:NSQUAREDSO)2556 INTEGER ANS_DIMENSION
2557 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2558 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2556 INTEGER HEL, USERHEL2559 INTEGER HEL, USERHEL
2557 COMMON/ML5_0_USERCHOICE/USERHEL2560 COMMON/ML5_0_USERCHOICE/USERHEL
2558C ----------2561C ----------
@@ -2576,7 +2579,10 @@
2576C ARGUMENTS 2579C ARGUMENTS
2577C 2580C
2578 REAL*8 P(0:3,NEXTERNAL)2581 REAL*8 P(0:3,NEXTERNAL)
2579 REAL*8 ANS(0:3,0:NSQUAREDSO)2582 INCLUDE 'nsqso_born.inc'
2583 INTEGER ANS_DIMENSION
2584 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2585 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2580 INTEGER HEL, RET_CODE2586 INTEGER HEL, RET_CODE
2581 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2587 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2582C 2588C
@@ -2693,7 +2699,10 @@
2693C ARGUMENTS 2699C ARGUMENTS
2694C 2700C
2695 REAL*8 P(0:3,NEXTERNAL)2701 REAL*8 P(0:3,NEXTERNAL)
2696 REAL*8 ANS(0:3,0:NSQUAREDSO)2702 INCLUDE 'nsqso_born.inc'
2703 INTEGER ANS_DIMENSION
2704 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2705 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2697 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2706 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2698 INTEGER RET_CODE2707 INTEGER RET_CODE
2699C 2708C
27002709
=== modified file 'tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/loop_matrix.f'
--- tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/loop_matrix.f 2020-06-20 21:10:10 +0000
+++ tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/loop_matrix.f 2020-08-13 08:01:43 +0000
@@ -2548,11 +2548,14 @@
2548 PARAMETER (NEXTERNAL=5)2548 PARAMETER (NEXTERNAL=5)
2549 INTEGER NSQUAREDSO2549 INTEGER NSQUAREDSO
2550 PARAMETER (NSQUAREDSO=0)2550 PARAMETER (NSQUAREDSO=0)
2551 INCLUDE 'nsqso_born.inc'
2551C 2552C
2552C ARGUMENTS 2553C ARGUMENTS
2553C 2554C
2554 REAL*8 P(0:3,NEXTERNAL)2555 REAL*8 P(0:3,NEXTERNAL)
2555 REAL*8 ANS(0:3,0:NSQUAREDSO)2556 INTEGER ANS_DIMENSION
2557 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2558 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2556 INTEGER HEL, USERHEL2559 INTEGER HEL, USERHEL
2557 COMMON/ML5_0_USERCHOICE/USERHEL2560 COMMON/ML5_0_USERCHOICE/USERHEL
2558C ----------2561C ----------
@@ -2576,7 +2579,10 @@
2576C ARGUMENTS 2579C ARGUMENTS
2577C 2580C
2578 REAL*8 P(0:3,NEXTERNAL)2581 REAL*8 P(0:3,NEXTERNAL)
2579 REAL*8 ANS(0:3,0:NSQUAREDSO)2582 INCLUDE 'nsqso_born.inc'
2583 INTEGER ANS_DIMENSION
2584 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2585 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2580 INTEGER HEL, RET_CODE2586 INTEGER HEL, RET_CODE
2581 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2587 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2582C 2588C
@@ -2693,7 +2699,10 @@
2693C ARGUMENTS 2699C ARGUMENTS
2694C 2700C
2695 REAL*8 P(0:3,NEXTERNAL)2701 REAL*8 P(0:3,NEXTERNAL)
2696 REAL*8 ANS(0:3,0:NSQUAREDSO)2702 INCLUDE 'nsqso_born.inc'
2703 INTEGER ANS_DIMENSION
2704 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2705 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2697 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2706 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2698 INTEGER RET_CODE2707 INTEGER RET_CODE
2699C 2708C
27002709
=== modified file 'tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/loop_matrix.f'
--- tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/loop_matrix.f 2020-06-20 21:10:10 +0000
+++ tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/loop_matrix.f 2020-08-13 08:01:43 +0000
@@ -2548,11 +2548,14 @@
2548 PARAMETER (NEXTERNAL=4)2548 PARAMETER (NEXTERNAL=4)
2549 INTEGER NSQUAREDSO2549 INTEGER NSQUAREDSO
2550 PARAMETER (NSQUAREDSO=0)2550 PARAMETER (NSQUAREDSO=0)
2551 INCLUDE 'nsqso_born.inc'
2551C 2552C
2552C ARGUMENTS 2553C ARGUMENTS
2553C 2554C
2554 REAL*8 P(0:3,NEXTERNAL)2555 REAL*8 P(0:3,NEXTERNAL)
2555 REAL*8 ANS(0:3,0:NSQUAREDSO)2556 INTEGER ANS_DIMENSION
2557 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2558 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2556 INTEGER HEL, USERHEL2559 INTEGER HEL, USERHEL
2557 COMMON/ML5_0_USERCHOICE/USERHEL2560 COMMON/ML5_0_USERCHOICE/USERHEL
2558C ----------2561C ----------
@@ -2576,7 +2579,10 @@
2576C ARGUMENTS 2579C ARGUMENTS
2577C 2580C
2578 REAL*8 P(0:3,NEXTERNAL)2581 REAL*8 P(0:3,NEXTERNAL)
2579 REAL*8 ANS(0:3,0:NSQUAREDSO)2582 INCLUDE 'nsqso_born.inc'
2583 INTEGER ANS_DIMENSION
2584 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2585 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2580 INTEGER HEL, RET_CODE2586 INTEGER HEL, RET_CODE
2581 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2587 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2582C 2588C
@@ -2693,7 +2699,10 @@
2693C ARGUMENTS 2699C ARGUMENTS
2694C 2700C
2695 REAL*8 P(0:3,NEXTERNAL)2701 REAL*8 P(0:3,NEXTERNAL)
2696 REAL*8 ANS(0:3,0:NSQUAREDSO)2702 INCLUDE 'nsqso_born.inc'
2703 INTEGER ANS_DIMENSION
2704 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2705 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2697 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2706 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2698 INTEGER RET_CODE2707 INTEGER RET_CODE
2699C 2708C
27002709
=== modified file 'tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/loop_matrix.f'
--- tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/loop_matrix.f 2020-06-20 21:10:10 +0000
+++ tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/loop_matrix.f 2020-08-13 08:01:43 +0000
@@ -2548,11 +2548,14 @@
2548 PARAMETER (NEXTERNAL=4)2548 PARAMETER (NEXTERNAL=4)
2549 INTEGER NSQUAREDSO2549 INTEGER NSQUAREDSO
2550 PARAMETER (NSQUAREDSO=0)2550 PARAMETER (NSQUAREDSO=0)
2551 INCLUDE 'nsqso_born.inc'
2551C 2552C
2552C ARGUMENTS 2553C ARGUMENTS
2553C 2554C
2554 REAL*8 P(0:3,NEXTERNAL)2555 REAL*8 P(0:3,NEXTERNAL)
2555 REAL*8 ANS(0:3,0:NSQUAREDSO)2556 INTEGER ANS_DIMENSION
2557 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2558 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2556 INTEGER HEL, USERHEL2559 INTEGER HEL, USERHEL
2557 COMMON/ML5_0_USERCHOICE/USERHEL2560 COMMON/ML5_0_USERCHOICE/USERHEL
2558C ----------2561C ----------
@@ -2576,7 +2579,10 @@
2576C ARGUMENTS 2579C ARGUMENTS
2577C 2580C
2578 REAL*8 P(0:3,NEXTERNAL)2581 REAL*8 P(0:3,NEXTERNAL)
2579 REAL*8 ANS(0:3,0:NSQUAREDSO)2582 INCLUDE 'nsqso_born.inc'
2583 INTEGER ANS_DIMENSION
2584 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2585 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2580 INTEGER HEL, RET_CODE2586 INTEGER HEL, RET_CODE
2581 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2587 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2582C 2588C
@@ -2693,7 +2699,10 @@
2693C ARGUMENTS 2699C ARGUMENTS
2694C 2700C
2695 REAL*8 P(0:3,NEXTERNAL)2701 REAL*8 P(0:3,NEXTERNAL)
2696 REAL*8 ANS(0:3,0:NSQUAREDSO)2702 INCLUDE 'nsqso_born.inc'
2703 INTEGER ANS_DIMENSION
2704 PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO))
2705 REAL*8 ANS(0:3,0:ANS_DIMENSION)
2697 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)2706 REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO)
2698 INTEGER RET_CODE2707 INTEGER RET_CODE
2699C 2708C
27002709
=== modified file 'tests/test_manager.py'
--- tests/test_manager.py 2018-08-10 12:40:47 +0000
+++ tests/test_manager.py 2020-08-13 08:01:43 +0000
@@ -44,6 +44,7 @@
44import time44import time
45import datetime45import datetime
46import shutil46import shutil
47import subprocess
47import glob48import glob
48from functools import wraps49from functools import wraps
4950
@@ -973,7 +974,8 @@
973974
974 parser.add_option("-N", "--notification", default=45,975 parser.add_option("-N", "--notification", default=45,
975 help="Running time, below which no notification is raised. (-1 for no notification)") 976 help="Running time, below which no notification is raised. (-1 for no notification)")
976977 parser.add_option("", "--nocaffeinate", action="store_false", default=True, dest='nosleep',
978 help='For mac user, forbids to use caffeinate when running with a script')
977 979
978 (options, args) = parser.parse_args()980 (options, args) = parser.parse_args()
979981
@@ -1046,6 +1048,14 @@
1046 logging.getLogger('tutorial').setLevel('ERROR')1048 logging.getLogger('tutorial').setLevel('ERROR')
1047 except:1049 except:
1048 pass1050 pass
1051
1052 if sys.platform == "darwin" and options.nosleep:
1053 logging.getLogger('madgraph').warning("launching caffeinate to prevent idle sleep when MG5aMC is running. Run './bin/mg5_aMC -s' to prevent this.")
1054 pid = os.getpid()
1055 subprocess.Popen(['caffeinate', '-i', '-w', str(pid)])
1056
1057
1058
1049 1059
1050 if options.synchronize and IOTestManager._compress_ref_fodler:1060 if options.synchronize and IOTestManager._compress_ref_fodler:
1051 print "The tarball synchronization is not necessary since"+ \1061 print "The tarball synchronization is not necessary since"+ \

Subscribers

People subscribed via source and target branches

to all changes: