Merge lp:~maddevelopers/mg5amcnlo/2.6.5_ewa into lp:mg5amcnlo/lts
- 2.6.5_ewa
- Merge into series2.0
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 |
Related bugs: |
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
Description of the change
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
1 | === modified file 'MadSpin/interface_madspin.py' |
2 | --- MadSpin/interface_madspin.py 2020-06-16 19:24:01 +0000 |
3 | +++ MadSpin/interface_madspin.py 2020-08-13 08:01:43 +0000 |
4 | @@ -150,6 +150,7 @@ |
5 | self.mg5cmd = master_interface.MasterCmd() |
6 | self.seed = None |
7 | self.err_branching_ratio = 0 |
8 | + self.me_run_name = "" # Events diretory name where to stotre the events (used by madevent) not use internally |
9 | |
10 | |
11 | if event_path: |
12 | @@ -580,11 +581,35 @@ |
13 | decay go > sq j |
14 | launch |
15 | ''' |
16 | + |
17 | + self.parser_launch.print_help() |
18 | + |
19 | + def parser_launch(self): |
20 | + usage = """launch [-n RUN_NAME] |
21 | + """ |
22 | + parser = misc.OptionParser(usage=usage) |
23 | + parser.add_option("-n", "--name", |
24 | + default="", |
25 | + help="When NOT run in standalone instruct MG5aMC where to store the events file") |
26 | + return parser |
27 | + |
28 | + def parse_launch(self, line): |
29 | + |
30 | + args = self.split_arg(line) |
31 | + return self.parser_launch().parse_args(args) |
32 | + |
33 | |
34 | @misc.mute_logger() |
35 | def do_launch(self, line): |
36 | """end of the configuration launched the code""" |
37 | |
38 | + (options, args) = self.parse_launch(line) |
39 | + |
40 | + if options.name: |
41 | + self.me_run_name = options.name # Only use by MG5aMC |
42 | + else: |
43 | + self.me_run_name = '' |
44 | + |
45 | if self.options["spinmode"] in ["none"]: |
46 | return self.run_bridge(line) |
47 | elif self.options["spinmode"] == "onshell": |
48 | |
49 | === modified file 'Template/LO/Cards/pythia8_card_default.dat' |
50 | --- Template/LO/Cards/pythia8_card_default.dat 2017-02-06 18:35:42 +0000 |
51 | +++ Template/LO/Cards/pythia8_card_default.dat 2020-08-13 08:01:43 +0000 |
52 | @@ -12,6 +12,8 @@ |
53 | ! ------------------------------------------------------------------- |
54 | ! Specify the HEPMC output of the Pythia8 shower. You can set it to: |
55 | ! auto : MG5aMC will automatically place it the run_<i> directory |
56 | +! autoremove: MG5aMC will automatically remove the file at the end of the run. |
57 | +! (usefull when running with Delphes) |
58 | ! /dev/null : to turn off the HEPMC output. |
59 | ! <path> : to select where the HEPMC file must written. It will |
60 | ! therefore not be placed in the run_<i> directory. The |
61 | |
62 | === modified file 'Template/LO/Cards/run_card.dat' |
63 | --- Template/LO/Cards/run_card.dat 2020-05-27 07:52:34 +0000 |
64 | +++ Template/LO/Cards/run_card.dat 2020-08-13 08:01:43 +0000 |
65 | @@ -28,7 +28,7 @@ |
66 | #********************************************************************* |
67 | # Collider type and energy * |
68 | # lpp: 0=No PDF, 1=proton, -1=antiproton, 2=photon from proton, * |
69 | -# 3=photon from electron * |
70 | +# 3=photon from electron, 4=photon from muon * |
71 | #********************************************************************* |
72 | %(lpp1)s = lpp1 ! beam 1 type |
73 | %(lpp2)s = lpp2 ! beam 2 type |
74 | |
75 | === added file 'Template/LO/Source/PDF/ElectroweakFlux.f' |
76 | --- Template/LO/Source/PDF/ElectroweakFlux.f 1970-01-01 00:00:00 +0000 |
77 | +++ Template/LO/Source/PDF/ElectroweakFlux.f 2020-08-13 08:01:43 +0000 |
78 | @@ -0,0 +1,1484 @@ |
79 | +c/* ********************************************************* */ |
80 | +c/* Effective W Approximation Splitting Functions */ |
81 | +c/* Pulled from Barger and Phillips, pg 276 */ |
82 | +c/* ********************************************************* */ |
83 | +c |
84 | +c List of functions: |
85 | +c ewa_wX_ByPID,ewa_wX,ewa_wT,ewa_w0 |
86 | +c ewa_zX_ByPID,ewa_zT,ewa_z0 |
87 | +c |
88 | +c Input for ewa_vX_ByPID: |
89 | +c x: longitudinal momentum fraction carried by boson v |
90 | +c q2max: scale^2 of v boson pdf |
91 | +c pol: polarization of v boson (pol = +1,-1,0) |
92 | +c ppid: pid of v boson's parent fermion |
93 | +c/* ********************************************************* */ |
94 | + |
95 | +c/* ********************************************************* */ |
96 | +c return ewa splitting function for w boson by parent PID |
97 | + double precision function ewa_wX_ByPID(x,q2max,pol,ppid) |
98 | + implicit none |
99 | + integer pol,ppid |
100 | + double precision x,q2max |
101 | + double precision ewa_wX |
102 | + double precision ewa_wp_p, ewa_wm_p |
103 | + external ewa_wX, ewa_wp_p, ewa_wm_p |
104 | + |
105 | + include 'ElectroweakFlux.inc' |
106 | + |
107 | + if(q2max.lt.ewa_mw2) then |
108 | +c write (*,*) 'ERROR: q2max below MW2',q2max,ewa_mw2 |
109 | + ewa_wX_ByPID = 0d0 |
110 | + return |
111 | + endif |
112 | + if(x.lt.eps .or. x.gt.(1.d0-eps)) then |
113 | +c write (*,*) 'ERROR: x out of range',x |
114 | + ewa_wX_ByPID =0d0 |
115 | + return |
116 | + endif |
117 | + |
118 | +c is parent a proton (unbroken) |
119 | + if(ppid.eq.2212) then |
120 | + ewa_wX_ByPID = ewa_wp_p(x,q2max,pol) |
121 | + return |
122 | + else if(ppid.eq.-2212) then |
123 | + ewa_wX_ByPID = ewa_wm_p(x,q2max,pol) |
124 | + return |
125 | +c other particle |
126 | + else |
127 | + ewa_wX_ByPID = ewa_wX(x,q2max,pol) |
128 | + endif |
129 | + return |
130 | + end |
131 | +c/* ********************************************************* */ |
132 | +c return ewa splitting function for w boson |
133 | + double precision function ewa_wX(x,q2max,pol) |
134 | + implicit none |
135 | + integer pol |
136 | + double precision x,q2max |
137 | + double precision ewa_wT,ewa_w0 |
138 | + external ewa_wT,ewa_w0 |
139 | + |
140 | + if(abs(pol).gt.0) then |
141 | + ewa_wX = ewa_wT(x,q2max,pol) |
142 | + else |
143 | + ewa_wX = ewa_w0(x) |
144 | + endif |
145 | + return |
146 | + end |
147 | +c/* ********************************************************* */ |
148 | +c return ewa splitting function for z boson by parent PID |
149 | + double precision function ewa_zX_ByPID(x,q2max,pol,ppid) |
150 | + implicit none |
151 | + integer pol,ppid |
152 | + double precision x,q2max |
153 | + double precision ewa_zT,ewa_z0, ewa_z_p |
154 | + external ewa_zT,ewa_z0,ewa_z_p |
155 | + |
156 | + include 'ElectroweakFlux.inc' |
157 | + |
158 | + if(q2max.lt.ewa_mz2) then |
159 | +c write (*,*) 'ERROR: q2max below MZ2',q2max,ewa_mz2 |
160 | + ewa_zX_ByPID = 0d0 |
161 | + return |
162 | + endif |
163 | + if(x.lt.eps .or. x.gt.(1.d0-eps))then |
164 | +c write (*,*) 'ERROR: x out of range',x |
165 | + ewa_zX_ByPID = 0d0 |
166 | + return |
167 | + endif |
168 | + |
169 | +c is parent a charged lepton? |
170 | + if( abs(ppid).eq.11 |
171 | + & .or. abs(ppid).eq.13 |
172 | + & .or. abs(ppid).eq.15) then |
173 | + if(abs(pol).gt.0) then |
174 | + ewa_zX_ByPID = ewa_zT(x,q2max,pol,ewa_gVl,ewa_gAl) |
175 | + else |
176 | + ewa_zX_ByPID = ewa_z0(x,ewa_gVl,ewa_gAl) |
177 | + endif |
178 | + return |
179 | +c is parent a proton (unbroken) |
180 | + elseif(ppid.eq.2212) then |
181 | + ewa_zX_ByPID = ewa_Z_p(x,q2max,pol) |
182 | + return |
183 | +c is parent a neutrino? |
184 | + elseif( abs(ppid).eq.12 |
185 | + & .or. abs(ppid).eq.14 |
186 | + & .or. abs(ppid).eq.16) then |
187 | + if(abs(pol).gt.0) then |
188 | + ewa_zX_ByPID = ewa_zT(x,q2max,pol,ewa_gVv,ewa_gAv) |
189 | + else |
190 | + ewa_zX_ByPID = ewa_z0(x,ewa_gVv,ewa_gAv) |
191 | + endif |
192 | + return |
193 | +c is parent an up-type quark? |
194 | + elseif( abs(ppid).eq.2 |
195 | + & .or. abs(ppid).eq.4 |
196 | + & .or. abs(ppid).eq.6) then |
197 | + if(abs(pol).gt.0) then |
198 | + ewa_zX_ByPID = ewa_zT(x,q2max,pol,ewa_gVu,ewa_gAu) |
199 | + else |
200 | + ewa_zX_ByPID = ewa_z0(x,ewa_gVu,ewa_gAu) |
201 | + endif |
202 | + return |
203 | +c is parent a down-type quark? |
204 | + elseif( abs(ppid).eq.1 |
205 | + & .or. abs(ppid).eq.3 |
206 | + & .or. abs(ppid).eq.5) then |
207 | + if(abs(pol).gt.0) then |
208 | + ewa_zX_ByPID = ewa_zT(x,q2max,pol,ewa_gVd,ewa_gAd) |
209 | + else |
210 | + ewa_zX_ByPID = ewa_z0(x,ewa_gVd,ewa_gAd) |
211 | + endif |
212 | + return |
213 | +c or something else? |
214 | + else |
215 | + ewa_zX_ByPID = 0d0 |
216 | + return |
217 | + endif |
218 | + end |
219 | +c/* ********************************************************* */ |
220 | +c w boson splitting function: longitudinal polarization |
221 | + double precision function ewa_w0(x) |
222 | + implicit none |
223 | + double precision x |
224 | + double precision coup |
225 | + |
226 | + include 'ElectroweakFlux.inc' |
227 | + |
228 | +c P_W(x,lambda=0) = (gW/4pi)**2 (1-x)/x |
229 | + coup = ewa_gW2/(16d0*pi2) |
230 | + ewa_w0 = coup * (1d0-x)/x |
231 | + return |
232 | + end |
233 | +c/* ********************************************************* */ |
234 | +c z boson splitting function: longitudinal polarization |
235 | + double precision function ewa_z0(x,gV,gA) |
236 | + implicit none |
237 | + double precision x,gV,gA |
238 | + double precision coup |
239 | + |
240 | + include 'ElectroweakFlux.inc' |
241 | + |
242 | +c P_Z(x,lambda=0) = (gW2/cw2*4pi2) * (gV2 + gA2) (1-x)/x |
243 | + coup = ewa_gW2/(ewa_cw2*4d0*pi2) * (gV**2 + gA**2) |
244 | + ewa_z0 = coup * (1d0-x)/x |
245 | + return |
246 | + end |
247 | +c/* ********************************************************* */ |
248 | +c w boson splitting function: transverse polarization |
249 | + double precision function ewa_wT(x,q2max,pol) |
250 | + implicit none |
251 | + integer pol |
252 | + double precision x,q2max |
253 | + double precision coup,numer |
254 | + |
255 | + include 'ElectroweakFlux.inc' |
256 | + |
257 | +c P_W(x,lambda=\pm) = coup * [(gV \mp gA)^2 + (gV \pm gA)^2 (1-x)^2] * log(Q2/MV2) |
258 | + coup = ewa_gW2/(8d0*16d0*pi2) |
259 | + numer = (ewa_gV-pol*ewa_gA)**2 |
260 | + & + (ewa_gV+pol*ewa_gA)**2 * (1d0-x)**2 |
261 | + ewa_wT = coup * numer * log(q2max/ewa_mw2) / x |
262 | + return |
263 | + end |
264 | +c/* ********************************************************* */ |
265 | +c z boson splitting function: transverse polarization |
266 | + double precision function ewa_zT(x,q2max,pol,gV,gA) |
267 | + implicit none |
268 | + integer pol |
269 | + double precision x,q2max,gV,gA |
270 | + double precision coup,numer |
271 | + |
272 | + include 'ElectroweakFlux.inc' |
273 | + |
274 | +c P_Z(x,lambda=\pm) = coup * [(gV \mp gA)^2 + (gV \pm gA)^2 (1-x)^2] * log(Q2/MV2) |
275 | + coup = ewa_gW2/(ewa_cw2*16d0*pi2) |
276 | + numer = (gV-pol*gA)**2 |
277 | + & + (gV+pol*gA)**2 * (1d0-x)**2 |
278 | + ewa_zT = coup * numer * log(q2max/ewa_mz2) / x |
279 | + return |
280 | + end |
281 | + FUNCTION dFINT(NARG,ARG,NENT,ENT,TABLE) |
282 | +C |
283 | +C INTERPOLATION ROUTINE. AUTHOR C. LETERTRE. |
284 | +C MODIFIED BY B. SCHORR, 1.07.1982. |
285 | +C |
286 | + implicit real * 8 (a-h,o-z) |
287 | + INTEGER NENT(*) |
288 | + REAL*8 ARG(*), ENT(*), TABLE(*) |
289 | + INTEGER INDEX(32) |
290 | + REAL*8 WEIGHT(32) |
291 | + LOGICAL MFLAG, RFLAG |
292 | + DFINT = 0. |
293 | + IF(NARG .LT. 1 .OR. NARG .GT. 5) GOTO 300 |
294 | + LMAX = 0 |
295 | + ISTEP = 1 |
296 | + KNOTS = 1 |
297 | + INDEX(1) = 1 |
298 | + WEIGHT(1) = 1. |
299 | + DO 100 N = 1, NARG |
300 | + X = ARG(N) |
301 | + NDIM = NENT(N) |
302 | + LOCA = LMAX |
303 | + LMIN = LMAX + 1 |
304 | + LMAX = LMAX + NDIM |
305 | + IF(NDIM .GT. 2) GOTO 10 |
306 | + IF(NDIM .EQ. 1) GOTO 100 |
307 | + H = X - ENT(LMIN) |
308 | + IF(H .EQ. 0.) GOTO 90 |
309 | + ISHIFT = ISTEP |
310 | + IF(X-ENT(LMIN+1) .EQ. 0.) GOTO 21 |
311 | + ISHIFT = 0 |
312 | + ETA = H / (ENT(LMIN+1) - ENT(LMIN)) |
313 | + GOTO 30 |
314 | + 10 LOCB = LMAX + 1 |
315 | + 11 LOCC = (LOCA+LOCB) / 2 |
316 | + IF(X-ENT(LOCC)) 12, 20, 13 |
317 | + 12 LOCB = LOCC |
318 | + GOTO 14 |
319 | + 13 LOCA = LOCC |
320 | + 14 IF(LOCB-LOCA .GT. 1) GOTO 11 |
321 | + LOCA = MIN0( MAX0(LOCA,LMIN), LMAX-1 ) |
322 | + ISHIFT = (LOCA - LMIN) * ISTEP |
323 | + ETA = (X - ENT(LOCA)) / (ENT(LOCA+1) - ENT(LOCA)) |
324 | + GOTO 30 |
325 | + 20 ISHIFT = (LOCC - LMIN) * ISTEP |
326 | + 21 DO 22 K = 1, KNOTS |
327 | + INDEX(K) = INDEX(K) + ISHIFT |
328 | + 22 CONTINUE |
329 | + GOTO 90 |
330 | + 30 DO 31 K = 1, KNOTS |
331 | + INDEX(K) = INDEX(K) + ISHIFT |
332 | + INDEX(K+KNOTS) = INDEX(K) + ISTEP |
333 | + WEIGHT(K+KNOTS) = WEIGHT(K) * ETA |
334 | + WEIGHT(K) = WEIGHT(K) - WEIGHT(K+KNOTS) |
335 | + 31 CONTINUE |
336 | + KNOTS = 2*KNOTS |
337 | + 90 ISTEP = ISTEP * NDIM |
338 | + 100 CONTINUE |
339 | + DO 200 K = 1, KNOTS |
340 | + I = INDEX(K) |
341 | + DFINT = DFINT + WEIGHT(K) * TABLE(I) |
342 | + 200 CONTINUE |
343 | + RETURN |
344 | + 300 CALL KERMTR('E104.1',LGFILE,MFLAG,RFLAG) |
345 | + IF(MFLAG) THEN |
346 | + IF(LGFILE .EQ. 0) THEN |
347 | + WRITE(*,1000) NARG |
348 | + ELSE |
349 | + WRITE(LGFILE,1000) NARG |
350 | + ENDIF |
351 | + ENDIF |
352 | + IF(.NOT. RFLAG) CALL ABEND |
353 | + RETURN |
354 | +1000 FORMAT( 7X, 25HFUNCTION DFINT ... NARG =,I6, |
355 | + + 17H NOT WITHIN RANGE) |
356 | + END |
357 | + SUBROUTINE KERSET(ERCODE,LGFILE,LIMITM,LIMITR) |
358 | + PARAMETER(KOUNTE = 28) |
359 | + CHARACTER*6 ERCODE, CODE(KOUNTE) |
360 | + LOGICAL MFLAG, RFLAG |
361 | + INTEGER KNTM(KOUNTE), KNTR(KOUNTE) |
362 | + DATA LOGF / 0 / |
363 | + DATA CODE(1), KNTM(1), KNTR(1) / 'C204.1', 100, 100 / |
364 | + DATA CODE(2), KNTM(2), KNTR(2) / 'C204.2', 100, 100 / |
365 | + DATA CODE(3), KNTM(3), KNTR(3) / 'C204.3', 100, 100 / |
366 | + DATA CODE(4), KNTM(4), KNTR(4) / 'C205.1', 100, 100 / |
367 | + DATA CODE(5), KNTM(5), KNTR(5) / 'C205.2', 100, 100 / |
368 | + DATA CODE(6), KNTM(6), KNTR(6) / 'C205.3', 100, 100 / |
369 | + DATA CODE(7), KNTM(7), KNTR(7) / 'C305.1', 100, 100 / |
370 | + DATA CODE(8), KNTM(8), KNTR(8) / 'C308.1', 100, 100 / |
371 | + DATA CODE(9), KNTM(9), KNTR(9) / 'C312.1', 100, 100 / |
372 | + DATA CODE(10),KNTM(10),KNTR(10) / 'C313.1', 100, 100 / |
373 | + DATA CODE(11),KNTM(11),KNTR(11) / 'C336.1', 100, 100 / |
374 | + DATA CODE(12),KNTM(12),KNTR(12) / 'C337.1', 100, 100 / |
375 | + DATA CODE(13),KNTM(13),KNTR(13) / 'C341.1', 100, 100 / |
376 | + DATA CODE(14),KNTM(14),KNTR(14) / 'D103.1', 100, 100 / |
377 | + DATA CODE(15),KNTM(15),KNTR(15) / 'D106.1', 100, 100 / |
378 | + DATA CODE(16),KNTM(16),KNTR(16) / 'D209.1', 100, 100 / |
379 | + DATA CODE(17),KNTM(17),KNTR(17) / 'D509.1', 100, 100 / |
380 | + DATA CODE(18),KNTM(18),KNTR(18) / 'E100.1', 100, 100 / |
381 | + DATA CODE(19),KNTM(19),KNTR(19) / 'E104.1', 100, 100 / |
382 | + DATA CODE(20),KNTM(20),KNTR(20) / 'E105.1', 100, 100 / |
383 | + DATA CODE(21),KNTM(21),KNTR(21) / 'E208.1', 100, 100 / |
384 | + DATA CODE(22),KNTM(22),KNTR(22) / 'E208.2', 100, 100 / |
385 | + DATA CODE(23),KNTM(23),KNTR(23) / 'F010.1', 100, 0 / |
386 | + DATA CODE(24),KNTM(24),KNTR(24) / 'F011.1', 100, 0 / |
387 | + DATA CODE(25),KNTM(25),KNTR(25) / 'F012.1', 100, 0 / |
388 | + DATA CODE(26),KNTM(26),KNTR(26) / 'F406.1', 100, 0 / |
389 | + DATA CODE(27),KNTM(27),KNTR(27) / 'G100.1', 100, 100 / |
390 | + DATA CODE(28),KNTM(28),KNTR(28) / 'G100.2', 100, 100 / |
391 | + LOGF = LGFILE |
392 | + IF(ERCODE .EQ. ' ') THEN |
393 | + L = 0 |
394 | + ELSE |
395 | + DO 10 L = 1, 6 |
396 | + IF(ERCODE(1:L) .EQ. ERCODE) GOTO 12 |
397 | + 10 CONTINUE |
398 | + 12 CONTINUE |
399 | + ENDIF |
400 | + DO 14 I = 1, KOUNTE |
401 | + IF(L .EQ. 0) GOTO 13 |
402 | + IF(CODE(I)(1:L) .NE. ERCODE(1:L)) GOTO 14 |
403 | + 13 KNTM(I) = LIMITM |
404 | + KNTR(I) = LIMITR |
405 | + 14 CONTINUE |
406 | + RETURN |
407 | + ENTRY KERMTR(ERCODE,LOG,MFLAG,RFLAG) |
408 | + LOG = LOGF |
409 | + DO 20 I = 1, KOUNTE |
410 | + IF(ERCODE .EQ. CODE(I)) GOTO 21 |
411 | + 20 CONTINUE |
412 | + WRITE(*,1000) ERCODE |
413 | + CALL ABEND |
414 | + RETURN |
415 | + 21 RFLAG = KNTR(I) .GE. 1 |
416 | + IF(RFLAG .AND. (KNTR(I) .LT. 100)) KNTR(I) = KNTR(I) - 1 |
417 | + MFLAG = KNTM(I) .GE. 1 |
418 | + IF(MFLAG .AND. (KNTM(I) .LT. 100)) KNTM(I) = KNTM(I) - 1 |
419 | + IF(.NOT. RFLAG) THEN |
420 | + IF(LOGF .LT. 1) THEN |
421 | + WRITE(*,1001) CODE(I) |
422 | + ELSE |
423 | + WRITE(LOGF,1001) CODE(I) |
424 | + ENDIF |
425 | + ENDIF |
426 | + IF(MFLAG .AND. RFLAG) THEN |
427 | + IF(LOGF .LT. 1) THEN |
428 | + WRITE(*,1002) CODE(I) |
429 | + ELSE |
430 | + WRITE(LOGF,1002) CODE(I) |
431 | + ENDIF |
432 | + ENDIF |
433 | + RETURN |
434 | +1000 FORMAT(' KERNLIB LIBRARY ERROR. ' / |
435 | + + ' ERROR CODE ',A6,' NOT RECOGNIZED BY KERMTR', |
436 | + + ' ERROR MONITOR. RUN ABORTED.') |
437 | +1001 FORMAT(/' ***** RUN TERMINATED BY CERN LIBRARY ERROR ', |
438 | + + 'CONDITION ',A6) |
439 | +1002 FORMAT(/' ***** CERN LIBRARY ERROR CONDITION ',A6) |
440 | + END |
441 | + SUBROUTINE ABEND |
442 | +C |
443 | +C CERN PROGLIB# Z035 ABEND .VERSION KERNVAX 1.10 811126 |
444 | + |
445 | + STOP '*** ABEND ***' |
446 | + END |
447 | + function ewa_wp_p(x,Q2,pol) |
448 | + implicit none |
449 | + real*8 ewa_wp_p |
450 | + real*8 x,Q2 |
451 | + integer pol |
452 | + real*8 tmp |
453 | + real*8 y,z |
454 | + real*8 ylow,yupp,zlow,zupp |
455 | + parameter (ylow=-16.1181,yupp=-1e-07) |
456 | + parameter (zlow=4.38683,zupp=13.8155) |
457 | + real*8 ewa_wp_p_1p |
458 | + real*8 ewa_wp_p_1m |
459 | + real*8 ewa_wp_p_0 |
460 | + y=log(x) |
461 | + z=0.5*log(Q2) |
462 | + if(pol.eq.1)then |
463 | + tmp=ewa_wp_p_1p(y,z) |
464 | + else if(pol.eq.-1)then |
465 | + tmp=ewa_wp_p_1m(y,z) |
466 | + else |
467 | + tmp=ewa_wp_p_0(y,z) |
468 | + endif |
469 | + ewa_wp_p=tmp/x*y*y |
470 | + end |
471 | + function ewa_wp_p_1p(y,z) |
472 | + implicit none |
473 | + real*8 ewa_wp_p_1p,y,z |
474 | + integer narg,nny,nnz |
475 | + parameter (narg=2) |
476 | + parameter (nny=32) |
477 | + parameter (nnz=8) |
478 | + integer iny,inz,nent(narg) |
479 | + real*8 tmp,dfint,ymap,zmap |
480 | + real*8 arg(narg),ent(nny+nnz) |
481 | + real*8 yv(nny),zv(nnz),gridv(nny,nnz) |
482 | + logical firsttime |
483 | + external dfint,ymap,zmap |
484 | + data yv/ |
485 | + # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, |
486 | + # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, |
487 | + # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, |
488 | + # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, |
489 | + # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, |
490 | + # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, |
491 | + # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, |
492 | + # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ |
493 | + data zv/ |
494 | + # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, |
495 | + # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ |
496 | + data (gridv(iny, 1),iny=1,32)/ |
497 | + # 3.5423305e-07, 2.8295336e-07, 2.2903220e-07, 1.8758200e-07, |
498 | + # 1.5559163e-07, 1.3038773e-07, 1.1025515e-07, 9.4027921e-08, |
499 | + # 8.0829168e-08, 7.0061706e-08, 6.1294211e-08, 5.4182560e-08, |
500 | + # 4.8450890e-08, 4.3888687e-08, 4.0319491e-08, 3.7580596e-08, |
501 | + # 3.5520713e-08, 3.3952301e-08, 3.2625426e-08, 3.1187707e-08, |
502 | + # 2.9181849e-08, 2.6154236e-08, 2.1900372e-08, 1.6640020e-08, |
503 | + # 1.1099066e-08, 6.2780040e-09, 2.8842540e-09, 1.0025616e-09, |
504 | + # 2.4219639e-10, 3.2430180e-11, 1.7122412e-12, 4.1237372e-12/ |
505 | + data (gridv(iny, 2),iny=1,32)/ |
506 | + # 9.6800285e-03, 7.5895745e-03, 6.0144129e-03, 4.8116391e-03, |
507 | + # 3.8906828e-03, 3.1743361e-03, 2.6106310e-03, 2.1637757e-03, |
508 | + # 1.8068388e-03, 1.5208169e-03, 1.2917371e-03, 1.1084546e-03, |
509 | + # 9.6221855e-04, 8.4652524e-04, 7.5595982e-04, 6.8586986e-04, |
510 | + # 6.3206533e-04, 5.8999236e-04, 5.5430903e-04, 5.1815672e-04, |
511 | + # 4.7362998e-04, 4.1384517e-04, 3.3686600e-04, 2.4790947e-04, |
512 | + # 1.5951917e-04, 8.6605399e-05, 3.7927081e-05, 1.2444648e-05, |
513 | + # 2.7972986e-06, 3.3735215e-07, 1.3499999e-08, 3.8170248e-08/ |
514 | + data (gridv(iny, 3),iny=1,32)/ |
515 | + # 2.6802909e-02, 2.0666858e-02, 1.6084293e-02, 1.2619023e-02, |
516 | + # 9.9957736e-03, 7.9819494e-03, 6.4206742e-03, 5.2026236e-03, |
517 | + # 4.2458765e-03, 3.4918949e-03, 2.8976082e-03, 2.4290655e-03, |
518 | + # 2.0601111e-03, 1.7714145e-03, 1.5472491e-03, 1.3744754e-03, |
519 | + # 1.2417664e-03, 1.1376810e-03, 1.0498817e-03, 9.6384193e-04, |
520 | + # 8.6434504e-04, 7.3958460e-04, 5.8805171e-04, 4.2143198e-04, |
521 | + # 2.6317925e-04, 1.3808501e-04, 5.8100243e-05, 1.8168748e-05, |
522 | + # 3.8451248e-06, 4.2503569e-07, 1.2748665e-08, 4.3387870e-08/ |
523 | + data (gridv(iny, 4),iny=1,32)/ |
524 | + # 5.2421053e-02, 3.9824965e-02, 3.0512558e-02, 2.3545386e-02, |
525 | + # 1.8330098e-02, 1.4377269e-02, 1.1354532e-02, 9.0302263e-03, |
526 | + # 7.2316381e-03, 5.8351965e-03, 4.7504014e-03, 3.9068753e-03, |
527 | + # 3.2509450e-03, 2.7436667e-03, 2.3536072e-03, 2.0551591e-03, |
528 | + # 1.8269264e-03, 1.6483845e-03, 1.4987780e-03, 1.3553122e-03, |
529 | + # 1.1959351e-03, 1.0052207e-03, 7.8338419e-04, 5.4881055e-04, |
530 | + # 3.3404786e-04, 1.7020660e-04, 6.9197187e-05, 2.0763953e-05, |
531 | + # 4.1724093e-06, 4.2803444e-07, 9.3531305e-09, 3.9817765e-08/ |
532 | + data (gridv(iny, 5),iny=1,32)/ |
533 | + # 8.7314473e-02, 6.5462234e-02, 4.9470387e-02, 3.7629031e-02, |
534 | + # 2.8860417e-02, 2.2292410e-02, 1.7332180e-02, 1.3567321e-02, |
535 | + # 1.0692431e-02, 8.4897045e-03, 6.8007137e-03, 5.5036549e-03, |
536 | + # 4.5068644e-03, 3.7444546e-03, 3.1638216e-03, 2.7231011e-03, |
537 | + # 2.3880260e-03, 2.1270240e-03, 1.9097372e-03, 1.7046592e-03, |
538 | + # 1.4833082e-03, 1.2275453e-03, 9.4002916e-04, 6.4560015e-04, |
539 | + # 3.8423698e-04, 1.9081605e-04, 7.5273640e-05, 2.1785061e-05, |
540 | + # 4.1829038e-06, 4.0198589e-07, 6.0711799e-09, 3.4349528e-08/ |
541 | + data (gridv(iny, 6),iny=1,32)/ |
542 | + # 1.3235511e-01, 9.8047579e-02, 7.3187600e-02, 5.4960335e-02, |
543 | + # 4.1600160e-02, 3.1701979e-02, 2.4311750e-02, 1.8768166e-02, |
544 | + # 1.4585527e-02, 1.1418854e-02, 9.0192598e-03, 7.1973844e-03, |
545 | + # 5.8123298e-03, 4.7637364e-03, 3.9726338e-03, 3.3768371e-03, |
546 | + # 2.9266403e-03, 2.5776574e-03, 2.2889023e-03, 2.0198147e-03, |
547 | + # 1.7358250e-03, 1.4167343e-03, 1.0680290e-03, 7.2056798e-04, |
548 | + # 4.2032019e-04, 2.0398263e-04, 7.8308169e-05, 2.1899198e-05, |
549 | + # 4.0241531e-06, 3.6414048e-07, 3.7675413e-09, 2.9031813e-08/ |
550 | + data (gridv(iny, 7),iny=1,32)/ |
551 | + # 1.9057983e-01, 1.3957407e-01, 1.0297250e-01, 7.6391524e-02, |
552 | + # 5.7105084e-02, 4.2965226e-02, 3.2523923e-02, 2.4779895e-02, |
553 | + # 1.9003972e-02, 1.4680964e-02, 1.1442346e-02, 9.0104755e-03, |
554 | + # 7.1810453e-03, 5.8100245e-03, 4.7852651e-03, 4.0196945e-03, |
555 | + # 3.4450331e-03, 3.0020034e-03, 2.6377816e-03, 2.3022876e-03, |
556 | + # 1.9551214e-03, 1.5745712e-03, 1.1692227e-03, 7.7537535e-04, |
557 | + # 4.4359770e-04, 2.1050710e-04, 7.8557363e-05, 2.0871834e-05, |
558 | + # 3.5743974e-06, 2.9762988e-07, 2.7844229e-09, 2.2782149e-08/ |
559 | + data (gridv(iny, 8),iny=1,32)/ |
560 | + # 2.6712405e-01, 1.9341146e-01, 1.4102973e-01, 1.0336364e-01, |
561 | + # 7.6305708e-02, 5.6682239e-02, 4.2352056e-02, 3.1846115e-02, |
562 | + # 2.4101065e-02, 1.8371384e-02, 1.4128575e-02, 1.0978416e-02, |
563 | + # 8.6341061e-03, 6.8955860e-03, 5.6086588e-03, 4.6555113e-03, |
564 | + # 3.9452818e-03, 3.4012072e-03, 2.9571084e-03, 2.5527100e-03, |
565 | + # 2.1419401e-03, 1.7020208e-03, 1.2447953e-03, 8.1123628e-04, |
566 | + # 4.5515586e-04, 2.1111600e-04, 7.6224092e-05, 1.8396998e-05, |
567 | + # 2.7018652e-06, 1.8403044e-07, 1.1449565e-09, 1.2394449e-08/ |
568 | + data firsttime/.true./ |
569 | + save |
570 | + if(firsttime)then |
571 | + firsttime=.false. |
572 | + nent(1)=nny |
573 | + nent(2)=nnz |
574 | + do iny=1,nny |
575 | + ent(iny)=(yv(iny)) |
576 | + enddo |
577 | + do inz=1,nnz |
578 | + ent(nny+inz)=(zv(inz)) |
579 | + enddo |
580 | + endif |
581 | + arg(1)=(y) |
582 | + arg(2)=(z) |
583 | + tmp=dfint(narg,arg,nent,ent,gridv) |
584 | + ewa_wp_p_1p=tmp |
585 | + return |
586 | + end |
587 | + function ewa_wp_p_1m(y,z) |
588 | + implicit none |
589 | + real*8 ewa_wp_p_1m,y,z |
590 | + integer narg,nny,nnz |
591 | + parameter (narg=2) |
592 | + parameter (nny=32) |
593 | + parameter (nnz=8) |
594 | + integer iny,inz,nent(narg) |
595 | + real*8 tmp,dfint,ymap,zmap |
596 | + real*8 arg(narg),ent(nny+nnz) |
597 | + real*8 yv(nny),zv(nnz),gridv(nny,nnz) |
598 | + logical firsttime |
599 | + external dfint,ymap,zmap |
600 | + data yv/ |
601 | + # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, |
602 | + # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, |
603 | + # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, |
604 | + # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, |
605 | + # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, |
606 | + # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, |
607 | + # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, |
608 | + # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ |
609 | + data zv/ |
610 | + # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, |
611 | + # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ |
612 | + data (gridv(iny, 1),iny=1,32)/ |
613 | + # 2.2352243e-07, 1.7777182e-07, 1.4298652e-07, 1.1622085e-07, |
614 | + # 9.5328508e-08, 7.8759840e-08, 6.5499586e-08, 5.4802442e-08, |
615 | + # 4.6136489e-08, 3.9104599e-08, 3.3386967e-08, 2.8725277e-08, |
616 | + # 2.4905274e-08, 2.1731925e-08, 1.9030359e-08, 1.6631364e-08, |
617 | + # 1.4386235e-08, 1.2169804e-08, 9.9111740e-09, 7.6254325e-09, |
618 | + # 5.4230477e-09, 3.4799784e-09, 1.9601523e-09, 9.3903981e-10, |
619 | + # 3.6862928e-10, 1.1297902e-10, 2.5188758e-11, 3.6724956e-12, |
620 | + # 2.9351639e-13, 8.1701272e-15, 7.6912480e-17, 6.8729255e-27/ |
621 | + data (gridv(iny, 2),iny=1,32)/ |
622 | + # 5.9726888e-03, 4.6455606e-03, 3.6455128e-03, 2.8853282e-03, |
623 | + # 2.3012642e-03, 1.8468005e-03, 1.4906859e-03, 1.2098779e-03, |
624 | + # 9.8764085e-04, 8.1150430e-04, 6.7166904e-04, 5.6040282e-04, |
625 | + # 4.7152850e-04, 3.9983688e-04, 3.4081959e-04, 2.9051542e-04, |
626 | + # 2.4549043e-04, 2.0307075e-04, 1.6177240e-04, 1.2167096e-04, |
627 | + # 8.4473943e-05, 5.2813192e-05, 2.8909650e-05, 1.3417511e-05, |
628 | + # 5.0832560e-06, 1.4959648e-06, 3.1801753e-07, 4.3791104e-08, |
629 | + # 3.2498348e-09, 8.1063886e-11, 6.0039546e-13, 6.3617388e-23/ |
630 | + data (gridv(iny, 3),iny=1,32)/ |
631 | + # 1.6219214e-02, 1.2379365e-02, 9.5193091e-03, 7.3739795e-03, |
632 | + # 5.7510065e-03, 4.5098861e-03, 3.5553416e-03, 2.8172455e-03, |
633 | + # 2.2446775e-03, 1.7999287e-03, 1.4539007e-03, 1.1841462e-03, |
634 | + # 9.7322588e-04, 8.0691077e-04, 6.7339686e-04, 5.6275965e-04, |
635 | + # 4.6677178e-04, 3.7925827e-04, 2.9674760e-04, 2.1907115e-04, |
636 | + # 1.4910620e-04, 9.1228668e-05, 4.8765008e-05, 2.2043195e-05, |
637 | + # 8.1072382e-06, 2.3064166e-06, 4.7120345e-07, 6.1862016e-08, |
638 | + # 4.3153587e-09, 9.8155908e-11, 5.5917625e-13, 7.2313499e-23/ |
639 | + data (gridv(iny, 4),iny=1,32)/ |
640 | + # 3.1188696e-02, 2.3420186e-02, 1.7702079e-02, 1.3467734e-02, |
641 | + # 1.0309782e-02, 7.9318460e-03, 6.1325773e-03, 4.7646388e-03, |
642 | + # 3.7215358e-03, 2.9251760e-03, 2.3161962e-03, 1.8496758e-03, |
643 | + # 1.4912341e-03, 1.2139639e-03, 9.9569551e-04, 8.1869337e-04, |
644 | + # 6.6868465e-04, 5.3525022e-04, 4.1252936e-04, 2.9977979e-04, |
645 | + # 2.0061564e-04, 1.2049765e-04, 6.3112103e-05, 2.7890159e-05, |
646 | + # 1.0000143e-05, 2.7633522e-06, 5.4561380e-07, 6.8754820e-08, |
647 | + # 4.5477918e-09, 9.5512862e-11, 4.0175364e-13, 6.6363321e-23/ |
648 | + data (gridv(iny, 5),iny=1,32)/ |
649 | + # 5.1182299e-02, 3.7889407e-02, 2.8215137e-02, 2.1136435e-02, |
650 | + # 1.5925131e-02, 1.2054633e-02, 9.1677464e-03, 7.0050385e-03, |
651 | + # 5.3803216e-03, 4.1584009e-03, 3.2378903e-03, 2.5431829e-03, |
652 | + # 2.0176932e-03, 1.6173071e-03, 1.3073170e-03, 1.0602661e-03, |
653 | + # 8.5475523e-04, 6.7549247e-04, 5.1388835e-04, 3.6836179e-04, |
654 | + # 2.4290493e-04, 1.4356363e-04, 7.3865824e-05, 3.2002011e-05, |
655 | + # 1.1221536e-05, 3.0227536e-06, 5.7924224e-07, 7.0416470e-08, |
656 | + # 4.4455239e-09, 8.7027993e-11, 2.5174163e-13, 5.7249565e-23/ |
657 | + data (gridv(iny, 6),iny=1,32)/ |
658 | + # 7.6557895e-02, 5.5955076e-02, 4.1120172e-02, 3.0385490e-02, |
659 | + # 2.2576036e-02, 1.6847439e-02, 1.2629288e-02, 9.5105660e-03, |
660 | + # 7.1985244e-03, 5.4827229e-03, 4.2072308e-03, 3.2573133e-03, |
661 | + # 2.5483598e-03, 2.0155007e-03, 1.6086767e-03, 1.2891809e-03, |
662 | + # 1.0274915e-03, 8.0291084e-04, 6.0382880e-04, 4.2759547e-04, |
663 | + # 2.7827791e-04, 1.6211285e-04, 8.2090171e-05, 3.4938634e-05, |
664 | + # 1.2008139e-05, 3.1607346e-06, 5.8901727e-07, 6.9129330e-08, |
665 | + # 4.1796650e-09, 7.6790396e-11, 1.4801921e-13, 4.8386670e-23/ |
666 | + data (gridv(iny, 7),iny=1,32)/ |
667 | + # 1.0885701e-01, 7.8595632e-02, 5.7044003e-02, 4.1606207e-02, |
668 | + # 3.0510595e-02, 2.2464186e-02, 1.6611725e-02, 1.2338586e-02, |
669 | + # 9.2105421e-03, 6.9185264e-03, 5.2361582e-03, 3.9989670e-03, |
670 | + # 3.0873318e-03, 2.4109199e-03, 1.9013023e-03, 1.5064199e-03, |
671 | + # 1.1876339e-03, 9.1812852e-04, 6.8290918e-04, 4.7797892e-04, |
672 | + # 3.0715516e-04, 1.7645732e-04, 8.7991353e-05, 3.6807315e-05, |
673 | + # 1.2399813e-05, 3.1850040e-06, 5.7189229e-07, 6.3166456e-08, |
674 | + # 3.5998373e-09, 6.0994275e-11, 1.0798487e-13, 3.7970497e-23/ |
675 | + data (gridv(iny, 8),iny=1,32)/ |
676 | + # 1.5068353e-01, 1.0749621e-01, 7.7041842e-02, 5.5476031e-02, |
677 | + # 4.0143008e-02, 2.9160969e-02, 2.1271437e-02, 1.5583408e-02, |
678 | + # 1.1472391e-02, 8.4985083e-03, 6.3433700e-03, 4.7785683e-03, |
679 | + # 3.6402566e-03, 2.8065350e-03, 2.1865589e-03, 1.7127763e-03, |
680 | + # 1.3356279e-03, 1.0214490e-03, 7.5140048e-04, 5.1978083e-04, |
681 | + # 3.2977123e-04, 1.8681197e-04, 9.1728471e-05, 3.7697570e-05, |
682 | + # 1.2430821e-05, 3.1016518e-06, 5.2367878e-07, 5.0603141e-08, |
683 | + # 2.5423963e-09, 3.4635376e-11, 4.1186342e-14, 2.0657555e-23/ |
684 | + data firsttime/.true./ |
685 | + save |
686 | + if(firsttime)then |
687 | + firsttime=.false. |
688 | + nent(1)=nny |
689 | + nent(2)=nnz |
690 | + do iny=1,nny |
691 | + ent(iny)=(yv(iny)) |
692 | + enddo |
693 | + do inz=1,nnz |
694 | + ent(nny+inz)=(zv(inz)) |
695 | + enddo |
696 | + endif |
697 | + arg(1)=(y) |
698 | + arg(2)=(z) |
699 | + tmp=dfint(narg,arg,nent,ent,gridv) |
700 | + ewa_wp_p_1m=tmp |
701 | + return |
702 | + end |
703 | + function ewa_wp_p_0(y,z) |
704 | + implicit none |
705 | + real*8 ewa_wp_p_0,y,z |
706 | + integer narg,nny,nnz |
707 | + parameter (narg=2) |
708 | + parameter (nny=32) |
709 | + parameter (nnz=8) |
710 | + integer iny,inz,nent(narg) |
711 | + real*8 tmp,dfint,ymap,zmap |
712 | + real*8 arg(narg),ent(nny+nnz) |
713 | + real*8 yv(nny),zv(nnz),gridv(nny,nnz) |
714 | + logical firsttime |
715 | + external dfint,ymap,zmap |
716 | + data yv/ |
717 | + # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, |
718 | + # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, |
719 | + # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, |
720 | + # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, |
721 | + # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, |
722 | + # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, |
723 | + # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, |
724 | + # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ |
725 | + data zv/ |
726 | + # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, |
727 | + # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ |
728 | + data (gridv(iny, 1),iny=1,32)/ |
729 | + # 3.5187008e-03, 2.8034859e-03, 2.2605790e-03, 1.8430659e-03, |
730 | + # 1.5186478e-03, 1.2616393e-03, 1.0560624e-03, 8.9012320e-04, |
731 | + # 7.5538508e-04, 6.4582892e-04, 5.5671967e-04, 4.8420795e-04, |
732 | + # 4.2519673e-04, 3.7700036e-04, 3.3717825e-04, 3.0339543e-04, |
733 | + # 2.7329402e-04, 2.4447706e-04, 2.1469168e-04, 1.8222898e-04, |
734 | + # 1.4664818e-04, 1.0943422e-04, 7.3828376e-05, 4.3723959e-05, |
735 | + # 2.1983802e-05, 9.0102753e-06, 2.8448697e-06, 6.3299117e-07, |
736 | + # 8.7487931e-08, 5.2831049e-09, 1.1568847e-10, 1.8415286e-15/ |
737 | + data (gridv(iny, 2),iny=1,32)/ |
738 | + # 5.2548138e-03, 4.0999760e-03, 3.2295174e-03, 2.5667153e-03, |
739 | + # 2.0584664e-03, 1.6625476e-03, 1.3517402e-03, 1.1060358e-03, |
740 | + # 9.1078460e-04, 7.5538896e-04, 6.3160108e-04, 5.3288902e-04, |
741 | + # 4.5415547e-04, 3.9119341e-04, 3.4038971e-04, 2.9850573e-04, |
742 | + # 2.6252377e-04, 2.2960220e-04, 1.9724634e-04, 1.6373150e-04, |
743 | + # 1.2870167e-04, 9.3622734e-05, 6.1405954e-05, 3.5240336e-05, |
744 | + # 1.7102418e-05, 6.7317976e-06, 2.0267789e-06, 4.2595999e-07, |
745 | + # 5.4725748e-08, 2.9719851e-09, 4.8981810e-11, 9.4455659e-16/ |
746 | + data (gridv(iny, 3),iny=1,32)/ |
747 | + # 7.1876070e-03, 5.5076672e-03, 4.2546965e-03, 3.3120537e-03, |
748 | + # 2.5990113e-03, 2.0524391e-03, 1.6307512e-03, 1.3034276e-03, |
749 | + # 1.0481689e-03, 8.4882548e-04, 6.9291048e-04, 5.7083971e-04, |
750 | + # 4.7522642e-04, 4.0016654e-04, 3.4076979e-04, 2.9285118e-04, |
751 | + # 2.5271536e-04, 2.1707747e-04, 1.8321030e-04, 1.4933939e-04, |
752 | + # 1.1513883e-04, 8.2005502e-05, 5.2541044e-05, 2.9373325e-05, |
753 | + # 1.3840817e-05, 5.2672006e-06, 1.5241105e-06, 3.0542392e-07, |
754 | + # 3.6915891e-08, 1.8347912e-09, 2.2114402e-11, 5.3685066e-16/ |
755 | + data (gridv(iny, 4),iny=1,32)/ |
756 | + # 9.2731430e-03, 6.9948236e-03, 5.3144732e-03, 4.0652903e-03, |
757 | + # 3.1328132e-03, 2.4282484e-03, 1.8929862e-03, 1.4841263e-03, |
758 | + # 1.1704474e-03, 9.2943341e-04, 7.4399977e-04, 6.0109301e-04, |
759 | + # 4.9092271e-04, 4.0580385e-04, 3.3953903e-04, 2.8700023e-04, |
760 | + # 2.4383801e-04, 2.0634913e-04, 1.7159359e-04, 1.3773971e-04, |
761 | + # 1.0446314e-04, 7.3071554e-05, 4.5887405e-05, 2.5084061e-05, |
762 | + # 1.1524443e-05, 4.2604502e-06, 1.1914778e-06, 2.2920043e-07, |
763 | + # 2.6286612e-08, 1.2107299e-09, 1.0080946e-11, 3.2845426e-16/ |
764 | + data (gridv(iny, 5),iny=1,32)/ |
765 | + # 1.1477138e-02, 8.5381747e-03, 6.3939961e-03, 4.8178867e-03, |
766 | + # 3.6556258e-03, 2.7887348e-03, 2.1392407e-03, 1.6500181e-03, |
767 | + # 1.2800074e-03, 9.9975891e-04, 7.8717888e-04, 6.2562654e-04, |
768 | + # 5.0280633e-04, 4.0921770e-04, 3.3736136e-04, 2.8121172e-04, |
769 | + # 2.3579394e-04, 1.9702349e-04, 1.6176823e-04, 1.2814066e-04, |
770 | + # 9.5802895e-05, 6.5966820e-05, 4.0705648e-05, 2.1818543e-05, |
771 | + # 9.8043554e-06, 3.5336308e-06, 9.5911504e-07, 1.7800578e-07, |
772 | + # 1.9496528e-08, 8.4002050e-10, 4.3204403e-12, 2.1251138e-16/ |
773 | + data (gridv(iny, 6),iny=1,32)/ |
774 | + # 1.3802612e-02, 1.0141026e-02, 7.4971127e-03, 5.5741476e-03, |
775 | + # 4.1720271e-03, 3.1386776e-03, 2.3737894e-03, 1.8049673e-03, |
776 | + # 1.3802137e-03, 1.0625971e-03, 8.2471236e-04, 6.4617450e-04, |
777 | + # 5.1210721e-04, 4.1120934e-04, 3.3467950e-04, 2.7561780e-04, |
778 | + # 2.2846603e-04, 1.8878732e-04, 1.5327653e-04, 1.1999194e-04, |
779 | + # 8.8573452e-05, 6.0136140e-05, 3.6529669e-05, 1.9238247e-05, |
780 | + # 8.4746327e-06, 2.9853000e-06, 7.8837418e-07, 1.4128313e-07, |
781 | + # 1.4820095e-08, 6.0070190e-10, 1.7185758e-12, 1.4369011e-16/ |
782 | + data (gridv(iny, 7),iny=1,32)/ |
783 | + # 1.6432308e-02, 1.1930946e-02, 8.7133575e-03, 6.3970356e-03, |
784 | + # 4.7264435e-03, 3.5091707e-03, 2.6187361e-03, 1.9645111e-03, |
785 | + # 1.4819077e-03, 1.1254264e-03, 8.6166780e-04, 6.6606423e-04, |
786 | + # 5.2091794e-04, 4.1296488e-04, 3.3203523e-04, 2.7031018e-04, |
787 | + # 2.2163224e-04, 1.8120725e-04, 1.4555330e-04, 1.1266604e-04, |
788 | + # 8.2152609e-05, 5.5024591e-05, 3.2922540e-05, 1.7044970e-05, |
789 | + # 7.3639505e-06, 2.5349841e-06, 6.4817141e-07, 1.0938699e-07, |
790 | + # 1.0789142e-08, 4.0267815e-10, 9.9738412e-13, 9.3965182e-17/ |
791 | + data (gridv(iny, 8),iny=1,32)/ |
792 | + # 1.9588443e-02, 1.4054534e-02, 1.0140342e-02, 7.3511754e-03, |
793 | + # 5.3617513e-03, 3.9285711e-03, 2.8927241e-03, 2.1409034e-03, |
794 | + # 1.5930991e-03, 1.1934393e-03, 9.0134688e-04, 6.8734040e-04, |
795 | + # 5.3043871e-04, 4.1513075e-04, 3.2970284e-04, 2.6531895e-04, |
796 | + # 2.1516289e-04, 1.7405250e-04, 1.3830950e-04, 1.0585100e-04, |
797 | + # 7.6238215e-05, 5.0368640e-05, 2.9681423e-05, 1.5103253e-05, |
798 | + # 6.3960840e-06, 2.1473293e-06, 5.2444493e-07, 7.7848289e-08, |
799 | + # 6.7448840e-09, 2.0379331e-10, 2.3209743e-13, 4.3818080e-17/ |
800 | + data firsttime/.true./ |
801 | + save |
802 | + if(firsttime)then |
803 | + firsttime=.false. |
804 | + nent(1)=nny |
805 | + nent(2)=nnz |
806 | + do iny=1,nny |
807 | + ent(iny)=(yv(iny)) |
808 | + enddo |
809 | + do inz=1,nnz |
810 | + ent(nny+inz)=(zv(inz)) |
811 | + enddo |
812 | + endif |
813 | + arg(1)=(y) |
814 | + arg(2)=(z) |
815 | + tmp=dfint(narg,arg,nent,ent,gridv) |
816 | + ewa_wp_p_0=tmp |
817 | + return |
818 | + end |
819 | + function ewa_wm_p(x,Q2,pol) |
820 | + implicit none |
821 | + real*8 ewa_wm_p |
822 | + real*8 x,Q2 |
823 | + integer pol |
824 | + real*8 tmp |
825 | + real*8 y,z |
826 | + real*8 ylow,yupp,zlow,zupp |
827 | + parameter (ylow=-16.1181,yupp=-1e-07) |
828 | + parameter (zlow=4.38683,zupp=13.8155) |
829 | + real*8 ewa_wm_p_1p |
830 | + real*8 ewa_wm_p_1m |
831 | + real*8 ewa_wm_p_0 |
832 | + y=log(x) |
833 | + z=0.5*log(Q2) |
834 | + if(pol.eq.1)then |
835 | + tmp=ewa_wm_p_1p(y,z) |
836 | + else if(pol.eq.-1)then |
837 | + tmp=ewa_wm_p_1m(y,z) |
838 | + else |
839 | + tmp=ewa_wm_p_0(y,z) |
840 | + endif |
841 | + ewa_wm_p=tmp/x*y*y |
842 | + end |
843 | + function ewa_wm_p_1p(y,z) |
844 | + implicit none |
845 | + real*8 ewa_wm_p_1p,y,z |
846 | + integer narg,nny,nnz |
847 | + parameter (narg=2) |
848 | + parameter (nny=32) |
849 | + parameter (nnz=8) |
850 | + integer iny,inz,nent(narg) |
851 | + real*8 tmp,dfint,ymap,zmap |
852 | + real*8 arg(narg),ent(nny+nnz) |
853 | + real*8 yv(nny),zv(nnz),gridv(nny,nnz) |
854 | + logical firsttime |
855 | + external dfint,ymap,zmap |
856 | + data yv/ |
857 | + # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, |
858 | + # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, |
859 | + # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, |
860 | + # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, |
861 | + # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, |
862 | + # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, |
863 | + # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, |
864 | + # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ |
865 | + data zv/ |
866 | + # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, |
867 | + # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ |
868 | + data (gridv(iny, 1),iny=1,32)/ |
869 | + # 3.5423305e-07, 2.8295336e-07, 2.2903220e-07, 1.8758200e-07, |
870 | + # 1.5559163e-07, 1.3038773e-07, 1.1025515e-07, 9.4027921e-08, |
871 | + # 8.0829168e-08, 7.0061706e-08, 6.1294211e-08, 5.4182560e-08, |
872 | + # 4.8450890e-08, 4.3888687e-08, 4.0319491e-08, 3.7580596e-08, |
873 | + # 3.5520713e-08, 3.3952301e-08, 3.2625426e-08, 3.1187707e-08, |
874 | + # 2.9181849e-08, 2.6154236e-08, 2.1900372e-08, 1.6640020e-08, |
875 | + # 1.1099066e-08, 6.2780040e-09, 2.8842540e-09, 1.0025616e-09, |
876 | + # 2.4219639e-10, 3.2430180e-11, 1.7122412e-12, 4.1237372e-12/ |
877 | + data (gridv(iny, 2),iny=1,32)/ |
878 | + # 9.6800285e-03, 7.5895745e-03, 6.0144129e-03, 4.8116391e-03, |
879 | + # 3.8906828e-03, 3.1743361e-03, 2.6106310e-03, 2.1637757e-03, |
880 | + # 1.8068388e-03, 1.5208169e-03, 1.2917371e-03, 1.1084546e-03, |
881 | + # 9.6221855e-04, 8.4652524e-04, 7.5595982e-04, 6.8586986e-04, |
882 | + # 6.3206533e-04, 5.8999236e-04, 5.5430903e-04, 5.1815672e-04, |
883 | + # 4.7362998e-04, 4.1384517e-04, 3.3686600e-04, 2.4790947e-04, |
884 | + # 1.5951917e-04, 8.6605399e-05, 3.7927081e-05, 1.2444648e-05, |
885 | + # 2.7972986e-06, 3.3735215e-07, 1.3499999e-08, 3.8170248e-08/ |
886 | + data (gridv(iny, 3),iny=1,32)/ |
887 | + # 2.6802909e-02, 2.0666858e-02, 1.6084293e-02, 1.2619023e-02, |
888 | + # 9.9957736e-03, 7.9819494e-03, 6.4206742e-03, 5.2026236e-03, |
889 | + # 4.2458765e-03, 3.4918949e-03, 2.8976082e-03, 2.4290655e-03, |
890 | + # 2.0601111e-03, 1.7714145e-03, 1.5472491e-03, 1.3744754e-03, |
891 | + # 1.2417664e-03, 1.1376810e-03, 1.0498817e-03, 9.6384193e-04, |
892 | + # 8.6434504e-04, 7.3958460e-04, 5.8805171e-04, 4.2143198e-04, |
893 | + # 2.6317925e-04, 1.3808501e-04, 5.8100243e-05, 1.8168748e-05, |
894 | + # 3.8451248e-06, 4.2503569e-07, 1.2748665e-08, 4.3387870e-08/ |
895 | + data (gridv(iny, 4),iny=1,32)/ |
896 | + # 5.2421053e-02, 3.9824965e-02, 3.0512558e-02, 2.3545386e-02, |
897 | + # 1.8330098e-02, 1.4377269e-02, 1.1354532e-02, 9.0302263e-03, |
898 | + # 7.2316381e-03, 5.8351965e-03, 4.7504014e-03, 3.9068753e-03, |
899 | + # 3.2509450e-03, 2.7436667e-03, 2.3536072e-03, 2.0551591e-03, |
900 | + # 1.8269264e-03, 1.6483845e-03, 1.4987780e-03, 1.3553122e-03, |
901 | + # 1.1959351e-03, 1.0052207e-03, 7.8338419e-04, 5.4881055e-04, |
902 | + # 3.3404786e-04, 1.7020660e-04, 6.9197187e-05, 2.0763953e-05, |
903 | + # 4.1724093e-06, 4.2803444e-07, 9.3531305e-09, 3.9817765e-08/ |
904 | + data (gridv(iny, 5),iny=1,32)/ |
905 | + # 8.7314473e-02, 6.5462234e-02, 4.9470387e-02, 3.7629031e-02, |
906 | + # 2.8860417e-02, 2.2292410e-02, 1.7332180e-02, 1.3567321e-02, |
907 | + # 1.0692431e-02, 8.4897045e-03, 6.8007137e-03, 5.5036549e-03, |
908 | + # 4.5068644e-03, 3.7444546e-03, 3.1638216e-03, 2.7231011e-03, |
909 | + # 2.3880260e-03, 2.1270240e-03, 1.9097372e-03, 1.7046592e-03, |
910 | + # 1.4833082e-03, 1.2275453e-03, 9.4002916e-04, 6.4560015e-04, |
911 | + # 3.8423698e-04, 1.9081605e-04, 7.5273640e-05, 2.1785061e-05, |
912 | + # 4.1829038e-06, 4.0198589e-07, 6.0711799e-09, 3.4349528e-08/ |
913 | + data (gridv(iny, 6),iny=1,32)/ |
914 | + # 1.3235511e-01, 9.8047579e-02, 7.3187600e-02, 5.4960335e-02, |
915 | + # 4.1600160e-02, 3.1701979e-02, 2.4311750e-02, 1.8768166e-02, |
916 | + # 1.4585527e-02, 1.1418854e-02, 9.0192598e-03, 7.1973844e-03, |
917 | + # 5.8123298e-03, 4.7637364e-03, 3.9726338e-03, 3.3768371e-03, |
918 | + # 2.9266403e-03, 2.5776574e-03, 2.2889023e-03, 2.0198147e-03, |
919 | + # 1.7358250e-03, 1.4167343e-03, 1.0680290e-03, 7.2056798e-04, |
920 | + # 4.2032019e-04, 2.0398263e-04, 7.8308169e-05, 2.1899198e-05, |
921 | + # 4.0241531e-06, 3.6414048e-07, 3.7675413e-09, 2.9031813e-08/ |
922 | + data (gridv(iny, 7),iny=1,32)/ |
923 | + # 1.9057983e-01, 1.3957407e-01, 1.0297250e-01, 7.6391524e-02, |
924 | + # 5.7105084e-02, 4.2965226e-02, 3.2523923e-02, 2.4779895e-02, |
925 | + # 1.9003972e-02, 1.4680964e-02, 1.1442346e-02, 9.0104755e-03, |
926 | + # 7.1810453e-03, 5.8100245e-03, 4.7852651e-03, 4.0196945e-03, |
927 | + # 3.4450331e-03, 3.0020034e-03, 2.6377816e-03, 2.3022876e-03, |
928 | + # 1.9551214e-03, 1.5745712e-03, 1.1692227e-03, 7.7537535e-04, |
929 | + # 4.4359770e-04, 2.1050710e-04, 7.8557363e-05, 2.0871834e-05, |
930 | + # 3.5743974e-06, 2.9762988e-07, 2.7844229e-09, 2.2782149e-08/ |
931 | + data (gridv(iny, 8),iny=1,32)/ |
932 | + # 2.6712405e-01, 1.9341146e-01, 1.4102973e-01, 1.0336364e-01, |
933 | + # 7.6305708e-02, 5.6682239e-02, 4.2352056e-02, 3.1846115e-02, |
934 | + # 2.4101065e-02, 1.8371384e-02, 1.4128575e-02, 1.0978416e-02, |
935 | + # 8.6341061e-03, 6.8955860e-03, 5.6086588e-03, 4.6555113e-03, |
936 | + # 3.9452818e-03, 3.4012072e-03, 2.9571084e-03, 2.5527100e-03, |
937 | + # 2.1419401e-03, 1.7020208e-03, 1.2447953e-03, 8.1123628e-04, |
938 | + # 4.5515586e-04, 2.1111600e-04, 7.6224092e-05, 1.8396998e-05, |
939 | + # 2.7018652e-06, 1.8403044e-07, 1.1449565e-09, 1.2394449e-08/ |
940 | + data firsttime/.true./ |
941 | + save |
942 | + if(firsttime)then |
943 | + firsttime=.false. |
944 | + nent(1)=nny |
945 | + nent(2)=nnz |
946 | + do iny=1,nny |
947 | + ent(iny)=(yv(iny)) |
948 | + enddo |
949 | + do inz=1,nnz |
950 | + ent(nny+inz)=(zv(inz)) |
951 | + enddo |
952 | + endif |
953 | + arg(1)=(y) |
954 | + arg(2)=(z) |
955 | + tmp=dfint(narg,arg,nent,ent,gridv) |
956 | + ewa_wm_p_1p=tmp |
957 | + return |
958 | + end |
959 | + function ewa_wm_p_1m(y,z) |
960 | + implicit none |
961 | + real*8 ewa_wm_p_1m,y,z |
962 | + integer narg,nny,nnz |
963 | + parameter (narg=2) |
964 | + parameter (nny=32) |
965 | + parameter (nnz=8) |
966 | + integer iny,inz,nent(narg) |
967 | + real*8 tmp,dfint,ymap,zmap |
968 | + real*8 arg(narg),ent(nny+nnz) |
969 | + real*8 yv(nny),zv(nnz),gridv(nny,nnz) |
970 | + logical firsttime |
971 | + external dfint,ymap,zmap |
972 | + data yv/ |
973 | + # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, |
974 | + # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, |
975 | + # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, |
976 | + # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, |
977 | + # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, |
978 | + # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, |
979 | + # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, |
980 | + # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ |
981 | + data zv/ |
982 | + # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, |
983 | + # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ |
984 | + data (gridv(iny, 1),iny=1,32)/ |
985 | + # 2.2352243e-07, 1.7777182e-07, 1.4298652e-07, 1.1622085e-07, |
986 | + # 9.5328508e-08, 7.8759840e-08, 6.5499586e-08, 5.4802442e-08, |
987 | + # 4.6136489e-08, 3.9104599e-08, 3.3386967e-08, 2.8725277e-08, |
988 | + # 2.4905274e-08, 2.1731925e-08, 1.9030359e-08, 1.6631364e-08, |
989 | + # 1.4386235e-08, 1.2169804e-08, 9.9111740e-09, 7.6254325e-09, |
990 | + # 5.4230477e-09, 3.4799784e-09, 1.9601523e-09, 9.3903981e-10, |
991 | + # 3.6862928e-10, 1.1297902e-10, 2.5188758e-11, 3.6724956e-12, |
992 | + # 2.9351639e-13, 8.1701272e-15, 7.6912480e-17, 6.8729255e-27/ |
993 | + data (gridv(iny, 2),iny=1,32)/ |
994 | + # 5.9726888e-03, 4.6455606e-03, 3.6455128e-03, 2.8853282e-03, |
995 | + # 2.3012642e-03, 1.8468005e-03, 1.4906859e-03, 1.2098779e-03, |
996 | + # 9.8764085e-04, 8.1150430e-04, 6.7166904e-04, 5.6040282e-04, |
997 | + # 4.7152850e-04, 3.9983688e-04, 3.4081959e-04, 2.9051542e-04, |
998 | + # 2.4549043e-04, 2.0307075e-04, 1.6177240e-04, 1.2167096e-04, |
999 | + # 8.4473943e-05, 5.2813192e-05, 2.8909650e-05, 1.3417511e-05, |
1000 | + # 5.0832560e-06, 1.4959648e-06, 3.1801753e-07, 4.3791104e-08, |
1001 | + # 3.2498348e-09, 8.1063886e-11, 6.0039546e-13, 6.3617388e-23/ |
1002 | + data (gridv(iny, 3),iny=1,32)/ |
1003 | + # 1.6219214e-02, 1.2379365e-02, 9.5193091e-03, 7.3739795e-03, |
1004 | + # 5.7510065e-03, 4.5098861e-03, 3.5553416e-03, 2.8172455e-03, |
1005 | + # 2.2446775e-03, 1.7999287e-03, 1.4539007e-03, 1.1841462e-03, |
1006 | + # 9.7322588e-04, 8.0691077e-04, 6.7339686e-04, 5.6275965e-04, |
1007 | + # 4.6677178e-04, 3.7925827e-04, 2.9674760e-04, 2.1907115e-04, |
1008 | + # 1.4910620e-04, 9.1228668e-05, 4.8765008e-05, 2.2043195e-05, |
1009 | + # 8.1072382e-06, 2.3064166e-06, 4.7120345e-07, 6.1862016e-08, |
1010 | + # 4.3153587e-09, 9.8155908e-11, 5.5917625e-13, 7.2313499e-23/ |
1011 | + data (gridv(iny, 4),iny=1,32)/ |
1012 | + # 3.1188696e-02, 2.3420186e-02, 1.7702079e-02, 1.3467734e-02, |
1013 | + # 1.0309782e-02, 7.9318460e-03, 6.1325773e-03, 4.7646388e-03, |
1014 | + # 3.7215358e-03, 2.9251760e-03, 2.3161962e-03, 1.8496758e-03, |
1015 | + # 1.4912341e-03, 1.2139639e-03, 9.9569551e-04, 8.1869337e-04, |
1016 | + # 6.6868465e-04, 5.3525022e-04, 4.1252936e-04, 2.9977979e-04, |
1017 | + # 2.0061564e-04, 1.2049765e-04, 6.3112103e-05, 2.7890159e-05, |
1018 | + # 1.0000143e-05, 2.7633522e-06, 5.4561380e-07, 6.8754820e-08, |
1019 | + # 4.5477918e-09, 9.5512862e-11, 4.0175364e-13, 6.6363321e-23/ |
1020 | + data (gridv(iny, 5),iny=1,32)/ |
1021 | + # 5.1182299e-02, 3.7889407e-02, 2.8215137e-02, 2.1136435e-02, |
1022 | + # 1.5925131e-02, 1.2054633e-02, 9.1677464e-03, 7.0050385e-03, |
1023 | + # 5.3803216e-03, 4.1584009e-03, 3.2378903e-03, 2.5431829e-03, |
1024 | + # 2.0176932e-03, 1.6173071e-03, 1.3073170e-03, 1.0602661e-03, |
1025 | + # 8.5475523e-04, 6.7549247e-04, 5.1388835e-04, 3.6836179e-04, |
1026 | + # 2.4290493e-04, 1.4356363e-04, 7.3865824e-05, 3.2002011e-05, |
1027 | + # 1.1221536e-05, 3.0227536e-06, 5.7924224e-07, 7.0416470e-08, |
1028 | + # 4.4455239e-09, 8.7027993e-11, 2.5174163e-13, 5.7249565e-23/ |
1029 | + data (gridv(iny, 6),iny=1,32)/ |
1030 | + # 7.6557895e-02, 5.5955076e-02, 4.1120172e-02, 3.0385490e-02, |
1031 | + # 2.2576036e-02, 1.6847439e-02, 1.2629288e-02, 9.5105660e-03, |
1032 | + # 7.1985244e-03, 5.4827229e-03, 4.2072308e-03, 3.2573133e-03, |
1033 | + # 2.5483598e-03, 2.0155007e-03, 1.6086767e-03, 1.2891809e-03, |
1034 | + # 1.0274915e-03, 8.0291084e-04, 6.0382880e-04, 4.2759547e-04, |
1035 | + # 2.7827791e-04, 1.6211285e-04, 8.2090171e-05, 3.4938634e-05, |
1036 | + # 1.2008139e-05, 3.1607346e-06, 5.8901727e-07, 6.9129330e-08, |
1037 | + # 4.1796650e-09, 7.6790396e-11, 1.4801921e-13, 4.8386670e-23/ |
1038 | + data (gridv(iny, 7),iny=1,32)/ |
1039 | + # 1.0885701e-01, 7.8595632e-02, 5.7044003e-02, 4.1606207e-02, |
1040 | + # 3.0510595e-02, 2.2464186e-02, 1.6611725e-02, 1.2338586e-02, |
1041 | + # 9.2105421e-03, 6.9185264e-03, 5.2361582e-03, 3.9989670e-03, |
1042 | + # 3.0873318e-03, 2.4109199e-03, 1.9013023e-03, 1.5064199e-03, |
1043 | + # 1.1876339e-03, 9.1812852e-04, 6.8290918e-04, 4.7797892e-04, |
1044 | + # 3.0715516e-04, 1.7645732e-04, 8.7991353e-05, 3.6807315e-05, |
1045 | + # 1.2399813e-05, 3.1850040e-06, 5.7189229e-07, 6.3166456e-08, |
1046 | + # 3.5998373e-09, 6.0994275e-11, 1.0798487e-13, 3.7970497e-23/ |
1047 | + data (gridv(iny, 8),iny=1,32)/ |
1048 | + # 1.5068353e-01, 1.0749621e-01, 7.7041842e-02, 5.5476031e-02, |
1049 | + # 4.0143008e-02, 2.9160969e-02, 2.1271437e-02, 1.5583408e-02, |
1050 | + # 1.1472391e-02, 8.4985083e-03, 6.3433700e-03, 4.7785683e-03, |
1051 | + # 3.6402566e-03, 2.8065350e-03, 2.1865589e-03, 1.7127763e-03, |
1052 | + # 1.3356279e-03, 1.0214490e-03, 7.5140048e-04, 5.1978083e-04, |
1053 | + # 3.2977123e-04, 1.8681197e-04, 9.1728471e-05, 3.7697570e-05, |
1054 | + # 1.2430821e-05, 3.1016518e-06, 5.2367878e-07, 5.0603141e-08, |
1055 | + # 2.5423963e-09, 3.4635376e-11, 4.1186342e-14, 2.0657555e-23/ |
1056 | + data firsttime/.true./ |
1057 | + save |
1058 | + if(firsttime)then |
1059 | + firsttime=.false. |
1060 | + nent(1)=nny |
1061 | + nent(2)=nnz |
1062 | + do iny=1,nny |
1063 | + ent(iny)=(yv(iny)) |
1064 | + enddo |
1065 | + do inz=1,nnz |
1066 | + ent(nny+inz)=(zv(inz)) |
1067 | + enddo |
1068 | + endif |
1069 | + arg(1)=(y) |
1070 | + arg(2)=(z) |
1071 | + tmp=dfint(narg,arg,nent,ent,gridv) |
1072 | + ewa_wm_p_1m=tmp |
1073 | + return |
1074 | + end |
1075 | + function ewa_wm_p_0(y,z) |
1076 | + implicit none |
1077 | + real*8 ewa_wm_p_0,y,z |
1078 | + integer narg,nny,nnz |
1079 | + parameter (narg=2) |
1080 | + parameter (nny=32) |
1081 | + parameter (nnz=8) |
1082 | + integer iny,inz,nent(narg) |
1083 | + real*8 tmp,dfint,ymap,zmap |
1084 | + real*8 arg(narg),ent(nny+nnz) |
1085 | + real*8 yv(nny),zv(nnz),gridv(nny,nnz) |
1086 | + logical firsttime |
1087 | + external dfint,ymap,zmap |
1088 | + data yv/ |
1089 | + # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, |
1090 | + # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, |
1091 | + # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, |
1092 | + # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, |
1093 | + # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, |
1094 | + # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, |
1095 | + # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, |
1096 | + # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ |
1097 | + data zv/ |
1098 | + # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, |
1099 | + # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ |
1100 | + data (gridv(iny, 1),iny=1,32)/ |
1101 | + # 3.5187008e-03, 2.8034859e-03, 2.2605790e-03, 1.8430659e-03, |
1102 | + # 1.5186478e-03, 1.2616393e-03, 1.0560624e-03, 8.9012320e-04, |
1103 | + # 7.5538508e-04, 6.4582892e-04, 5.5671967e-04, 4.8420795e-04, |
1104 | + # 4.2519673e-04, 3.7700036e-04, 3.3717825e-04, 3.0339543e-04, |
1105 | + # 2.7329402e-04, 2.4447706e-04, 2.1469168e-04, 1.8222898e-04, |
1106 | + # 1.4664818e-04, 1.0943422e-04, 7.3828376e-05, 4.3723959e-05, |
1107 | + # 2.1983802e-05, 9.0102753e-06, 2.8448697e-06, 6.3299117e-07, |
1108 | + # 8.7487931e-08, 5.2831049e-09, 1.1568847e-10, 1.8415286e-15/ |
1109 | + data (gridv(iny, 2),iny=1,32)/ |
1110 | + # 5.2548138e-03, 4.0999760e-03, 3.2295174e-03, 2.5667153e-03, |
1111 | + # 2.0584664e-03, 1.6625476e-03, 1.3517402e-03, 1.1060358e-03, |
1112 | + # 9.1078460e-04, 7.5538896e-04, 6.3160108e-04, 5.3288902e-04, |
1113 | + # 4.5415547e-04, 3.9119341e-04, 3.4038971e-04, 2.9850573e-04, |
1114 | + # 2.6252377e-04, 2.2960220e-04, 1.9724634e-04, 1.6373150e-04, |
1115 | + # 1.2870167e-04, 9.3622734e-05, 6.1405954e-05, 3.5240336e-05, |
1116 | + # 1.7102418e-05, 6.7317976e-06, 2.0267789e-06, 4.2595999e-07, |
1117 | + # 5.4725748e-08, 2.9719851e-09, 4.8981810e-11, 9.4455659e-16/ |
1118 | + data (gridv(iny, 3),iny=1,32)/ |
1119 | + # 7.1876070e-03, 5.5076672e-03, 4.2546965e-03, 3.3120537e-03, |
1120 | + # 2.5990113e-03, 2.0524391e-03, 1.6307512e-03, 1.3034276e-03, |
1121 | + # 1.0481689e-03, 8.4882548e-04, 6.9291048e-04, 5.7083971e-04, |
1122 | + # 4.7522642e-04, 4.0016654e-04, 3.4076979e-04, 2.9285118e-04, |
1123 | + # 2.5271536e-04, 2.1707747e-04, 1.8321030e-04, 1.4933939e-04, |
1124 | + # 1.1513883e-04, 8.2005502e-05, 5.2541044e-05, 2.9373325e-05, |
1125 | + # 1.3840817e-05, 5.2672006e-06, 1.5241105e-06, 3.0542392e-07, |
1126 | + # 3.6915891e-08, 1.8347912e-09, 2.2114402e-11, 5.3685066e-16/ |
1127 | + data (gridv(iny, 4),iny=1,32)/ |
1128 | + # 9.2731430e-03, 6.9948236e-03, 5.3144732e-03, 4.0652903e-03, |
1129 | + # 3.1328132e-03, 2.4282484e-03, 1.8929862e-03, 1.4841263e-03, |
1130 | + # 1.1704474e-03, 9.2943341e-04, 7.4399977e-04, 6.0109301e-04, |
1131 | + # 4.9092271e-04, 4.0580385e-04, 3.3953903e-04, 2.8700023e-04, |
1132 | + # 2.4383801e-04, 2.0634913e-04, 1.7159359e-04, 1.3773971e-04, |
1133 | + # 1.0446314e-04, 7.3071554e-05, 4.5887405e-05, 2.5084061e-05, |
1134 | + # 1.1524443e-05, 4.2604502e-06, 1.1914778e-06, 2.2920043e-07, |
1135 | + # 2.6286612e-08, 1.2107299e-09, 1.0080946e-11, 3.2845426e-16/ |
1136 | + data (gridv(iny, 5),iny=1,32)/ |
1137 | + # 1.1477138e-02, 8.5381747e-03, 6.3939961e-03, 4.8178867e-03, |
1138 | + # 3.6556258e-03, 2.7887348e-03, 2.1392407e-03, 1.6500181e-03, |
1139 | + # 1.2800074e-03, 9.9975891e-04, 7.8717888e-04, 6.2562654e-04, |
1140 | + # 5.0280633e-04, 4.0921770e-04, 3.3736136e-04, 2.8121172e-04, |
1141 | + # 2.3579394e-04, 1.9702349e-04, 1.6176823e-04, 1.2814066e-04, |
1142 | + # 9.5802895e-05, 6.5966820e-05, 4.0705648e-05, 2.1818543e-05, |
1143 | + # 9.8043554e-06, 3.5336308e-06, 9.5911504e-07, 1.7800578e-07, |
1144 | + # 1.9496528e-08, 8.4002050e-10, 4.3204403e-12, 2.1251138e-16/ |
1145 | + data (gridv(iny, 6),iny=1,32)/ |
1146 | + # 1.3802612e-02, 1.0141026e-02, 7.4971127e-03, 5.5741476e-03, |
1147 | + # 4.1720271e-03, 3.1386776e-03, 2.3737894e-03, 1.8049673e-03, |
1148 | + # 1.3802137e-03, 1.0625971e-03, 8.2471236e-04, 6.4617450e-04, |
1149 | + # 5.1210721e-04, 4.1120934e-04, 3.3467950e-04, 2.7561780e-04, |
1150 | + # 2.2846603e-04, 1.8878732e-04, 1.5327653e-04, 1.1999194e-04, |
1151 | + # 8.8573452e-05, 6.0136140e-05, 3.6529669e-05, 1.9238247e-05, |
1152 | + # 8.4746327e-06, 2.9853000e-06, 7.8837418e-07, 1.4128313e-07, |
1153 | + # 1.4820095e-08, 6.0070190e-10, 1.7185758e-12, 1.4369011e-16/ |
1154 | + data (gridv(iny, 7),iny=1,32)/ |
1155 | + # 1.6432308e-02, 1.1930946e-02, 8.7133575e-03, 6.3970356e-03, |
1156 | + # 4.7264435e-03, 3.5091707e-03, 2.6187361e-03, 1.9645111e-03, |
1157 | + # 1.4819077e-03, 1.1254264e-03, 8.6166780e-04, 6.6606423e-04, |
1158 | + # 5.2091794e-04, 4.1296488e-04, 3.3203523e-04, 2.7031018e-04, |
1159 | + # 2.2163224e-04, 1.8120725e-04, 1.4555330e-04, 1.1266604e-04, |
1160 | + # 8.2152609e-05, 5.5024591e-05, 3.2922540e-05, 1.7044970e-05, |
1161 | + # 7.3639505e-06, 2.5349841e-06, 6.4817141e-07, 1.0938699e-07, |
1162 | + # 1.0789142e-08, 4.0267815e-10, 9.9738412e-13, 9.3965182e-17/ |
1163 | + data (gridv(iny, 8),iny=1,32)/ |
1164 | + # 1.9588443e-02, 1.4054534e-02, 1.0140342e-02, 7.3511754e-03, |
1165 | + # 5.3617513e-03, 3.9285711e-03, 2.8927241e-03, 2.1409034e-03, |
1166 | + # 1.5930991e-03, 1.1934393e-03, 9.0134688e-04, 6.8734040e-04, |
1167 | + # 5.3043871e-04, 4.1513075e-04, 3.2970284e-04, 2.6531895e-04, |
1168 | + # 2.1516289e-04, 1.7405250e-04, 1.3830950e-04, 1.0585100e-04, |
1169 | + # 7.6238215e-05, 5.0368640e-05, 2.9681423e-05, 1.5103253e-05, |
1170 | + # 6.3960840e-06, 2.1473293e-06, 5.2444493e-07, 7.7848289e-08, |
1171 | + # 6.7448840e-09, 2.0379331e-10, 2.3209743e-13, 4.3818080e-17/ |
1172 | + data firsttime/.true./ |
1173 | + save |
1174 | + if(firsttime)then |
1175 | + firsttime=.false. |
1176 | + nent(1)=nny |
1177 | + nent(2)=nnz |
1178 | + do iny=1,nny |
1179 | + ent(iny)=(yv(iny)) |
1180 | + enddo |
1181 | + do inz=1,nnz |
1182 | + ent(nny+inz)=(zv(inz)) |
1183 | + enddo |
1184 | + endif |
1185 | + arg(1)=(y) |
1186 | + arg(2)=(z) |
1187 | + tmp=dfint(narg,arg,nent,ent,gridv) |
1188 | + ewa_wm_p_0=tmp |
1189 | + return |
1190 | + end |
1191 | + function ewa_z_p(x,Q2,pol) |
1192 | + implicit none |
1193 | + real*8 ewa_z_p |
1194 | + real*8 x,Q2 |
1195 | + integer pol |
1196 | + real*8 tmp |
1197 | + real*8 y,z |
1198 | + real*8 ylow,yupp,zlow,zupp |
1199 | + parameter (ylow=-16.1181,yupp=-1e-07) |
1200 | + parameter (zlow=4.38683,zupp=13.8155) |
1201 | + real*8 ewa_z_p_1p |
1202 | + real*8 ewa_z_p_1m |
1203 | + real*8 ewa_z_p_0 |
1204 | + y=log(x) |
1205 | + z=0.5*log(Q2) |
1206 | + if(pol.eq.1)then |
1207 | + tmp=ewa_z_p_1p(y,z) |
1208 | + else if(pol.eq.-1)then |
1209 | + tmp=ewa_z_p_1m(y,z) |
1210 | + else |
1211 | + tmp=ewa_z_p_0(y,z) |
1212 | + endif |
1213 | + ewa_z_p=tmp/x*y*y |
1214 | + end |
1215 | + function ewa_z_p_1p(y,z) |
1216 | + implicit none |
1217 | + real*8 ewa_z_p_1p,y,z |
1218 | + integer narg,nny,nnz |
1219 | + parameter (narg=2) |
1220 | + parameter (nny=32) |
1221 | + parameter (nnz=8) |
1222 | + integer iny,inz,nent(narg) |
1223 | + real*8 tmp,dfint,ymap,zmap |
1224 | + real*8 arg(narg),ent(nny+nnz) |
1225 | + real*8 yv(nny),zv(nnz),gridv(nny,nnz) |
1226 | + logical firsttime |
1227 | + external dfint,ymap,zmap |
1228 | + data yv/ |
1229 | + # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, |
1230 | + # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, |
1231 | + # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, |
1232 | + # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, |
1233 | + # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, |
1234 | + # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, |
1235 | + # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, |
1236 | + # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ |
1237 | + data zv/ |
1238 | + # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, |
1239 | + # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ |
1240 | + data (gridv(iny, 1),iny=1,32)/ |
1241 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1242 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1243 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1244 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1245 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1246 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1247 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1248 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00/ |
1249 | + data (gridv(iny, 2),iny=1,32)/ |
1250 | + # 3.7303045e-03, 2.9227921e-03, 2.3141955e-03, 1.8493581e-03, |
1251 | + # 1.4933843e-03, 1.2162782e-03, 9.9810630e-04, 8.2501787e-04, |
1252 | + # 6.8659282e-04, 5.7544120e-04, 4.8609674e-04, 4.1418784e-04, |
1253 | + # 3.5626496e-04, 3.0973606e-04, 2.7244727e-04, 2.4257706e-04, |
1254 | + # 2.1854792e-04, 1.9876081e-04, 1.8151373e-04, 1.6480475e-04, |
1255 | + # 1.4652391e-04, 1.2495404e-04, 9.9767621e-05, 7.2413235e-05, |
1256 | + # 4.6189116e-05, 2.4986033e-05, 1.0981613e-05, 3.6318686e-06, |
1257 | + # 8.2837802e-07, 1.0232602e-07, 4.9850666e-09, 1.2419766e-08/ |
1258 | + data (gridv(iny, 3),iny=1,32)/ |
1259 | + # 1.0860874e-02, 8.3686491e-03, 6.5072730e-03, 5.1000356e-03, |
1260 | + # 4.0344753e-03, 3.2163074e-03, 2.5819036e-03, 2.0867745e-03, |
1261 | + # 1.6975997e-03, 1.3904974e-03, 1.1478197e-03, 9.5566048e-04, |
1262 | + # 8.0324203e-04, 6.8259459e-04, 5.8722232e-04, 5.1178459e-04, |
1263 | + # 4.5182361e-04, 4.0308935e-04, 3.6137523e-04, 3.2211460e-04, |
1264 | + # 2.8093250e-04, 2.3463440e-04, 1.8303741e-04, 1.2940501e-04, |
1265 | + # 8.0128195e-05, 4.1902153e-05, 1.7698447e-05, 5.5786779e-06, |
1266 | + # 1.1982518e-06, 1.3567906e-07, 5.1862975e-09, 1.4921624e-08/ |
1267 | + data (gridv(iny, 4),iny=1,32)/ |
1268 | + # 2.1582709e-02, 1.6384815e-02, 1.2542453e-02, 9.6686760e-03, |
1269 | + # 7.5174482e-03, 5.8869725e-03, 4.6402349e-03, 3.6814614e-03, |
1270 | + # 2.9392736e-03, 2.3625196e-03, 1.9136197e-03, 1.5633551e-03, |
1271 | + # 1.2894368e-03, 1.0755569e-03, 9.0867962e-04, 7.7828223e-04, |
1272 | + # 6.7581905e-04, 5.9350250e-04, 5.2402918e-04, 4.5996420e-04, |
1273 | + # 3.9470912e-04, 3.2387169e-04, 2.4768512e-04, 1.7121604e-04, |
1274 | + # 1.0335642e-04, 5.2501923e-05, 2.1430744e-05, 6.4822592e-06, |
1275 | + # 1.3222258e-06, 1.3895999e-07, 4.1233808e-09, 1.3983723e-08/ |
1276 | + data (gridv(iny, 5),iny=1,32)/ |
1277 | + # 3.6225205e-02, 2.7139223e-02, 2.0491247e-02, 1.5570792e-02, |
1278 | + # 1.1927494e-02, 9.1990020e-03, 7.1389947e-03, 5.5752406e-03, |
1279 | + # 4.3810786e-03, 3.4655687e-03, 2.7625306e-03, 2.2211128e-03, |
1280 | + # 1.8030325e-03, 1.4806433e-03, 1.2320561e-03, 1.0399620e-03, |
1281 | + # 8.9058578e-04, 7.7179147e-04, 6.7267988e-04, 5.8270496e-04, |
1282 | + # 4.9308080e-04, 3.9840200e-04, 2.9945131e-04, 2.0297089e-04, |
1283 | + # 1.1982930e-04, 5.9340172e-05, 2.3506889e-05, 6.8579981e-06, |
1284 | + # 1.3368364e-06, 1.3162902e-07, 2.9711215e-09, 1.2215759e-08/ |
1285 | + data (gridv(iny, 6),iny=1,32)/ |
1286 | + # 5.5154342e-02, 4.0827860e-02, 3.0449006e-02, 2.2843096e-02, |
1287 | + # 1.7269263e-02, 1.3140804e-02, 1.0059401e-02, 7.7483419e-03, |
1288 | + # 6.0046554e-03, 4.6839966e-03, 3.6820525e-03, 2.9195345e-03, |
1289 | + # 2.3374414e-03, 1.8936267e-03, 1.5550949e-03, 1.2961420e-03, |
1290 | + # 1.0966733e-03, 9.3947224e-04, 8.0960033e-04, 6.9320130e-04, |
1291 | + # 5.7933366e-04, 4.6170562e-04, 3.4169800e-04, 2.2756193e-04, |
1292 | + # 1.3169713e-04, 6.3745564e-05, 2.4577867e-05, 6.9293186e-06, |
1293 | + # 1.2930488e-06, 1.1992460e-07, 2.0948206e-09, 1.0413998e-08/ |
1294 | + data (gridv(iny, 7),iny=1,32)/ |
1295 | + # 7.9641332e-02, 5.8283390e-02, 4.2961224e-02, 3.1840880e-02, |
1296 | + # 2.3773251e-02, 1.7861019e-02, 1.3496990e-02, 1.0261222e-02, |
1297 | + # 7.8482212e-03, 6.0415388e-03, 4.6867971e-03, 3.6676358e-03, |
1298 | + # 2.8981380e-03, 2.3178462e-03, 1.8798546e-03, 1.5481330e-03, |
1299 | + # 1.2949777e-03, 1.0972312e-03, 9.3539626e-04, 7.9205439e-04, |
1300 | + # 6.5410473e-04, 5.1445082e-04, 3.7509234e-04, 2.4557633e-04, |
1301 | + # 1.3941666e-04, 6.6000870e-05, 2.4739779e-05, 6.6282306e-06, |
1302 | + # 1.1538853e-06, 9.8657074e-08, 1.5984130e-09, 8.2433190e-09/ |
1303 | + data (gridv(iny, 8),iny=1,32)/ |
1304 | + # 1.1184163e-01, 8.0917333e-02, 5.8950236e-02, 4.3164542e-02, |
1305 | + # 3.1828151e-02, 2.3609789e-02, 1.7611453e-02, 1.3215123e-02, |
1306 | + # 9.9748771e-03, 7.5776696e-03, 5.8010863e-03, 4.4800093e-03, |
1307 | + # 3.4937519e-03, 2.7582893e-03, 2.2091448e-03, 1.7974773e-03, |
1308 | + # 1.4863368e-03, 1.2455380e-03, 1.0503765e-03, 8.7953603e-04, |
1309 | + # 7.1769738e-04, 5.5700142e-04, 4.0005545e-04, 2.5742663e-04, |
1310 | + # 1.4335613e-04, 6.6352481e-05, 2.4061846e-05, 5.8581041e-06, |
1311 | + # 8.7686172e-07, 6.1694293e-08, 7.6078967e-10, 4.5762876e-09/ |
1312 | + data firsttime/.true./ |
1313 | + save |
1314 | + if(firsttime)then |
1315 | + firsttime=.false. |
1316 | + nent(1)=nny |
1317 | + nent(2)=nnz |
1318 | + do iny=1,nny |
1319 | + ent(iny)=(yv(iny)) |
1320 | + enddo |
1321 | + do inz=1,nnz |
1322 | + ent(nny+inz)=(zv(inz)) |
1323 | + enddo |
1324 | + endif |
1325 | + arg(1)=(y) |
1326 | + arg(2)=(z) |
1327 | + tmp=dfint(narg,arg,nent,ent,gridv) |
1328 | + ewa_z_p_1p=tmp |
1329 | + return |
1330 | + end |
1331 | + function ewa_z_p_1m(y,z) |
1332 | + implicit none |
1333 | + real*8 ewa_z_p_1m,y,z |
1334 | + integer narg,nny,nnz |
1335 | + parameter (narg=2) |
1336 | + parameter (nny=32) |
1337 | + parameter (nnz=8) |
1338 | + integer iny,inz,nent(narg) |
1339 | + real*8 tmp,dfint,ymap,zmap |
1340 | + real*8 arg(narg),ent(nny+nnz) |
1341 | + real*8 yv(nny),zv(nnz),gridv(nny,nnz) |
1342 | + logical firsttime |
1343 | + external dfint,ymap,zmap |
1344 | + data yv/ |
1345 | + # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, |
1346 | + # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, |
1347 | + # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, |
1348 | + # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, |
1349 | + # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, |
1350 | + # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, |
1351 | + # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, |
1352 | + # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ |
1353 | + data zv/ |
1354 | + # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, |
1355 | + # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ |
1356 | + data (gridv(iny, 1),iny=1,32)/ |
1357 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1358 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1359 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1360 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1361 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1362 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1363 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1364 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00/ |
1365 | + data (gridv(iny, 2),iny=1,32)/ |
1366 | + # 2.4722465e-03, 1.9238378e-03, 1.5105106e-03, 1.1960749e-03, |
1367 | + # 9.5450636e-04, 7.6644980e-04, 6.1891326e-04, 5.0238454e-04, |
1368 | + # 4.0993066e-04, 3.3642652e-04, 2.7788916e-04, 2.3119738e-04, |
1369 | + # 1.9389505e-04, 1.6397539e-04, 1.3974473e-04, 1.1973970e-04, |
1370 | + # 1.0268876e-04, 8.7531986e-05, 7.3507411e-05, 6.0200203e-05, |
1371 | + # 4.7561978e-05, 3.5825675e-05, 2.5363959e-05, 1.6554077e-05, |
1372 | + # 9.6919422e-06, 4.9066425e-06, 2.0356874e-06, 6.4136541e-07, |
1373 | + # 1.3870147e-07, 1.5934953e-08, 3.8134239e-10, 1.5583767e-09/ |
1374 | + data (gridv(iny, 3),iny=1,32)/ |
1375 | + # 7.0798337e-03, 5.4081649e-03, 4.1625029e-03, 3.2271346e-03, |
1376 | + # 2.5192925e-03, 1.9775657e-03, 1.5603254e-03, 1.2371174e-03, |
1377 | + # 9.8575176e-04, 7.8989545e-04, 6.3703740e-04, 5.1756292e-04, |
1378 | + # 4.2407586e-04, 3.5069124e-04, 2.9260099e-04, 2.4581210e-04, |
1379 | + # 2.0699146e-04, 1.7346123e-04, 1.4331114e-04, 1.1548538e-04, |
1380 | + # 8.9728440e-05, 6.6379120e-05, 4.6055769e-05, 2.9366897e-05, |
1381 | + # 1.6731521e-05, 8.2008648e-06, 3.2726090e-06, 9.8342622e-07, |
1382 | + # 2.0024596e-07, 2.1085367e-08, 3.1115922e-10, 1.8414779e-09/ |
1383 | + data (gridv(iny, 4),iny=1,32)/ |
1384 | + # 1.3868555e-02, 1.0425215e-02, 7.8892735e-03, 6.0089146e-03, |
1385 | + # 4.6057219e-03, 3.5480566e-03, 2.7464613e-03, 2.1359653e-03, |
1386 | + # 1.6689984e-03, 1.3114613e-03, 1.0371878e-03, 8.2648300e-04, |
1387 | + # 6.6446546e-04, 5.3953412e-04, 4.4244464e-04, 3.6574043e-04, |
1388 | + # 3.0339116e-04, 2.5068534e-04, 2.0431482e-04, 1.6241791e-04, |
1389 | + # 1.2441356e-04, 9.0628951e-05, 6.1799132e-05, 3.8623433e-05, |
1390 | + # 2.1495349e-05, 1.0246602e-05, 3.9545153e-06, 1.1410065e-06, |
1391 | + # 2.2060684e-07, 2.1556121e-08, 1.5852146e-10, 1.6987942e-09/ |
1392 | + data (gridv(iny, 5),iny=1,32)/ |
1393 | + # 2.2986936e-02, 1.7037927e-02, 1.2705430e-02, 9.5306823e-03, |
1394 | + # 7.1915567e-03, 5.4521722e-03, 4.1524897e-03, 3.1768102e-03, |
1395 | + # 2.4418608e-03, 1.8873270e-03, 1.4682359e-03, 1.1510039e-03, |
1396 | + # 9.1077042e-04, 7.2826552e-04, 5.8860114e-04, 4.7999193e-04, |
1397 | + # 3.9314928e-04, 3.2098035e-04, 2.5857717e-04, 2.0315066e-04, |
1398 | + # 1.5370454e-04, 1.1046511e-04, 7.4187115e-05, 4.5556559e-05, |
1399 | + # 2.4836768e-05, 1.1553471e-05, 4.3299295e-06, 1.2055759e-06, |
1400 | + # 2.2273199e-07, 2.0385221e-08, 2.5365287e-11, 1.4614457e-09/ |
1401 | + data (gridv(iny, 6),iny=1,32)/ |
1402 | + # 3.4607710e-02, 2.5329231e-02, 1.8643112e-02, 1.3797244e-02, |
1403 | + # 1.0268406e-02, 7.6763540e-03, 5.7640388e-03, 4.3470540e-03, |
1404 | + # 3.2936565e-03, 2.5093254e-03, 1.9243527e-03, 1.4874209e-03, |
1405 | + # 1.1607380e-03, 9.1588915e-04, 7.3097517e-04, 5.8910398e-04, |
1406 | + # 4.7722044e-04, 3.8555267e-04, 3.0742488e-04, 2.3902283e-04, |
1407 | + # 1.7886336e-04, 1.2700213e-04, 8.4135064e-05, 5.0853622e-05, |
1408 | + # 2.7216172e-05, 1.2384960e-05, 4.5198910e-06, 1.2164900e-06, |
1409 | + # 2.1505007e-07, 1.8520572e-08, -5.3697542e-11, 1.2296759e-09/ |
1410 | + data (gridv(iny, 7),iny=1,32)/ |
1411 | + # 4.9445135e-02, 3.5757010e-02, 2.5994493e-02, 1.8993674e-02, |
1412 | + # 1.3952679e-02, 1.0293089e-02, 7.6258392e-03, 5.6738387e-03, |
1413 | + # 4.2408262e-03, 3.1872474e-03, 2.4113098e-03, 1.8389250e-03, |
1414 | + # 1.4163575e-03, 1.1035738e-03, 8.7029523e-04, 6.9356210e-04, |
1415 | + # 5.5597102e-04, 4.4470895e-04, 3.5113742e-04, 2.7029621e-04, |
1416 | + # 2.0013417e-04, 1.4045648e-04, 9.1828197e-05, 5.4657353e-05, |
1417 | + # 2.8729898e-05, 1.2794546e-05, 4.5409281e-06, 1.1613608e-06, |
1418 | + # 1.9109911e-07, 1.5092145e-08, -5.2811872e-11, 9.5507973e-10/ |
1419 | + data (gridv(iny, 8),iny=1,32)/ |
1420 | + # 6.8709761e-02, 4.9096606e-02, 3.5253307e-02, 2.5432125e-02, |
1421 | + # 1.8440272e-02, 1.3424173e-02, 9.8127739e-03, 7.2026791e-03, |
1422 | + # 5.3106334e-03, 3.9371633e-03, 2.9384004e-03, 2.2109274e-03, |
1423 | + # 1.6805250e-03, 1.2928794e-03, 1.0073789e-03, 7.9380317e-04, |
1424 | + # 6.2964750e-04, 4.9861161e-04, 3.8984865e-04, 2.9710009e-04, |
1425 | + # 2.1764892e-04, 1.5095775e-04, 9.7391148e-05, 5.7072702e-05, |
1426 | + # 2.9454329e-05, 1.2827026e-05, 4.4049387e-06, 1.0235568e-06, |
1427 | + # 1.4395353e-07, 9.1928386e-09, -5.1047909e-11, 4.9741292e-10/ |
1428 | + data firsttime/.true./ |
1429 | + save |
1430 | + if(firsttime)then |
1431 | + firsttime=.false. |
1432 | + nent(1)=nny |
1433 | + nent(2)=nnz |
1434 | + do iny=1,nny |
1435 | + ent(iny)=(yv(iny)) |
1436 | + enddo |
1437 | + do inz=1,nnz |
1438 | + ent(nny+inz)=(zv(inz)) |
1439 | + enddo |
1440 | + endif |
1441 | + arg(1)=(y) |
1442 | + arg(2)=(z) |
1443 | + tmp=dfint(narg,arg,nent,ent,gridv) |
1444 | + ewa_z_p_1m=tmp |
1445 | + return |
1446 | + end |
1447 | + function ewa_z_p_0(y,z) |
1448 | + implicit none |
1449 | + real*8 ewa_z_p_0,y,z |
1450 | + integer narg,nny,nnz |
1451 | + parameter (narg=2) |
1452 | + parameter (nny=32) |
1453 | + parameter (nnz=8) |
1454 | + integer iny,inz,nent(narg) |
1455 | + real*8 tmp,dfint,ymap,zmap |
1456 | + real*8 arg(narg),ent(nny+nnz) |
1457 | + real*8 yv(nny),zv(nnz),gridv(nny,nnz) |
1458 | + logical firsttime |
1459 | + external dfint,ymap,zmap |
1460 | + data yv/ |
1461 | + # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, |
1462 | + # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, |
1463 | + # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, |
1464 | + # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, |
1465 | + # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, |
1466 | + # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, |
1467 | + # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, |
1468 | + # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ |
1469 | + data zv/ |
1470 | + # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, |
1471 | + # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ |
1472 | + data (gridv(iny, 1),iny=1,32)/ |
1473 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1474 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1475 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1476 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1477 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1478 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1479 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, |
1480 | + # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00/ |
1481 | + data (gridv(iny, 2),iny=1,32)/ |
1482 | + # 2.2972746e-03, 1.7917254e-03, 1.4105851e-03, 1.1202991e-03, |
1483 | + # 8.9758753e-04, 7.2401692e-04, 5.8765422e-04, 4.7973220e-04, |
1484 | + # 3.9382732e-04, 3.2529169e-04, 2.7051159e-04, 2.2663375e-04, |
1485 | + # 1.9144281e-04, 1.6313368e-04, 1.4017673e-04, 1.2123763e-04, |
1486 | + # 1.0509369e-04, 9.0611789e-05, 7.6817182e-05, 6.3022584e-05, |
1487 | + # 4.9058611e-05, 3.5418441e-05, 2.3106352e-05, 1.3215971e-05, |
1488 | + # 6.4045348e-06, 2.5232862e-06, 7.6274114e-07, 1.6120969e-07, |
1489 | + # 2.0920899e-08, 1.1554945e-09, 2.1846051e-11, 3.8164747e-16/ |
1490 | + data (gridv(iny, 3),iny=1,32)/ |
1491 | + # 3.1443709e-03, 2.4086938e-03, 1.8599149e-03, 1.4469692e-03, |
1492 | + # 1.1345306e-03, 8.9494004e-04, 7.0998827e-04, 5.6630210e-04, |
1493 | + # 4.5410728e-04, 3.6631536e-04, 2.9748449e-04, 2.4339831e-04, |
1494 | + # 2.0085187e-04, 1.6729924e-04, 1.4065172e-04, 1.1916159e-04, |
1495 | + # 1.0130455e-04, 8.5745522e-05, 7.1384433e-05, 5.7493734e-05, |
1496 | + # 4.3890462e-05, 3.1023010e-05, 1.9770186e-05, 1.1015777e-05, |
1497 | + # 5.1834875e-06, 1.9746473e-06, 5.7369065e-07, 1.1562072e-07, |
1498 | + # 1.4116885e-08, 7.1378361e-10, 1.0286193e-11, 2.1760568e-16/ |
1499 | + data (gridv(iny, 4),iny=1,32)/ |
1500 | + # 4.0583782e-03, 3.0604630e-03, 2.3243967e-03, 1.7771165e-03, |
1501 | + # 1.3685115e-03, 1.0596807e-03, 8.2496027e-04, 6.4554632e-04, |
1502 | + # 5.0775614e-04, 4.0172285e-04, 3.1996314e-04, 2.5677121e-04, |
1503 | + # 2.0788121e-04, 1.6996988e-04, 1.4037525e-04, 1.1693715e-04, |
1504 | + # 9.7839570e-05, 8.1555616e-05, 6.6877295e-05, 5.3032557e-05, |
1505 | + # 3.9820348e-05, 2.7642036e-05, 1.7265954e-05, 9.4071798e-06, |
1506 | + # 4.3162443e-06, 1.5974573e-06, 4.4856401e-07, 8.6784619e-08, |
1507 | + # 1.0054849e-08, 4.7125287e-10, 5.0055779e-12, 1.3353325e-16/ |
1508 | + data (gridv(iny, 5),iny=1,32)/ |
1509 | + # 5.0242808e-03, 3.7368538e-03, 2.7975112e-03, 2.1069870e-03, |
1510 | + # 1.5976618e-03, 1.2178011e-03, 9.3297051e-04, 7.1829351e-04, |
1511 | + # 5.5582318e-04, 4.3260555e-04, 3.3896481e-04, 2.6762365e-04, |
1512 | + # 2.1321911e-04, 1.7163549e-04, 1.3964927e-04, 1.1469329e-04, |
1513 | + # 9.4678118e-05, 7.7901482e-05, 6.3058870e-05, 4.9337909e-05, |
1514 | + # 3.6517503e-05, 2.4952978e-05, 1.5315618e-05, 8.1824913e-06, |
1515 | + # 3.6722130e-06, 1.3251079e-06, 3.6114078e-07, 6.7413213e-08, |
1516 | + # 7.4593247e-09, 3.2711613e-10, 2.4150815e-12, 8.6646158e-17/ |
1517 | + data (gridv(iny, 6),iny=1,32)/ |
1518 | + # 6.0434242e-03, 4.4393078e-03, 3.2809706e-03, 2.4384204e-03, |
1519 | + # 1.8240018e-03, 1.3711741e-03, 1.0357484e-03, 7.8624158e-04, |
1520 | + # 5.9978597e-04, 4.6020082e-04, 3.5548403e-04, 2.7671910e-04, |
1521 | + # 2.1741591e-04, 1.7266372e-04, 1.3867688e-04, 1.1250016e-04, |
1522 | + # 9.1784840e-05, 7.4666871e-05, 5.9754966e-05, 4.6199819e-05, |
1523 | + # 3.3759746e-05, 2.2745966e-05, 1.3743797e-05, 7.2147556e-06, |
1524 | + # 3.1743092e-06, 1.1196153e-06, 2.9689509e-07, 5.3518235e-08, |
1525 | + # 5.6721821e-09, 2.3409415e-10, 1.1787607e-12, 5.8729404e-17/ |
1526 | + data (gridv(iny, 7),iny=1,32)/ |
1527 | + # 7.1959867e-03, 5.2238170e-03, 3.8140515e-03, 2.7991324e-03, |
1528 | + # 2.0670251e-03, 1.5335081e-03, 1.1431466e-03, 8.5620909e-04, |
1529 | + # 6.4440376e-04, 4.8779317e-04, 3.7174709e-04, 2.8552072e-04, |
1530 | + # 2.2138742e-04, 1.7357728e-04, 1.3770573e-04, 1.1041226e-04, |
1531 | + # 8.9081969e-05, 7.1687010e-05, 5.6748485e-05, 4.3377928e-05, |
1532 | + # 3.1310191e-05, 2.0811054e-05, 1.2385981e-05, 6.3920772e-06, |
1533 | + # 2.7583999e-06, 9.5083600e-07, 2.4412955e-07, 4.1454456e-08, |
1534 | + # 4.1336315e-09, 1.5732057e-10, 7.2362906e-13, 3.8540532e-17/ |
1535 | + data (gridv(iny, 8),iny=1,32)/ |
1536 | + # 8.5794573e-03, 6.1549995e-03, 4.4395854e-03, 3.2173803e-03, |
1537 | + # 2.3455029e-03, 1.7173947e-03, 1.2632918e-03, 9.3357781e-04, |
1538 | + # 6.9319431e-04, 5.1766046e-04, 3.8920495e-04, 2.9492776e-04, |
1539 | + # 2.2566512e-04, 1.7466681e-04, 1.3686160e-04, 1.0845033e-04, |
1540 | + # 8.6522845e-05, 6.8873718e-05, 5.3928273e-05, 4.0752757e-05, |
1541 | + # 2.9053811e-05, 1.9048548e-05, 1.1165828e-05, 5.6636607e-06, |
1542 | + # 2.3959922e-06, 8.0553030e-07, 1.9753531e-07, 2.9524070e-08, |
1543 | + # 2.5899490e-09, 8.0207162e-11, 2.5018623e-13, 1.8180313e-17/ |
1544 | + data firsttime/.true./ |
1545 | + save |
1546 | + if(firsttime)then |
1547 | + firsttime=.false. |
1548 | + nent(1)=nny |
1549 | + nent(2)=nnz |
1550 | + do iny=1,nny |
1551 | + ent(iny)=(yv(iny)) |
1552 | + enddo |
1553 | + do inz=1,nnz |
1554 | + ent(nny+inz)=(zv(inz)) |
1555 | + enddo |
1556 | + endif |
1557 | + arg(1)=(y) |
1558 | + arg(2)=(z) |
1559 | + tmp=dfint(narg,arg,nent,ent,gridv) |
1560 | + ewa_z_p_0=tmp |
1561 | + return |
1562 | + end |
1563 | |
1564 | === added file 'Template/LO/Source/PDF/ElectroweakFlux.inc' |
1565 | --- Template/LO/Source/PDF/ElectroweakFlux.inc 1970-01-01 00:00:00 +0000 |
1566 | +++ Template/LO/Source/PDF/ElectroweakFlux.inc 2020-08-13 08:01:43 +0000 |
1567 | @@ -0,0 +1,38 @@ |
1568 | + double precision pi, pi2, sqrt2, eps |
1569 | + double precision ewa_mw2, ewa_mz2, ewa_gf |
1570 | + double precision ewa_qu,ewa_qd,ewa_qv,ewa_ql,ewa_t3u,ewa_t3d |
1571 | + double precision ewa_cw2,ewa_sw2,ewa_gW2 |
1572 | + double precision ewa_gV,ewa_gVu,ewa_gVd,ewa_gVv,ewa_gVl |
1573 | + double precision ewa_gA,ewa_gAu,ewa_gAd,ewa_gAv,ewa_gAl |
1574 | +c Math |
1575 | + parameter (pi=3.141592653589793d0) |
1576 | + parameter (pi2=9.869604401089358d0) |
1577 | + parameter (sqrt2=1.4142135623730951d0) |
1578 | + parameter (eps=1d-16) |
1579 | +c Input EW parameters |
1580 | + parameter (ewa_mw2 = 80.379d0**2) ! [GeV]^2 PDG 2018 |
1581 | + parameter (ewa_mz2 = 91.1876d0**2) ! [GeV]^2 PDG 2018 |
1582 | + parameter (ewa_gf = 1.1663787d-5) ! [GeV]^-2 PDG 2018 |
1583 | + parameter (ewa_qu = 2d0/3d0) |
1584 | + parameter (ewa_qd = -1d0/3d0) |
1585 | + parameter (ewa_qv = 0d0) |
1586 | + parameter (ewa_ql = -1d0) |
1587 | + parameter (ewa_t3u = 0.5d0) |
1588 | + parameter (ewa_t3d = -0.5d0) |
1589 | +c Derived EW parameters |
1590 | + parameter (ewa_cw2 = ewa_mw2/ewa_mz2) |
1591 | + parameter (ewa_sw2 = 1d0 - ewa_mw2/ewa_mz2) |
1592 | + parameter (ewa_gW2 = sqrt2*4d0*ewa_gf*ewa_mw2) |
1593 | +c Weak Vector Couplings |
1594 | + parameter (ewa_gV = 1d0) |
1595 | + parameter (ewa_gVu = 0.5d0*ewa_t3u - ewa_qu*ewa_sw2) |
1596 | + parameter (ewa_gVd = 0.5d0*ewa_t3d - ewa_qd*ewa_sw2) |
1597 | + parameter (ewa_gVv = 0.5d0*ewa_t3u) |
1598 | + parameter (ewa_gVl = 0.5d0*ewa_t3d - ewa_ql*ewa_sw2) |
1599 | +c Weak Axialvector Couplings |
1600 | + parameter (ewa_gA = -1d0) |
1601 | + parameter (ewa_gAu = -0.5d0*ewa_t3u) |
1602 | + parameter (ewa_gAd = -0.5d0*ewa_t3d) |
1603 | + parameter (ewa_gAv = -0.5d0*ewa_t3u) |
1604 | + parameter (ewa_gAl = -0.5d0*ewa_t3d) |
1605 | +c |
1606 | \ No newline at end of file |
1607 | |
1608 | === modified file 'Template/LO/Source/PDF/PhotonFlux.f' |
1609 | --- Template/LO/Source/PDF/PhotonFlux.f 2020-03-27 13:59:33 +0000 |
1610 | +++ Template/LO/Source/PDF/PhotonFlux.f 2020-08-13 08:01:43 +0000 |
1611 | @@ -1,30 +1,35 @@ |
1612 | c/* ********************************************************* */ |
1613 | -c/* Equivalent photon approximation structure function. * */ |
1614 | -c/* V.M.Budnev et al., Phys.Rep. 15C (1975) 181 * */ |
1615 | -c/* Improved Weizsaecker-Williams formula * */ |
1616 | -c/* http://inspirehep.net/record/359425 * */ |
1617 | +c/* Equivalent photon approximation structure function. * */ |
1618 | +c/* V.M.Budnev et al., Phys.Rep. 15C (1975) 181 * */ |
1619 | +c/* * */ |
1620 | +c/* Improved Weizsaecker-Williams formula * */ |
1621 | +c/* S. Frixione et al. hep-ph/9310350 * */ |
1622 | +c/* * */ |
1623 | c/* ********************************************************* */ |
1624 | c provided by Tomasz Pierzchala - UCL |
1625 | |
1626 | - real*8 function epa_electron(x,q2max) |
1627 | - integer i |
1628 | + real*8 function epa_lepton(x,q2max, mode) |
1629 | + implicit none |
1630 | + integer i, mode, imode |
1631 | +c mode is +3/-3 for electron and +4/-4 for muon |
1632 | real*8 x,phi_f |
1633 | - real*8 xin |
1634 | + real*8 xin(3:4) |
1635 | real*8 alpha |
1636 | real*8 f, q2min,q2max |
1637 | real*8 PI |
1638 | data PI/3.14159265358979323846/ |
1639 | |
1640 | - data xin/0.511d-3/ !electron mass in GeV |
1641 | + data xin/0.511d-3, 0.105658d0/ !electron mass in GeV |
1642 | |
1643 | alpha = .0072992701 |
1644 | - |
1645 | + imode = abs(mode) |
1646 | + |
1647 | C // x = omega/E = (E-E')/E |
1648 | if (x.lt.1) then |
1649 | - q2min= xin*xin*x*x/(1-x) |
1650 | + q2min= xin(imode)*xin(imode)*x*x/(1-x) |
1651 | if(q2min.lt.q2max) then |
1652 | - f = alpha/2d0/PI* |
1653 | - & (2d0*xin*xin*x*(-1/q2min+1/q2max)+ |
1654 | + f = alpha/2d0/PI* |
1655 | + & (2d0*xin(imode)*xin(imode)*x*(-1/q2min+1/q2max)+ |
1656 | & (2-2d0*x+x*x)/x*dlog(q2max/q2min)) |
1657 | |
1658 | else |
1659 | @@ -35,7 +40,7 @@ |
1660 | endif |
1661 | c write (*,*) x,dsqrt(q2min),dsqrt(q2max),f |
1662 | if (f .lt. 0) f = 0 |
1663 | - epa_electron= f |
1664 | + epa_lepton = f |
1665 | |
1666 | end |
1667 | |
1668 | |
1669 | === modified file 'Template/LO/Source/PDF/makefile' |
1670 | --- Template/LO/Source/PDF/makefile 2020-04-08 19:22:14 +0000 |
1671 | +++ Template/LO/Source/PDF/makefile 2020-08-13 08:01:43 +0000 |
1672 | @@ -14,15 +14,16 @@ |
1673 | ifeq ($(lhapdfversion),5) |
1674 | $(error Bad lhadpfversion version 6 is now required) |
1675 | else |
1676 | + PDF = pdfwrap_lhapdf.o pdf_lhapdf6.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o ElectroweakFlux.o |
1677 | ifeq ($(lhapdfsubversion),1) # 6.1.X |
1678 | - PDF = pdfwrap_lhapdf.o pdf_lhapdf6.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o |
1679 | + PDF = pdfwrap_lhapdf.o pdf_lhapdf6.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o ElectroweakFlux.o |
1680 | else # 6.2.X |
1681 | CXXFLAGS+=-std=c++11 |
1682 | - PDF = pdfwrap_lhapdf.o pdf_lhapdf62.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o |
1683 | + PDF = pdfwrap_lhapdf.o pdf_lhapdf62.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o ElectroweakFlux.o |
1684 | endif |
1685 | endif |
1686 | else |
1687 | - PDF = Ctq6Pdf.o pdfwrap.o opendata.o pdf.o PhotonFlux.o pdg2pdf.o NNPDFDriver.o |
1688 | + PDF = Ctq6Pdf.o pdfwrap.o opendata.o pdf.o PhotonFlux.o pdg2pdf.o NNPDFDriver.o ElectroweakFlux.o |
1689 | endif |
1690 | |
1691 | all: $(LIBDIR)$(LIBRARY) |
1692 | |
1693 | === modified file 'Template/LO/Source/PDF/pdf.f' |
1694 | --- Template/LO/Source/PDF/pdf.f 2018-02-01 23:17:18 +0000 |
1695 | +++ Template/LO/Source/PDF/pdf.f 2020-08-13 08:01:43 +0000 |
1696 | @@ -29,7 +29,7 @@ |
1697 | double precision u_val,d_val,u_sea,d_sea,s_sea,c_sea,b_sea,gluon |
1698 | double precision Ctq3df,Ctq4Fn,Ctq5Pdf,Ctq6Pdf,Ctq5L |
1699 | double precision q2max |
1700 | - double precision epa_electron,epa_proton |
1701 | + double precision epa_lepton,epa_proton |
1702 | include 'pdf.inc' |
1703 | |
1704 | integer mode,Iprtn,Irt |
1705 | @@ -297,8 +297,8 @@ |
1706 | c a "diffractive" photon |
1707 | c |
1708 | q2max=xmu*xmu |
1709 | - if(ih .eq. 3) then !from the electron |
1710 | - fx(7)=epa_electron(x,q2max) |
1711 | + if(abs(ih) .eq. 3.or.abs(ih) .eq. 4) then !from the electron |
1712 | + fx(7)=epa_lepton(x,q2max, ih) |
1713 | elseif(ih .eq. 2) then !from a proton without breaking |
1714 | fx(7)=epa_proton(x,q2max) |
1715 | endif |
1716 | |
1717 | === modified file 'Template/LO/Source/PDF/pdg2pdf.f' |
1718 | --- Template/LO/Source/PDF/pdg2pdf.f 2019-12-04 21:34:25 +0000 |
1719 | +++ Template/LO/Source/PDF/pdg2pdf.f 2020-08-13 08:01:43 +0000 |
1720 | @@ -24,7 +24,7 @@ |
1721 | integer mode,Irt,i,j |
1722 | double precision xlast(2),xmulast(2),pdflast(-7:7,2),q2max |
1723 | character*7 pdlabellast(2) |
1724 | - double precision epa_electron,epa_proton |
1725 | + double precision epa_lepton,epa_proton |
1726 | integer ipart,ireuse,iporg,ihlast(2) |
1727 | save xlast,xmulast,pdflast,pdlabellast,ihlast |
1728 | data xlast/2*-99d9/ |
1729 | @@ -32,7 +32,29 @@ |
1730 | data pdflast/30*-99d9/ |
1731 | data pdlabellast/2*'abcdefg'/ |
1732 | data ihlast/2*-99/ |
1733 | - |
1734 | +c |
1735 | +c Special for EWA (need to know current helicity) |
1736 | +c |
1737 | + double precision ewa_wX_ByPID, ewa_zX_ByPID |
1738 | + external ewa_wX_ByPID, ewa_zX_ByPID |
1739 | + integer hel, ppid |
1740 | + double precision hel_jacobian |
1741 | + INTEGER HEL_PICKED |
1742 | + COMMON/HEL_PICKED/HEL_PICKED,hel_jacobian |
1743 | + integer get_nhel |
1744 | + external get_nhel |
1745 | + REAL*8 POL(2) |
1746 | + common/to_polarization/ POL |
1747 | +c |
1748 | +c Collider |
1749 | +c |
1750 | + integer lpp(2) |
1751 | + double precision ebeam(2), xbk(2),q2fact(2) |
1752 | + common/to_collider/ ebeam , xbk ,q2fact, lpp |
1753 | +c |
1754 | +c |
1755 | +c |
1756 | + double precision factor |
1757 | if (ih.eq.9) then |
1758 | pdg2pdf = 1d0 |
1759 | return |
1760 | @@ -66,12 +88,14 @@ |
1761 | ipart=7 |
1762 | c This will be called for any PDG code, but we only support up to 7 |
1763 | else if(iabs(ipart).gt.7)then |
1764 | - write(*,*) 'PDF not supported for pdg ',ipdg |
1765 | - write(*,*) 'For lepton colliders, please set the lpp* '// |
1766 | - $ 'variables to 0 in the run_card' |
1767 | - open(unit=26,file='../../../error',status='unknown') |
1768 | - write(26,*) 'Error: PDF not supported for pdg ',ipdg |
1769 | - stop 1 |
1770 | + if(iabs(ih).lt.2)then |
1771 | + write(*,*) 'PDF not supported for pdg ',ipdg |
1772 | + write(*,*) 'For lepton colliders, please set the lpp* '// |
1773 | + $ 'variables to 0 in the run_card current is' , ih |
1774 | + open(unit=26,file='../../../error',status='unknown') |
1775 | + write(26,*) 'Error: PDF not supported for pdg ',ipdg |
1776 | + stop 1 |
1777 | + endif |
1778 | endif |
1779 | |
1780 | iporg=ipart |
1781 | @@ -85,7 +109,7 @@ |
1782 | enddo |
1783 | |
1784 | c Reuse previous result, if possible |
1785 | - if (ireuse.gt.0.)then |
1786 | + if (ireuse.gt.0.and.iabs(iporg).lt.8)then |
1787 | if (pdflast(iporg,ireuse).ne.-99d9) then |
1788 | pdg2pdf = get_ion_pdf(pdflast(-7, ireuse), iporg, nb_proton(beamid), |
1789 | $ nb_neutron(beamid)) |
1790 | @@ -129,15 +153,85 @@ |
1791 | pdlabellast(ireuse)=pdlabel |
1792 | ihlast(ireuse)=ih |
1793 | |
1794 | - if(iabs(ipart).eq.7.and.ih.gt.1) then |
1795 | +c |
1796 | +c Special mode for Improved Weizsacker-Williams, |
1797 | +c Equivalent photon, and Effective W/Z Approximations |
1798 | +c |
1799 | + if (ih.gt.1.and.ih.ne.9) then |
1800 | +c Effective photon approximation |
1801 | q2max=xmu*xmu |
1802 | - if(ih.eq.3) then !from the electron |
1803 | - pdg2pdf=epa_electron(x,q2max) |
1804 | - elseif(ih .eq. 2) then !from a proton without breaking |
1805 | - pdg2pdf=epa_proton(x,q2max,beamid) |
1806 | - endif |
1807 | - pdflast(iporg,ireuse)=pdg2pdf |
1808 | - return |
1809 | + if (iabs(ipart).eq.7) then |
1810 | + if(abs(ih).eq.3.or.abs(ih).eq.4) then !from the electron or muonn |
1811 | + pdg2pdf=epa_lepton(x,q2max, ih) |
1812 | + elseif(ih .eq. 2) then !from a proton without breaking |
1813 | + pdg2pdf=epa_proton(x,q2max,beamid) |
1814 | + endif |
1815 | + pdflast(iporg,ireuse)=pdg2pdf |
1816 | + return |
1817 | + elseif(iabs(ipart).eq.23) then ! z boson |
1818 | + factor = 3d0 ! 3 to cancel the average over W helicities´ |
1819 | + if (ABS(ih).eq.3) then |
1820 | + ppid = 11 |
1821 | + elseif(ABS(ih).eq.4) then |
1822 | + ppid = 13 |
1823 | + elseif(ABS(ih).eq.2) then |
1824 | + ppid = 2212 |
1825 | + else |
1826 | + write(*,*) "type of beam not yet supported for EWA" |
1827 | + stop 4 |
1828 | + endif |
1829 | + hel = GET_NHEL(HEL_PICKED, beamid) |
1830 | + pdg2pdf = factor * ewa_zX_ByPID(x,q2max,hel,ppid) |
1831 | + if (ABS(POL(beamid)).ne.1d0) then |
1832 | + write(*,*) 'beam polarization not supported for EWA with Z' |
1833 | + stop 33 |
1834 | + endif |
1835 | + |
1836 | + return |
1837 | + elseif(ipart.eq.24) then ! w+ boson |
1838 | + factor = 3d0 ! 3 to cancel the average over W helicities´ |
1839 | + if (ih.eq.-3) then ! from e+ |
1840 | + ppid = -11 |
1841 | + elseif(ih.eq.-4) then ! from mu+ |
1842 | + ppid = -13 |
1843 | + elseif(ih.eq.2) then |
1844 | + ppid = 2212 |
1845 | + else |
1846 | + write(*,*) "type of beam not yet supported for EWA" |
1847 | + stop 4 |
1848 | + endif |
1849 | + hel = GET_NHEL(HEL_PICKED, beamid) |
1850 | + pdg2pdf = factor*ewa_wX_ByPID(x,q2max,hel,ppid) |
1851 | + if(pol(beamid).lt.0d0)then |
1852 | + pdg2pdf = pdg2pdf * (2-ABS(POL(beamid)))/2d0 ! couple only to right handed componenta |
1853 | + else |
1854 | + pdg2pdf = pdg2pdf * ABS(POL(beamid))/2d0 ! couple only to right handed componenta |
1855 | + endif |
1856 | + return |
1857 | + elseif(ipart.eq.-24) then ! w- boson |
1858 | + factor = 3d0 ! 3 to cancel the average over W helicities´ |
1859 | + if (ih.eq.3) then ! from e- |
1860 | + ppid = 11 |
1861 | + elseif(ih.eq.4) then ! from mu- |
1862 | + ppid = 13 |
1863 | + elseif(ih.eq.2) then |
1864 | + ppid = -2212 |
1865 | + else |
1866 | + write(*,*) "type of beam not yet supported for EWA" |
1867 | + stop 4 |
1868 | + endif |
1869 | + |
1870 | + hel = GET_NHEL(HEL_PICKED, beamid) |
1871 | + pdg2pdf = factor*ewa_wX_ByPID(x,q2max,hel,ppid) |
1872 | + if(pol(beamid)*lpp(beamid).lt.0d0)then |
1873 | + pdg2pdf = pdg2pdf * ABS(POL(beamid))/2d0 ! couple only to left handed componenta |
1874 | + else |
1875 | + pdg2pdf = pdg2pdf * (2-ABS(POL(beamid)))/2d0 ! couple only to left handed componenta |
1876 | + endif |
1877 | + |
1878 | + |
1879 | + return |
1880 | + endif |
1881 | endif |
1882 | |
1883 | if (pdlabel(1:5) .eq. 'cteq6') then |
1884 | |
1885 | === removed file 'Template/LO/Source/PDF/pdg2pdf_lhapdf.f' |
1886 | === modified file 'Template/LO/Source/PDF/pdg2pdf_lhapdf6.f' |
1887 | --- Template/LO/Source/PDF/pdg2pdf_lhapdf6.f 2020-03-06 20:47:59 +0000 |
1888 | +++ Template/LO/Source/PDF/pdg2pdf_lhapdf6.f 2020-08-13 08:01:43 +0000 |
1889 | @@ -24,7 +24,7 @@ |
1890 | integer i,j,ihlast(20),ipart,iporg,ireuse,imemlast(20),iset,imem |
1891 | & ,i_replace,ii,ipartlast(20) |
1892 | double precision xlast(20),xmulast(20),pdflast(-7:7,20) |
1893 | - double precision epa_proton, epa_electron |
1894 | + double precision epa_proton, epa_lepton |
1895 | save ihlast,xlast,xmulast,pdflast,imemlast,ipartlast |
1896 | data ihlast/20*-99/ |
1897 | data ipartlast/20*-99/ |
1898 | @@ -33,6 +33,37 @@ |
1899 | data pdflast/300*-99d9/ |
1900 | data imemlast/20*-99/ |
1901 | data i_replace/20/ |
1902 | +c |
1903 | +c Special for EWA (need to know current helicity) |
1904 | +c |
1905 | + double precision ewa_wX_ByPID, ewa_zX_ByPID |
1906 | + external ewa_wX_ByPID, ewa_zX_ByPID |
1907 | + integer hel, ppid |
1908 | + double precision hel_jacobian |
1909 | + INTEGER HEL_PICKED |
1910 | + COMMON/HEL_PICKED/HEL_PICKED,hel_jacobian |
1911 | + integer get_nhel |
1912 | + external get_nhel |
1913 | + REAL*8 POL(2) |
1914 | + common/to_polarization/ POL |
1915 | + double precision q2max |
1916 | + double precision epa_electron |
1917 | +c |
1918 | +c Collider |
1919 | +c |
1920 | + integer lpp(2) |
1921 | + double precision ebeam(2), xbk(2),q2fact(2) |
1922 | + common/to_collider/ ebeam , xbk ,q2fact, lpp |
1923 | +c |
1924 | +c |
1925 | +c |
1926 | + double precision factor |
1927 | + |
1928 | + if (ih.eq.9) then |
1929 | + pdg2pdf = 1d0 |
1930 | + return |
1931 | + endif |
1932 | + |
1933 | |
1934 | nb_hadron = (nb_proton(beamid)+nb_neutron(beamid)) |
1935 | c Make sure we have a reasonable Bjorken x. Note that even though |
1936 | @@ -62,12 +93,14 @@ |
1937 | ipart=7 |
1938 | c This will be called for any PDG code, but we only support up to 7 |
1939 | else if(iabs(ipart).gt.7)then |
1940 | - write(*,*) 'PDF not supported for pdg ',ipdg |
1941 | - write(*,*) 'For lepton colliders, please set the lpp* '// |
1942 | - $ 'variables to 0 in the run_card' |
1943 | - open(unit=26,file='../../../error',status='unknown') |
1944 | - write(26,*) 'Error: PDF not supported for pdg ',ipdg |
1945 | - stop 1 |
1946 | + if(iabs(ih).lt.2)then |
1947 | + write(*,*) 'PDF not supported for pdg ',ipdg |
1948 | + write(*,*) 'For lepton colliders, please set the lpp* '// |
1949 | + $ 'variables to 0 in the run_card' |
1950 | + open(unit=26,file='../../../error',status='unknown') |
1951 | + write(26,*) 'Error: PDF not supported for pdg ',ipdg |
1952 | + stop 1 |
1953 | + endif |
1954 | endif |
1955 | |
1956 | iporg=ipart |
1957 | @@ -139,10 +172,77 @@ |
1958 | pdg2pdf = get_ion_pdf(pdflast(-7, i_replace), ipart, nb_proton(beamid), nb_neutron(beamid)) |
1959 | endif |
1960 | pdg2pdf=pdg2pdf/x |
1961 | - else if(ih.eq.3) then !from the electron |
1962 | - pdg2pdf=epa_electron(x,xmu*xmu) |
1963 | - else if(ih.eq.2) then ! photon from a proton without breaking |
1964 | - pdg2pdf = epa_proton(x,xmu*xmu) |
1965 | + else if(ih.gt.1.and.ih.ne.9) then ! photon from a proton without breaking |
1966 | +c Effective photon approximation |
1967 | + q2max=xmu*xmu |
1968 | + if (iabs(ipart).eq.7) then |
1969 | + if(abs(ih).eq.3.or.abs(ih).eq.4) then !from the electron |
1970 | + pdg2pdf=epa_lepton(x,xmu*xmu, ih) |
1971 | + elseif(ih .eq. 2) then !from a proton without breaking |
1972 | + pdg2pdf=epa_proton(x,q2max,beamid) |
1973 | + endif |
1974 | + pdflast(iporg,ireuse)=pdg2pdf |
1975 | + return |
1976 | + elseif(iabs(ipart).eq.23) then ! z boson |
1977 | + if (ih.eq.3) then |
1978 | + ppid = 11 |
1979 | + elseif(ih.eq.4) then |
1980 | + ppid = 13 |
1981 | + elseif(ih.eq.2) then |
1982 | + ppid = 2212 |
1983 | + else |
1984 | + write(*,*) "type of beam not yet supported for EWA" |
1985 | + stop 4 |
1986 | + endif |
1987 | + hel = GET_NHEL(HEL_PICKED, beamid) |
1988 | + pdg2pdf = ewa_zX_ByPID(x,q2max,hel,ppid) |
1989 | + if (ABS(POL(beamid)).ne.1d0) then |
1990 | + write(*,*) |
1991 | + & 'beam polarization not supported for EWA with Z' |
1992 | + stop 33 |
1993 | + endif |
1994 | + return |
1995 | + elseif(ipart.eq.24) then ! w+ boson |
1996 | + factor = 3d0 ! 3 to cancel the average over W helicities´ |
1997 | + if (ih.eq.-3) then ! from e+ |
1998 | + ppid = -11 |
1999 | + elseif(ih.eq.-4) then ! from mu+ |
2000 | + ppid = -13 |
2001 | + elseif(ih.eq.2) then |
2002 | + ppid = 2212 |
2003 | + else |
2004 | + write(*,*) "type of beam not yet supported for EWA" |
2005 | + stop 4 |
2006 | + endif |
2007 | + hel = GET_NHEL(HEL_PICKED, beamid) |
2008 | + pdg2pdf = factor*ewa_wX_ByPID(x,q2max,hel,ppid) |
2009 | + if(pol(beamid).lt.0d0)then |
2010 | + pdg2pdf = pdg2pdf * (2-ABS(POL(beamid)))/2d0 ! couple only to right handed componenta |
2011 | + else |
2012 | + pdg2pdf = pdg2pdf * ABS(POL(beamid))/2d0 ! couple only to right handed componenta |
2013 | + endif |
2014 | + return |
2015 | + elseif(ipart.eq.-24) then ! w- boson |
2016 | + factor = 3d0 ! 3 to cancel the average over W helicities´ |
2017 | + if (ih.eq.3) then ! from e- |
2018 | + ppid = 11 |
2019 | + elseif(ih.eq.4) then ! from mu- |
2020 | + ppid = 13 |
2021 | + elseif(ih.eq.2) then |
2022 | + ppid = -2212 |
2023 | + else |
2024 | + write(*,*) "type of beam not yet supported for EWA" |
2025 | + stop 4 |
2026 | + endif |
2027 | + |
2028 | + hel = GET_NHEL(HEL_PICKED, beamid) |
2029 | + pdg2pdf = factor*ewa_wX_ByPID(x,q2max,hel,ppid) |
2030 | + if(pol(beamid)*lpp(beamid).lt.0d0)then |
2031 | + pdg2pdf = pdg2pdf * ABS(POL(beamid))/2d0 ! couple only to left handed componenta |
2032 | + else |
2033 | + pdg2pdf = pdg2pdf * (2-ABS(POL(beamid)))/2d0 ! couple only to left handed componenta |
2034 | + endif |
2035 | + endif |
2036 | else |
2037 | write (*,*) 'beam type not supported in lhadpf' |
2038 | stop 1 |
2039 | |
2040 | === modified file 'Template/LO/Source/kin_functions.f' |
2041 | --- Template/LO/Source/kin_functions.f 2016-02-10 14:56:17 +0000 |
2042 | +++ Template/LO/Source/kin_functions.f 2020-08-13 08:01:43 +0000 |
2043 | @@ -590,11 +590,13 @@ |
2044 | C 4-Vector Dot product |
2045 | C**************************************************************************** |
2046 | implicit none |
2047 | - double precision p1(0:3),p2(0:3) |
2048 | + double precision p1(0:3),p2(0:3), dot2 |
2049 | dot=p1(0)*p2(0)-p1(1)*p2(1)-p1(2)*p2(2)-p1(3)*p2(3) |
2050 | |
2051 | - if(dabs(dot).lt.1d-6)then ! solve numerical problem |
2052 | - dot=0d0 |
2053 | + if(dabs(dot).lt.1d-6)then ! solve numerical problem |
2054 | + dot2 = p1(0)*p2(0)+p1(1)*p2(1)+p1(2)*p2(2)+p1(3)*p2(3) |
2055 | + dot2 = max(1e-99,dot2) |
2056 | + if (dot/dot2.lt.1e-6) dot=0d0 |
2057 | endif |
2058 | |
2059 | end |
2060 | |
2061 | === modified file 'Template/LO/Source/setrun.f' |
2062 | --- Template/LO/Source/setrun.f 2016-03-04 16:16:23 +0000 |
2063 | +++ Template/LO/Source/setrun.f 2020-08-13 08:01:43 +0000 |
2064 | @@ -83,12 +83,27 @@ |
2065 | q2fact(1) = sf1**2 ! fact scale**2 for pdf1 |
2066 | q2fact(2) = sf2**2 ! fact scale**2 for pdf2 |
2067 | |
2068 | + if(pb1.ne.0d0)then |
2069 | + if (abs(lpp(1)).eq.1.or.abs(lpp(1)).eq.2)then |
2070 | + write(*,*) 'proton/anti-proton beam polarization are not allowed' |
2071 | + stop 1 |
2072 | + endif |
2073 | + pol(1)=sign(1+abs(pb1)/100d0,pb1) |
2074 | + endif |
2075 | + if(pb2.ne.0d0)then |
2076 | + if (abs(lpp(2)).eq.1.or.abs(lpp(2)).eq.2)then |
2077 | + write(*,*) 'proton/anti-proton beam polarization are not allowed' |
2078 | + stop 1 |
2079 | + endif |
2080 | + pol(2)=sign(1+abs(pb2)/100d0,pb2) |
2081 | + endif |
2082 | + |
2083 | if(pb1.ne.0d0.and.lpp(1).eq.0) pol(1)=sign(1+abs(pb1)/100d0,pb1) |
2084 | if(pb2.ne.0d0.and.lpp(2).eq.0) pol(2)=sign(1+abs(pb2)/100d0,pb2) |
2085 | |
2086 | if(pb1.ne.0.or.pb2.ne.0) write(*,*) 'Setting beam polarization ', |
2087 | - $ sign((abs(pol(1))-1)*100,pol(1)), |
2088 | - $ sign((abs(pol(2))-1)*100,pol(2)) |
2089 | + $ pol(1), pol(2) |
2090 | + |
2091 | |
2092 | c !!! Default behavior changed (MH, Aug. 07) !!! |
2093 | c If no pdf, read the param_card and use the value from there and |
2094 | |
2095 | === modified file 'Template/LO/SubProcesses/genps.f' |
2096 | --- Template/LO/SubProcesses/genps.f 2020-06-15 07:16:51 +0000 |
2097 | +++ Template/LO/SubProcesses/genps.f 2020-08-13 08:01:43 +0000 |
2098 | @@ -572,6 +572,9 @@ |
2099 | if (abs(lpp(2)) .eq. 1 .or. abs(lpp(2)) .eq. 2) m2 = 0.938d0 |
2100 | if (abs(lpp(1)) .eq. 3) m1 = 0.000511d0 |
2101 | if (abs(lpp(2)) .eq. 3) m2 = 0.000511d0 |
2102 | + if (abs(lpp(1)) .eq. 4) m1 = 0.000511d0 |
2103 | + if (abs(lpp(1)) .eq. 4) m1 = 0.105658d0 |
2104 | + if (abs(lpp(2)) .eq. 4) m2 = 0.105658d0 |
2105 | if (mass_ion(1).ge.0d0) m1 = mass_ion(1) |
2106 | if (mass_ion(2).ge.0d0) m2 = mass_ion(2) |
2107 | if(ebeam(1).lt.m1.and.lpp(1).ne.9) ebeam(1)=m1 |
2108 | |
2109 | === modified file 'Template/LO/SubProcesses/reweight.f' |
2110 | --- Template/LO/SubProcesses/reweight.f 2020-05-24 20:16:56 +0000 |
2111 | +++ Template/LO/SubProcesses/reweight.f 2020-08-13 08:01:43 +0000 |
2112 | @@ -1738,9 +1738,9 @@ |
2113 | if (btest(mlevel,3)) |
2114 | $ write(*,*)' set fact scales for PS to ', |
2115 | $ sqrt(q2fact(1)),sqrt(q2fact(2)) |
2116 | - else if (abs(lpp(1)).eq.2.or.abs(lpp(1)).eq.3) then |
2117 | + else if (abs(lpp(1)).ge.2.and.abs(lpp(1)).le.4) then |
2118 | q2fact(1)=q2bck(1) |
2119 | - else if (abs(lpp(2)).eq.2.or.abs(lpp(2)).eq.3) then |
2120 | + else if (abs(lpp(2)).ge.2.or.abs(lpp(2)).le.4) then |
2121 | q2fact(2)=q2bck(2) |
2122 | endif |
2123 | |
2124 | |
2125 | === modified file 'Template/LO/SubProcesses/unwgt.f' |
2126 | --- Template/LO/SubProcesses/unwgt.f 2020-05-20 11:52:45 +0000 |
2127 | +++ Template/LO/SubProcesses/unwgt.f 2020-08-13 08:01:43 +0000 |
2128 | @@ -145,10 +145,19 @@ |
2129 | C compute the boost for the requested transformation |
2130 | implicit none |
2131 | double precision pin(0:3), pout(0:3) |
2132 | - double precision denom |
2133 | + double precision denom, control |
2134 | |
2135 | denom = pin(0)*pout(0) - pin(3)*pout(3) |
2136 | if (denom.ne.0d0) then |
2137 | + control = pin(0)*pout(0) + pin(3)*pout(3) |
2138 | + if (denom/control.gt.1d-12)then |
2139 | + get_betaz = (pin(3) * pout(0) - pout(3) * pin(0)) / denom |
2140 | +c pass in massless case |
2141 | + else if (abs(pin(0)+pin(3)).gt.abs(pin(0))) then |
2142 | + get_betaz = (pin(0)**2 - pout(0)**2)/(pin(0)**2 + pout(0)**2) |
2143 | + else |
2144 | + get_betaz = (pout(0)**2 - pin(0)**2)/(pin(0)**2 + pout(0)**2) |
2145 | + endif |
2146 | get_betaz = (pin(3) * pout(0) - pout(3) * pin(0)) / denom |
2147 | else if (pin(0).eq.pin(3)) then |
2148 | get_betaz = (pin(0)**2 - pout(0)**2)/(pin(0)**2 + pout(0)**2) |
2149 | |
2150 | === modified file 'Template/MadWeight/src/setrun.f' |
2151 | --- Template/MadWeight/src/setrun.f 2018-04-27 21:01:37 +0000 |
2152 | +++ Template/MadWeight/src/setrun.f 2020-08-13 08:01:43 +0000 |
2153 | @@ -536,3 +536,11 @@ |
2154 | |
2155 | return |
2156 | end |
2157 | + |
2158 | + INTEGER FUNCTION GET_NHEL(HEL, IPART) |
2159 | + implicit none |
2160 | + integer hel |
2161 | + integer ipart |
2162 | + get_nhel = 99 |
2163 | + return |
2164 | + end |
2165 | |
2166 | === modified file 'UpdateNotes.txt' |
2167 | --- UpdateNotes.txt 2020-06-21 12:17:36 +0000 |
2168 | +++ UpdateNotes.txt 2020-08-13 08:01:43 +0000 |
2169 | @@ -1,5 +1,23 @@ |
2170 | Update notes for MadGraph5_aMC@NLO (in reverse time order) |
2171 | |
2172 | +2.8.0: |
2173 | + OM: In madspin_card you can now replace the line "launch" |
2174 | + by "launch -n NAME", this will allow to specify the name of the |
2175 | + directory in EVENTS where that run is stored. |
2176 | + OM: Change in the python interface of the standalone output. In top of the pdg of the particles, |
2177 | + you can now use the process_id (the one specified with @X) to distinguish process with the same particle |
2178 | + content. This parameter can be set to -1 and the function then ignore that parameter. |
2179 | + OM: Adding new option in reweighting to allow the user to use the process_id in presence of ambiguous |
2180 | + initial/final state. |
2181 | + OM: For LO process, you can now set lpp1 and lpp2 to "4" for process with initial photon in order to get the |
2182 | + effective photon approximation. This mode behaves like the "3" one: The cut-off scale of the approximation |
2183 | + is taken from the fixed renormalization factorisation scale: "dsqrt_q2fact1/dsqrt_q2fact2" |
2184 | + OM: Update the makefile of standalone interface to python to be able to compile in multicore. |
2185 | + (thanks Matthias Komm) |
2186 | + OM: Update of the auto-width code to support UFO form-factors |
2187 | + OM: Fixing numerical issue at very low invariant mass and another numerical issue with the boost in EPA mode. |
2188 | + |
2189 | + |
2190 | 2.7.3(21/06/20) |
2191 | OM: Fixing some bug for read-only LO gridpacks (wrong cross-section and shape when generating events). |
2192 | Thanks to Congqiao Li for this |
2193 | |
2194 | === modified file 'aloha/aloha_writers.py' |
2195 | --- aloha/aloha_writers.py 2020-01-09 23:14:56 +0000 |
2196 | +++ aloha/aloha_writers.py 2020-08-13 08:01:43 +0000 |
2197 | @@ -1241,12 +1241,15 @@ |
2198 | """ build the name for combined aloha function """ |
2199 | |
2200 | def myHash(target_string): |
2201 | + suffix = '' |
2202 | + if '%(propa)s' in target_string: |
2203 | + target_string = target_string.replace('%(propa)s','') |
2204 | + suffix = '%(propa)s' |
2205 | + |
2206 | if len(target_string)<50: |
2207 | - return target_string |
2208 | - if '%(propa)s' in target_string: |
2209 | - return 'ALOHA_'+(str(hash(target_string.lower()))).replace('-','m')+'%(propa)s' |
2210 | + return '%s%s' % (target_string, suffix) |
2211 | else: |
2212 | - return 'ALOHA_'+(str(hash(target_string.lower()))).replace('-','m') |
2213 | + return 'ALOHA_%s%s' % (str(hash(target_string.lower())).replace('-','m'), suffix) |
2214 | |
2215 | if tag and any(t.startswith('P') for t in tag[:-1]): |
2216 | # propagator need to be the last entry for the tag |
2217 | |
2218 | === modified file 'madgraph/core/base_objects.py' |
2219 | --- madgraph/core/base_objects.py 2020-05-07 13:47:24 +0000 |
2220 | +++ madgraph/core/base_objects.py 2020-08-13 08:01:43 +0000 |
2221 | @@ -1222,7 +1222,8 @@ |
2222 | |
2223 | if name == 'particles': |
2224 | # Ensure no doublets in particle list |
2225 | - make_unique(value) |
2226 | + if value: |
2227 | + make_unique(value) |
2228 | # Reset dictionaries |
2229 | self['particle_dict'] = {} |
2230 | self['ref_dict_to0'] = {} |
2231 | @@ -4053,7 +4054,7 @@ |
2232 | is needed""" |
2233 | |
2234 | assert isinstance(doubletlist, list), \ |
2235 | - "Argument to make_unique must be list" |
2236 | + "Argument to make_unique must be list not %s" % type(doubletlist) |
2237 | |
2238 | |
2239 | uniquelist = [] |
2240 | |
2241 | === modified file 'madgraph/interface/common_run_interface.py' |
2242 | --- madgraph/interface/common_run_interface.py 2020-06-17 07:23:03 +0000 |
2243 | +++ madgraph/interface/common_run_interface.py 2020-08-13 08:01:43 +0000 |
2244 | @@ -3704,11 +3704,21 @@ |
2245 | |
2246 | madspin_cmd.import_command_file(path) |
2247 | |
2248 | - # create a new run_name directory for this output |
2249 | - i = 1 |
2250 | - while os.path.exists(pjoin(self.me_dir,'Events', '%s_decayed_%i' % (self.run_name,i))): |
2251 | - i+=1 |
2252 | - new_run = '%s_decayed_%i' % (self.run_name,i) |
2253 | + |
2254 | + if not madspin_cmd.me_run_name: |
2255 | + # create a new run_name directory for this output |
2256 | + i = 1 |
2257 | + while os.path.exists(pjoin(self.me_dir,'Events', '%s_decayed_%i' % (self.run_name,i))): |
2258 | + i+=1 |
2259 | + new_run = '%s_decayed_%i' % (self.run_name,i) |
2260 | + else: |
2261 | + new_run = madspin_cmd.me_run_name |
2262 | + if os.path.exists(pjoin(self.me_dir,'Events', new_run)): |
2263 | + i = 1 |
2264 | + while os.path.exists(pjoin(self.me_dir,'Events', '%s_%i' % (new_run,i))): |
2265 | + i+=1 |
2266 | + new_run = '%s_%i' % (new_run,i) |
2267 | + |
2268 | evt_dir = pjoin(self.me_dir, 'Events') |
2269 | |
2270 | os.mkdir(pjoin(evt_dir, new_run)) |
2271 | @@ -5828,6 +5838,21 @@ |
2272 | self.run_card['mass_ion1'] != self.run_card['mass_ion2']): |
2273 | 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\"." |
2274 | |
2275 | + # EWA mode should use MC over polarization and no systematics (due to pdf call inreweight) |
2276 | + if self.run_card['lpp1'] in [2,3,4,-3,-4] or self.run_card['lpp2'] in [2,3,4,-3,-4]: |
2277 | + if any(pdg in proc_charac['pdg_initial1']+ proc_charac['pdg_initial2'] |
2278 | + for pdg in [24, -24, 23]): |
2279 | + if self.run_card['nhel'] == 0: |
2280 | + logger.warning("only MC over polarization supported for EWA mode") |
2281 | + self.do_set('run_card nhel 1') |
2282 | + if self.run_card['use_syst']: |
2283 | + logger.warning("evaluation of systematics not allowed in EWA mode. set use_syst to False") |
2284 | + self.do_set('run_card use_syst False') |
2285 | + |
2286 | + if self.run_card['lpp1'] in [4,-4] or self.run_card['lpp2'] in [4,-4]: |
2287 | + if 22 in proc_charac['pdg_initial1']+ proc_charac['pdg_initial2']: |
2288 | + raise Exception, "EPA not implemented from muon beam. (please open a ticket and we will do it)" |
2289 | + |
2290 | # check the status of small width status from LO |
2291 | for param in self.param_card['decay']: |
2292 | width = param.value |
2293 | |
2294 | === modified file 'madgraph/interface/madevent_interface.py' |
2295 | --- madgraph/interface/madevent_interface.py 2020-06-18 20:23:25 +0000 |
2296 | +++ madgraph/interface/madevent_interface.py 2020-08-13 08:01:43 +0000 |
2297 | @@ -5414,6 +5414,7 @@ |
2298 | elif mode in [1,2]: |
2299 | exename = os.path.basename(exe) |
2300 | # For condor cluster, create the input/output files |
2301 | + misc.sprint(exename) |
2302 | if 'ajob' in exename: |
2303 | input_files = ['madevent','input_app.txt','symfact.dat','iproc.dat','dname.mg', |
2304 | pjoin(self.me_dir, 'SubProcesses','randinit')] |
2305 | @@ -5509,7 +5510,7 @@ |
2306 | #submitting |
2307 | self.cluster.cluster_submit(exe, stdout=stdout, cwd=cwd, argument=argument, |
2308 | input_files=input_files, output_files=output_files, |
2309 | - required_output=required_output, **opt) |
2310 | + required_output=required_output, allow_array=True, **opt) |
2311 | elif "refine_splitted.sh" in exename: |
2312 | input_files = ['madevent','symfact.dat','iproc.dat', 'dname.mg', |
2313 | pjoin(self.me_dir, 'SubProcesses','randinit')] |
2314 | @@ -5533,7 +5534,7 @@ |
2315 | #submitting |
2316 | self.cluster.cluster_submit(exe, stdout=stdout, cwd=cwd, argument=argument, |
2317 | input_files=input_files, output_files=output_files, |
2318 | - required_output=required_output, **opt) |
2319 | + required_output=required_output,allow_array=True, **opt) |
2320 | |
2321 | |
2322 | |
2323 | |
2324 | === modified file 'madgraph/interface/madgraph_interface.py' |
2325 | --- madgraph/interface/madgraph_interface.py 2020-06-17 06:15:07 +0000 |
2326 | +++ madgraph/interface/madgraph_interface.py 2020-08-13 08:01:43 +0000 |
2327 | @@ -8353,7 +8353,7 @@ |
2328 | decay_dir = pjoin(path,'temp_decay') |
2329 | logger_mg.info('More info in temporary files:\n %s/index.html' % (decay_dir)) |
2330 | with misc.MuteLogger(['madgraph','ALOHA','cmdprint','madevent'], [40,40,40,40]): |
2331 | - self.exec_cmd('output %s -f' % decay_dir,child=False) |
2332 | + self.exec_cmd('output madevent %s -f' % decay_dir,child=False) |
2333 | |
2334 | #modify some parameter of the default run_card |
2335 | run_card = banner_module.RunCard(pjoin(decay_dir,'Cards','run_card.dat')) |
2336 | |
2337 | === modified file 'madgraph/interface/reweight_interface.py' |
2338 | --- madgraph/interface/reweight_interface.py 2020-06-16 13:10:57 +0000 |
2339 | +++ madgraph/interface/reweight_interface.py 2020-08-13 08:01:43 +0000 |
2340 | @@ -111,6 +111,7 @@ |
2341 | self.rwgt_dir = None |
2342 | self.exitted = False # Flag to know if do_quit was already called. |
2343 | self.keep_ordering = False |
2344 | + self.use_eventid = False |
2345 | if event_path: |
2346 | logger.info("Extracting the banner ...") |
2347 | self.do_import(event_path, allow_madspin=allow_madspin) |
2348 | @@ -356,8 +357,8 @@ |
2349 | if self.has_standalone_dir: |
2350 | self.terminate_fortran_executables() |
2351 | self.has_standalone_dir = False |
2352 | - elif args[0] == "keep_ordering": |
2353 | - self.keep_ordering = banner.ConfigFile.format_variable(args[1], bool, "keep_ordering") |
2354 | + elif args[0] in ["keep_ordering", "use_eventid"]: |
2355 | + setattr(self, args[0], banner.ConfigFile.format_variable(args[1], bool, args[0])) |
2356 | elif args[0] == "allow_missing_finalstate": |
2357 | self.options["allow_missing_finalstate"] = banner.ConfigFile.format_variable(args[1], bool, "allow_missing_finalstate") |
2358 | elif args[0] == "process": |
2359 | @@ -980,11 +981,12 @@ |
2360 | def calculate_weight(self, event): |
2361 | """space defines where to find the calculator (in multicore)""" |
2362 | |
2363 | - if not hasattr(self,'pdf'): |
2364 | - lhapdf = misc.import_python_lhapdf(self.mg5cmd.options['lhapdf']) |
2365 | - self.pdf = lhapdf.mkPDF(self.banner.run_card.get_lhapdf_id()) |
2366 | - |
2367 | + |
2368 | if self.has_nlo and self.rwgt_mode != "LO": |
2369 | + if not hasattr(self,'pdf'): |
2370 | + lhapdf = misc.import_python_lhapdf(self.mg5cmd.options['lhapdf']) |
2371 | + self.pdf = lhapdf.mkPDF(self.banner.run_card.get_lhapdf_id()) |
2372 | + |
2373 | return self.calculate_nlo_weight(event) |
2374 | |
2375 | event.parse_reweight() |
2376 | @@ -1206,7 +1208,7 @@ |
2377 | # base = "rw_mevirt" |
2378 | #else: |
2379 | # base = "rw_me" |
2380 | - |
2381 | + |
2382 | if (not self.second_model and not self.second_process and not self.dedicated_path) or hypp_id==0: |
2383 | orig_order, Pdir, hel_dict = self.id_to_path[tag] |
2384 | else: |
2385 | @@ -1269,10 +1271,16 @@ |
2386 | pold = list(p) |
2387 | p = self.invert_momenta(p) |
2388 | pdg = list(orig_order[0])+list(orig_order[1]) |
2389 | - |
2390 | + try: |
2391 | + pid = event.ievent |
2392 | + except AttributeError: |
2393 | + pid = -1 |
2394 | + if not self.use_eventid: |
2395 | + pid = -1 |
2396 | + |
2397 | with misc.chdir(Pdir): |
2398 | with misc.stdchannel_redirected(sys.stdout, os.devnull): |
2399 | - me_value = module.smatrixhel(pdg,p, event.aqcd, scale2, nhel) |
2400 | + me_value = module.smatrixhel(pdg, pid, p, event.aqcd, scale2, nhel) |
2401 | |
2402 | # for loop we have also the stability status code |
2403 | if isinstance(me_value, tuple): |
2404 | @@ -1387,10 +1395,12 @@ |
2405 | nlo_order = nlo_order.replace('noborn', 'virt') |
2406 | commandline += "add process %s [%s] %s;" % (base,nlo_order,post) |
2407 | commandline = commandline.replace('add process', 'generate',1) |
2408 | - logger.info("RETRY with %s", commandline) |
2409 | - mgcmd.exec_cmd(commandline, precmd=True) |
2410 | - has_nlo = False |
2411 | + if commandline: |
2412 | + logger.info("RETRY with %s", commandline) |
2413 | + mgcmd.exec_cmd(commandline, precmd=True) |
2414 | + has_nlo = False |
2415 | except Exception, error: |
2416 | + misc.sprint(type(error)) |
2417 | raise |
2418 | |
2419 | commandline = 'output standalone_rw %s --prefix=int' % pjoin(path_me,data['paths'][0]) |
2420 | @@ -1802,8 +1812,9 @@ |
2421 | data = self.id_to_path_second |
2422 | |
2423 | # get all the information |
2424 | - all_pdgs = mymod.get_pdg_order() |
2425 | - all_pdgs = [[pdg for pdg in pdgs if pdg!=0] for pdgs in mymod.get_pdg_order()] |
2426 | + allids, all_pids = mymod.get_pdg_order() |
2427 | + all_pdgs = [[pdg for pdg in pdgs if pdg!=0] for pdgs in allids] |
2428 | + #all_pids = [pid for (pdgs, pid) in allids] |
2429 | all_prefix = [''.join(j).strip().lower() for j in mymod.get_prefix()] |
2430 | prefix_set = set(all_prefix) |
2431 | |
2432 | @@ -1826,7 +1837,7 @@ |
2433 | misc.sprint(os.path.exists(pjoin(path_me,onedir,'SubProcesses','MadLoop5_resources', '%sHelConfigs.dat' % prefix.upper()))) |
2434 | continue |
2435 | |
2436 | - for i,pdg in enumerate(all_pdgs): |
2437 | + for i,(pdg,pid) in enumerate(zip(all_pdgs,all_pids)): |
2438 | if self.is_decay: |
2439 | incoming = [pdg[0]] |
2440 | outgoing = pdg[1:] |
2441 | |
2442 | === modified file 'madgraph/iolibs/export_v4.py' |
2443 | --- madgraph/iolibs/export_v4.py 2020-06-20 21:10:10 +0000 |
2444 | +++ madgraph/iolibs/export_v4.py 2020-08-13 08:01:43 +0000 |
2445 | @@ -166,6 +166,7 @@ |
2446 | self.mgme_dir = MG5DIR |
2447 | self.dir_path = dir_path |
2448 | self.model = None |
2449 | + self.beam_polarization = True |
2450 | |
2451 | self.opt = dict(self.default_opt) |
2452 | if opt: |
2453 | @@ -185,12 +186,48 @@ |
2454 | def export_processes(self, matrix_elements, fortran_model): |
2455 | """Make the switch between grouped and not grouped output""" |
2456 | |
2457 | + |
2458 | calls = 0 |
2459 | if isinstance(matrix_elements, group_subprocs.SubProcessGroupList): |
2460 | + # check handling for the polarization |
2461 | + for m in matrix_elements: |
2462 | + for me in m.get('matrix_elements'): |
2463 | + for p in me.get('processes'): |
2464 | + for pid in p.get_initial_ids(): |
2465 | + spin = p.get('model').get_particle(pid).get('spin') |
2466 | + if spin != 2: |
2467 | + self.beam_polarization = False |
2468 | + break |
2469 | + else: |
2470 | + continue |
2471 | + break |
2472 | + else: |
2473 | + continue |
2474 | + break |
2475 | + else: |
2476 | + continue |
2477 | + break |
2478 | + |
2479 | for (group_number, me_group) in enumerate(matrix_elements): |
2480 | calls = calls + self.generate_subprocess_directory(\ |
2481 | me_group, fortran_model, group_number) |
2482 | else: |
2483 | + # check handling for the polarization |
2484 | + self.beam_polarization = True |
2485 | + for me in matrix_elements.get_matrix_elements(): |
2486 | + for p in me.get('processes'): |
2487 | + for pid in p.get_initial_ids(): |
2488 | + spin = p.get('model').get_particle(pid).get('spin') |
2489 | + if spin != 2: |
2490 | + self.beam_polarization = False |
2491 | + break |
2492 | + else: |
2493 | + continue |
2494 | + break |
2495 | + else: |
2496 | + continue |
2497 | + break |
2498 | + |
2499 | for me_number, me in enumerate(matrix_elements.get_matrix_elements()): |
2500 | calls = calls + self.generate_subprocess_directory(\ |
2501 | me, fortran_model, me_number) |
2502 | @@ -2066,17 +2103,18 @@ |
2503 | |
2504 | template = """ |
2505 | %(python_information)s |
2506 | - subroutine smatrixhel(pdgs, npdg, p, ALPHAS, SCALE2, nhel, ANS) |
2507 | + subroutine smatrixhel(pdgs, procid, npdg, p, ALPHAS, SCALE2, nhel, ANS) |
2508 | IMPLICIT NONE |
2509 | |
2510 | CF2PY double precision, intent(in), dimension(0:3,npdg) :: p |
2511 | CF2PY integer, intent(in), dimension(npdg) :: pdgs |
2512 | +CF2PY integer, intent(in):: procid |
2513 | CF2PY integer, intent(in) :: npdg |
2514 | CF2PY double precision, intent(out) :: ANS |
2515 | CF2PY double precision, intent(in) :: ALPHAS |
2516 | CF2PY double precision, intent(in) :: SCALE2 |
2517 | integer pdgs(*) |
2518 | - integer npdg, nhel |
2519 | + integer npdg, nhel, procid |
2520 | double precision p(*) |
2521 | double precision ANS, ALPHAS, PI,SCALE2 |
2522 | include 'coupl.inc' |
2523 | @@ -2128,12 +2166,16 @@ |
2524 | end |
2525 | |
2526 | |
2527 | - subroutine get_pdg_order(PDG) |
2528 | + subroutine get_pdg_order(PDG, ALLPROC) |
2529 | IMPLICIT NONE |
2530 | CF2PY INTEGER, intent(out) :: PDG(%(nb_me)i,%(maxpart)i) |
2531 | +CF2PY INTEGER, intent(out) :: ALLPROC(%(nb_me)i) |
2532 | INTEGER PDG(%(nb_me)i,%(maxpart)i), PDGS(%(nb_me)i,%(maxpart)i) |
2533 | + INTEGER ALLPROC(%(nb_me)i),PIDs(%(nb_me)i) |
2534 | DATA PDGS/ %(pdgs)s / |
2535 | + DATA PIDS/ %(pids)s / |
2536 | PDG = PDGS |
2537 | + ALLPROC = PIDS |
2538 | RETURN |
2539 | END |
2540 | |
2541 | @@ -2151,31 +2193,33 @@ |
2542 | |
2543 | allids = self.prefix_info.keys() |
2544 | allprefix = [self.prefix_info[key][0] for key in allids] |
2545 | - min_nexternal = min([len(ids) for ids in allids]) |
2546 | - max_nexternal = max([len(ids) for ids in allids]) |
2547 | + min_nexternal = min([len(ids[0]) for ids in allids]) |
2548 | + max_nexternal = max([len(ids[0]) for ids in allids]) |
2549 | |
2550 | info = [] |
2551 | - for key, (prefix, tag) in self.prefix_info.items(): |
2552 | - info.append('#PY %s : %s # %s' % (tag, key, prefix)) |
2553 | + for (key, pid), (prefix, tag) in self.prefix_info.items(): |
2554 | + info.append('#PY %s : %s # %s %s' % (tag, key, prefix, pid)) |
2555 | |
2556 | |
2557 | text = [] |
2558 | for n_ext in range(min_nexternal, max_nexternal+1): |
2559 | - current = [ids for ids in allids if len(ids)==n_ext] |
2560 | - if not current: |
2561 | + current_id = [ids[0] for ids in allids if len(ids[0])==n_ext] |
2562 | + current_pid = [ids[1] for ids in allids if len(ids[0])==n_ext] |
2563 | + if not current_id: |
2564 | continue |
2565 | if min_nexternal != max_nexternal: |
2566 | if n_ext == min_nexternal: |
2567 | text.append(' if (npdg.eq.%i)then' % n_ext) |
2568 | else: |
2569 | text.append(' else if (npdg.eq.%i)then' % n_ext) |
2570 | - for ii,pdgs in enumerate(current): |
2571 | + for ii,pdgs in enumerate(current_id): |
2572 | + pid = current_pid[ii] |
2573 | condition = '.and.'.join(['%i.eq.pdgs(%i)' %(pdg, i+1) for i, pdg in enumerate(pdgs)]) |
2574 | if ii==0: |
2575 | - text.append( ' if(%s) then ! %i' % (condition, i)) |
2576 | + text.append( ' if(%s.and.(procid.le.0.or.procid.eq.%d)) then ! %i' % (condition, pid, i)) |
2577 | else: |
2578 | - text.append( ' else if(%s) then ! %i' % (condition,i)) |
2579 | - text.append(' call %ssmatrixhel(p, nhel, ans)' % self.prefix_info[pdgs][0]) |
2580 | + text.append( ' else if(%s.and.(procid.le.0.or.procid.eq.%d)) then ! %i' % (condition,pid,i)) |
2581 | + text.append(' call %ssmatrixhel(p, nhel, ans)' % self.prefix_info[(pdgs,pid)][0]) |
2582 | text.append(' endif') |
2583 | #close the function |
2584 | if min_nexternal != max_nexternal: |
2585 | @@ -2192,8 +2236,9 @@ |
2586 | 'maxpart': max_nexternal, |
2587 | 'nb_me': len(allids), |
2588 | 'pdgs': ','.join(str(pdg[i]) if i<len(pdg) else '0' |
2589 | - for i in range(max_nexternal) for pdg in allids), |
2590 | + for i in range(max_nexternal) for (pdg,pid) in allids), |
2591 | 'prefix':'\',\''.join(allprefix), |
2592 | + 'pids': ','.join(str(pid) for (pdg,pid) in allids), |
2593 | 'parameter_setup': '\n'.join(parameter_setup), |
2594 | } |
2595 | formatting['lenprefix'] = len(formatting['prefix']) |
2596 | @@ -2311,7 +2356,7 @@ |
2597 | raise Exception, '--prefix options supports only \'int\' and \'proc\'' |
2598 | for proc in matrix_element.get('processes'): |
2599 | ids = [l.get('id') for l in proc.get('legs_with_decays')] |
2600 | - self.prefix_info[tuple(ids)] = [proc_prefix, proc.get_tag()] |
2601 | + self.prefix_info[(tuple(ids), proc.get('id'))] = [proc_prefix, proc.get_tag()] |
2602 | |
2603 | calls = self.write_matrix_element_v4( |
2604 | writers.FortranWriter(filename), |
2605 | @@ -4186,11 +4231,24 @@ |
2606 | split_orders if len(split_orders)>0 else ['ALL_ORDERS']) |
2607 | replace_dict['jamp_lines'] = '\n'.join(jamp_lines) |
2608 | |
2609 | + if self.beam_polarization: |
2610 | + replace_dict['beam_polarization'] = """ |
2611 | + DO JJ=1,nincoming |
2612 | + IF(POL(JJ).NE.1d0.AND.NHEL(JJ,I).EQ.INT(SIGN(1d0,POL(JJ)))) THEN |
2613 | + T=T*ABS(POL(JJ)) |
2614 | + ELSE IF(POL(JJ).NE.1d0)THEN |
2615 | + T=T*(2d0-ABS(POL(JJ))) |
2616 | + ENDIF |
2617 | + ENDDO |
2618 | + """ |
2619 | + else: |
2620 | + replace_dict['beam_polarization'] = "" |
2621 | + |
2622 | + |
2623 | replace_dict['template_file'] = pjoin(_file_path, \ |
2624 | 'iolibs/template_files/%s' % self.matrix_file) |
2625 | replace_dict['template_file2'] = pjoin(_file_path, \ |
2626 | - 'iolibs/template_files/split_orders_helping_functions.inc') |
2627 | - |
2628 | + 'iolibs/template_files/split_orders_helping_functions.inc') |
2629 | s1,s2 = matrix_element.get_spin_state_initial() |
2630 | replace_dict['nb_spin_state1'] = s1 |
2631 | replace_dict['nb_spin_state2'] = s2 |
2632 | @@ -4297,14 +4355,21 @@ |
2633 | replace_dict['define_subdiag_lines'] = "" |
2634 | replace_dict['cutsdone'] = " cutsdone=.false.\n cutspassed=.false." |
2635 | |
2636 | + ncomb=matrix_element.get_helicity_combinations() |
2637 | + |
2638 | + replace_dict['ncomb']= ncomb |
2639 | + helicity_lines = self.get_helicity_lines(matrix_element) |
2640 | + replace_dict['helicity_lines'] = helicity_lines |
2641 | + |
2642 | if not isinstance(self, ProcessExporterFortranMEGroup): |
2643 | - ncomb=matrix_element.get_helicity_combinations() |
2644 | replace_dict['read_write_good_hel'] = self.read_write_good_hel(ncomb) |
2645 | else: |
2646 | replace_dict['read_write_good_hel'] = "" |
2647 | + # Extract helicity lines |
2648 | |
2649 | context = {'read_write_good_hel':True} |
2650 | |
2651 | + |
2652 | if writer: |
2653 | file = open(pjoin(_file_path, \ |
2654 | 'iolibs/template_files/auto_dsig_v4.inc')).read() |
2655 | |
2656 | === modified file 'madgraph/iolibs/template_files/auto_dsig_v4.inc' |
2657 | --- madgraph/iolibs/template_files/auto_dsig_v4.inc 2019-06-10 19:05:58 +0000 |
2658 | +++ madgraph/iolibs/template_files/auto_dsig_v4.inc 2020-08-13 08:01:43 +0000 |
2659 | @@ -156,3 +156,18 @@ |
2660 | %(read_write_good_hel)s |
2661 | |
2662 | ## } |
2663 | + |
2664 | + |
2665 | + integer FUNCTION GET_NHEL%(proc_id)s(hel, ipart) |
2666 | + implicit none |
2667 | + integer hel,i, ipart |
2668 | + Include 'nexternal.inc' |
2669 | + integer one_nhel(nexternal) |
2670 | + INTEGER NCOMB |
2671 | + PARAMETER ( NCOMB=%(ncomb)d) |
2672 | + INTEGER NHEL(NEXTERNAL,NCOMB) |
2673 | + %(helicity_lines)s |
2674 | + |
2675 | + get_nhel%(proc_id)s = nhel(ipart, hel) |
2676 | + return |
2677 | + end |
2678 | |
2679 | === modified file 'madgraph/iolibs/template_files/loop_optimized/check_sa_all.py.inc' |
2680 | --- madgraph/iolibs/template_files/loop_optimized/check_sa_all.py.inc 2016-10-20 23:12:29 +0000 |
2681 | +++ madgraph/iolibs/template_files/loop_optimized/check_sa_all.py.inc 2020-08-13 08:01:43 +0000 |
2682 | @@ -49,10 +49,10 @@ |
2683 | allmatrix2py.set_madloop_path(os.path.abspath(pjoin(root_path,'MadLoop5_resources'))) |
2684 | # List all processes available in this module |
2685 | |
2686 | -all_procs_available = [[pdg for pdg in proc_pdgs if pdg!=0] for proc_pdgs in allmatrix2py.get_pdg_order()] |
2687 | +all_procs_available = [[(pdg,pids[i]) for i, pdg in enumerate(proc_pdgs) if pdg!=0] for (proc_pdgs, pids) in allmatrix2py.get_pdg_order()] |
2688 | print "Available processes are:" |
2689 | for process_pdgs in all_procs_available: |
2690 | - print " --> %s"%str(process_pdgs) |
2691 | + print " --> %s: process id: %i "%str(process_pdgs[0], process_pdgs[1]) |
2692 | |
2693 | def invert_momenta(p): |
2694 | """ fortran/C-python do not order table in the same order""" |
2695 | @@ -62,7 +62,7 @@ |
2696 | |
2697 | # The kinematic configuration in the convention (E, px, py, pz) and with particles ordered as in the process definition. |
2698 | # This is the structure of this dictionary. |
2699 | -p= dict( (tuple(process_pdgs),[[None,]*4]*len(process_pdgs)) for process_pdgs in all_procs_available) |
2700 | +p= dict( (tuple(process_pdgs[0]),[[None,]*4]*len(process_pdgs[0])) for process_pdgs in all_procs_available) |
2701 | |
2702 | if (p.values()[0])[0][0] is None: |
2703 | if not os.path.isfile(pjoin(root_path,'PS.input')): |
2704 | @@ -120,7 +120,7 @@ |
2705 | # Choice of renormalization scale |
2706 | renormalization_scale = 91.188 |
2707 | |
2708 | - finite_loop_me, return_code = allmatrix2py.smatrixhel(pdgs=list(process_pdgs), |
2709 | + finite_loop_me, return_code = allmatrix2py.smatrixhel(pdgs=list(process_pdgs), procid=-1, |
2710 | p=P, alphas=alphas,scales2=renormalization_scale,nhel=nhel) |
2711 | |
2712 | print '* %-108s *'%' MadLoop evaluation for the process ' |
2713 | |
2714 | === modified file 'madgraph/iolibs/template_files/loop_optimized/loop_matrix_standalone.inc' |
2715 | --- madgraph/iolibs/template_files/loop_optimized/loop_matrix_standalone.inc 2017-07-31 22:08:40 +0000 |
2716 | +++ madgraph/iolibs/template_files/loop_optimized/loop_matrix_standalone.inc 2020-08-13 08:01:43 +0000 |
2717 | @@ -2737,11 +2737,14 @@ |
2718 | PARAMETER (NEXTERNAL=%(nexternal)d) |
2719 | INTEGER NSQUAREDSO |
2720 | PARAMETER (NSQUAREDSO=%(nSquaredSO)d) |
2721 | + %(get_nsqso_born)s |
2722 | C |
2723 | C ARGUMENTS |
2724 | C |
2725 | %(real_dp_format)s P(0:3,NEXTERNAL) |
2726 | - %(real_dp_format)s ANS(0:3,0:NSQUAREDSO) |
2727 | + INTEGER ANS_DIMENSION |
2728 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
2729 | + %(real_dp_format)s ANS(0:3,0:ANS_DIMENSION) |
2730 | INTEGER HEL, USERHEL |
2731 | common/%(proc_prefix)sUSERCHOICE/USERHEL |
2732 | C ---------- |
2733 | @@ -2764,7 +2767,10 @@ |
2734 | C ARGUMENTS |
2735 | C |
2736 | %(real_dp_format)s P(0:3,NEXTERNAL) |
2737 | - %(real_dp_format)s ANS(0:3,0:NSQUAREDSO) |
2738 | + %(get_nsqso_born)s |
2739 | + INTEGER ANS_DIMENSION |
2740 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
2741 | + %(real_dp_format)s ANS(0:3,0:ANS_DIMENSION) |
2742 | INTEGER HEL, RET_CODE |
2743 | %(real_dp_format)s PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
2744 | C |
2745 | @@ -2875,7 +2881,10 @@ |
2746 | C ARGUMENTS |
2747 | C |
2748 | %(real_dp_format)s P(0:3,NEXTERNAL) |
2749 | - %(real_dp_format)s ANS(0:3,0:NSQUAREDSO) |
2750 | + %(get_nsqso_born)s |
2751 | + INTEGER ANS_DIMENSION |
2752 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
2753 | + %(real_dp_format)s ANS(0:3,0:ANS_DIMENSION) |
2754 | %(real_dp_format)s PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
2755 | INTEGER RET_CODE |
2756 | C |
2757 | |
2758 | === modified file 'madgraph/iolibs/template_files/makefile_sa_f2py' |
2759 | --- madgraph/iolibs/template_files/makefile_sa_f2py 2017-09-25 21:30:36 +0000 |
2760 | +++ madgraph/iolibs/template_files/makefile_sa_f2py 2020-08-13 08:01:43 +0000 |
2761 | @@ -2,7 +2,8 @@ |
2762 | SHELL = /bin/bash |
2763 | LIBDIR = ../lib/ |
2764 | PROG = check |
2765 | -LINKLIBS = -L../lib/ -ldhelas -lmodel |
2766 | +LINKLIBS_ME = -L../lib/ -ldhelas -lmodel |
2767 | +LINKLIBS_ALL = -L../lib/ -lmatrix -ldhelas -lmodel |
2768 | LIBS = $(LIBDIR)libdhelas.$(libext) $(LIBDIR)libmodel.$(libext) |
2769 | PROCESS= allmatrix.o |
2770 | LIBRARY = libmatrix.a |
2771 | @@ -12,12 +13,19 @@ |
2772 | MENUM=2 |
2773 | endif |
2774 | |
2775 | - |
2776 | -allmatrix$(MENUM)py.so: $(LIBDIR)/$(LIBRARY) all_matrix.o |
2777 | - $(F2PY) --f77exec=$(FC) $(LINKLIBS) -lmatrix -c all_matrix.f */matrix.f -m allmatrix$(MENUM)py |
2778 | - |
2779 | - |
2780 | - |
2781 | +%$(MENUM)py.so: %/matrix.f |
2782 | + $(F2PY) --f77exec=$(FC) $(LINKLIBS_ME) -c $^ -m $(patsubst %/matrix.f,%$(MENUM)py,$^) |
2783 | + |
2784 | +all_matrix$(MENUM)py.so: $(LIBDIR)/$(LIBRARY) all_matrix.f |
2785 | + $(F2PY) --f77exec=$(FC) $(LINKLIBS_ALL) -c all_matrix.f -m all_matrix$(MENUM)py |
2786 | + |
2787 | + |
2788 | +allmatrix$(MENUM)py.so: $(patsubst %/matrix.f,%$(MENUM)py.so,$(wildcard */matrix.f)) all_matrix$(MENUM)py.so |
2789 | + for lib in $(patsubst %.so,%,$^); do \ |
2790 | + echo "from $$lib import *" >> allmatrix$(MENUM)py.py; \ |
2791 | + done |
2792 | + |
2793 | + |
2794 | $(LIBDIR)/$(LIBRARY): $(patsubst %.f,%.o,$(wildcard */matrix.f)) all_matrix.o |
2795 | $(call CREATELIB, $@, $^) |
2796 | |
2797 | |
2798 | === modified file 'madgraph/iolibs/template_files/matrix_madevent_group_v4.inc' |
2799 | --- madgraph/iolibs/template_files/matrix_madevent_group_v4.inc 2019-06-26 10:35:18 +0000 |
2800 | +++ madgraph/iolibs/template_files/matrix_madevent_group_v4.inc 2020-08-13 08:01:43 +0000 |
2801 | @@ -123,13 +123,7 @@ |
2802 | DO I=1,NCOMB |
2803 | IF (GOODHEL(I,IMIRROR) .OR. NTRY(IMIRROR).LE.MAXTRIES.or.(ISUM_HEL.NE.0).or.THIS_NTRY(IMIRROR).le.2) THEN |
2804 | T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) |
2805 | - DO JJ=1,nincoming |
2806 | - IF(POL(JJ).NE.1d0.AND.NHEL(JJ,I).EQ.INT(SIGN(1d0,POL(JJ)))) THEN |
2807 | - T=T*ABS(POL(JJ))*NB_SPIN_STATE_IN(JJ)/2d0 ! NB_SPIN_STATE(JJ)/2d0 is added for polarised beam |
2808 | - ELSE IF(POL(JJ).NE.1d0)THEN |
2809 | - T=T*(2d0-ABS(POL(JJ)))*NB_SPIN_STATE_IN(JJ)/2d0 |
2810 | - ENDIF |
2811 | - ENDDO |
2812 | + %(beam_polarization)s |
2813 | IF (ISUM_HEL.NE.0.and.DS_get_dim_status('Helicity').eq.0.and.ALLOW_HELICITY_GRID_ENTRIES) then |
2814 | call DS_add_entry('Helicity',I,T) |
2815 | endif |
2816 | @@ -174,14 +168,7 @@ |
2817 | I = HEL_PICKED |
2818 | |
2819 | T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) |
2820 | - |
2821 | - DO JJ=1,nincoming |
2822 | - IF(POL(JJ).NE.1d0.AND.NHEL(JJ,I).EQ.INT(SIGN(1d0,POL(JJ)))) THEN |
2823 | - T=T*ABS(POL(JJ)) |
2824 | - ELSE IF(POL(JJ).NE.1d0)THEN |
2825 | - T=T*(2d0-ABS(POL(JJ))) |
2826 | - ENDIF |
2827 | - ENDDO |
2828 | + %(beam_polarization)s |
2829 | c Always one helicity at a time |
2830 | ANS = T |
2831 | c Include the Jacobian from helicity sampling |
2832 | |
2833 | === modified file 'madgraph/iolibs/template_files/matrix_madevent_v4.inc' |
2834 | --- madgraph/iolibs/template_files/matrix_madevent_v4.inc 2019-09-26 11:09:58 +0000 |
2835 | +++ madgraph/iolibs/template_files/matrix_madevent_v4.inc 2020-08-13 08:01:43 +0000 |
2836 | @@ -103,13 +103,7 @@ |
2837 | DO I=1,NCOMB |
2838 | IF (GOODHEL(I) .OR. NTRY .LE. MAXTRIES.OR.(ISUM_HEL.NE.0)) THEN |
2839 | T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) |
2840 | - DO JJ=1,nincoming |
2841 | - IF(POL(JJ).NE.1d0.AND.NHEL(JJ,I).EQ.INT(SIGN(1d0,POL(JJ)))) THEN |
2842 | - T=T*ABS(POL(JJ))*NB_SPIN_STATE(JJ)/2d0 ! NB_SPIN_STATE(JJ)/2d0 is added for polarised beam |
2843 | - ELSE IF(POL(JJ).NE.1d0)THEN |
2844 | - T=T*(2d0-ABS(POL(JJ)))*NB_SPIN_STATE(JJ)/2d0 |
2845 | - ENDIF |
2846 | - ENDDO |
2847 | + %(beam_polarization)s |
2848 | IF (ISUM_HEL.NE.0) then |
2849 | call DS_add_entry('Helicity',I,T) |
2850 | endif |
2851 | @@ -153,13 +147,7 @@ |
2852 | I = HEL_PICKED |
2853 | |
2854 | T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) |
2855 | - DO JJ=1,nincoming |
2856 | - IF(POL(JJ).NE.1d0.AND.NHEL(JJ,I).EQ.INT(SIGN(1d0,POL(JJ)))) THEN |
2857 | - T=T*ABS(POL(JJ)) |
2858 | - ELSE IF(POL(JJ).NE.1d0)THEN |
2859 | - T=T*(2d0-ABS(POL(JJ))) |
2860 | - ENDIF |
2861 | - ENDDO |
2862 | + %(beam_polarization)s |
2863 | c Always one helicity at a time |
2864 | ANS = T |
2865 | c Include the Jacobian from helicity sampling |
2866 | |
2867 | === modified file 'madgraph/iolibs/template_files/super_auto_dsig_group_v4.inc' |
2868 | --- madgraph/iolibs/template_files/super_auto_dsig_group_v4.inc 2020-01-16 07:19:30 +0000 |
2869 | +++ madgraph/iolibs/template_files/super_auto_dsig_group_v4.inc 2020-08-13 08:01:43 +0000 |
2870 | @@ -506,5 +506,10 @@ |
2871 | C |
2872 | %(read_write_good_hel)s |
2873 | |
2874 | - |
2875 | - |
2876 | + integer function get_nhel(hel, partid) |
2877 | + implicit none |
2878 | + integer hel, partid |
2879 | + write(*,*) "do not support this type of pdf with group_subprocess=True" |
2880 | + stop 1 |
2881 | + return |
2882 | + end |
2883 | |
2884 | === modified file 'madgraph/loop/loop_exporters.py' |
2885 | --- madgraph/loop/loop_exporters.py 2020-06-20 21:10:10 +0000 |
2886 | +++ madgraph/loop/loop_exporters.py 2020-08-13 08:01:43 +0000 |
2887 | @@ -334,11 +334,12 @@ |
2888 | CALL SETMADLOOPPATH(PATH) |
2889 | END |
2890 | |
2891 | - subroutine smatrixhel(pdgs, npdg, p, ALPHAS, SCALES2, nhel, ANS, RETURNCODE) |
2892 | + subroutine smatrixhel(pdgs, procid, npdg, p, ALPHAS, SCALES2, nhel, ANS, RETURNCODE) |
2893 | IMPLICIT NONE |
2894 | |
2895 | CF2PY double precision, intent(in), dimension(0:3,npdg) :: p |
2896 | CF2PY integer, intent(in), dimension(npdg) :: pdgs |
2897 | +CF2PY integer, intent(in):: procid |
2898 | CF2PY integer, intent(in) :: npdg |
2899 | CF2PY double precision, intent(out) :: ANS |
2900 | CF2PY integer, intent(out) :: RETURNCODE |
2901 | @@ -346,22 +347,25 @@ |
2902 | CF2PY double precision, intent(in) :: SCALES2 |
2903 | |
2904 | integer pdgs(*) |
2905 | - integer npdg, nhel, RETURNCODE |
2906 | + integer npdg, nhel, RETURNCODE, procid |
2907 | double precision p(*) |
2908 | double precision ANS, ALPHAS, PI,SCALES2 |
2909 | - |
2910 | + 1 continue |
2911 | %(smatrixhel)s |
2912 | |
2913 | return |
2914 | end |
2915 | |
2916 | - subroutine get_pdg_order(OUT) |
2917 | + subroutine get_pdg_order(OUT, ALLPROC) |
2918 | IMPLICIT NONE |
2919 | CF2PY INTEGER, intent(out) :: OUT(%(nb_me)i,%(maxpart)i) |
2920 | - |
2921 | +CF2PY INTEGER, intent(out) :: ALLPROC(%(nb_me)i) |
2922 | INTEGER OUT(%(nb_me)i,%(maxpart)i), PDGS(%(nb_me)i,%(maxpart)i) |
2923 | + INTEGER ALLPROC(%(nb_me)i),PIDs(%(nb_me)i) |
2924 | DATA PDGS/ %(pdgs)s / |
2925 | + DATA PIDS/ %(pids)s / |
2926 | OUT=PDGS |
2927 | + ALLPROC = PIDS |
2928 | RETURN |
2929 | END |
2930 | |
2931 | @@ -378,31 +382,37 @@ |
2932 | |
2933 | allids = self.prefix_info.keys() |
2934 | allprefix = [self.prefix_info[key][0] for key in allids] |
2935 | - min_nexternal = min([len(ids) for ids in allids]) |
2936 | - max_nexternal = max([len(ids) for ids in allids]) |
2937 | + min_nexternal = min([len(ids[0]) for ids in allids]) |
2938 | + max_nexternal = max([len(ids[0]) for ids in allids]) |
2939 | |
2940 | info = [] |
2941 | - for key, (prefix, tag) in self.prefix_info.items(): |
2942 | - info.append('#PY %s : %s # %s' % (tag, key, prefix)) |
2943 | + for (key,pid), (prefix, tag) in self.prefix_info.items(): |
2944 | + info.append('#PY %s : %s # %s %s' % (tag, key, prefix, pid)) |
2945 | |
2946 | |
2947 | text = [] |
2948 | for n_ext in range(min_nexternal, max_nexternal+1): |
2949 | - current = [ids for ids in allids if len(ids)==n_ext] |
2950 | - if not current: |
2951 | + current_id = [ids[0] for ids in allids if len(ids[0])==n_ext] |
2952 | + current_pid = [ids[1] for ids in allids if len(ids[0])==n_ext] |
2953 | + if not current_id: |
2954 | continue |
2955 | if min_nexternal != max_nexternal: |
2956 | if n_ext == min_nexternal: |
2957 | text.append(' if (npdg.eq.%i)then' % n_ext) |
2958 | else: |
2959 | text.append(' else if (npdg.eq.%i)then' % n_ext) |
2960 | - for ii,pdgs in enumerate(current): |
2961 | + for ii,pdgs in enumerate(current_id): |
2962 | + pid = current_pid[ii] |
2963 | condition = '.and.'.join(['%i.eq.pdgs(%i)' %(pdg, i+1) for i, pdg in enumerate(pdgs)]) |
2964 | if ii==0: |
2965 | - text.append( ' if(%s) then ! %i' % (condition, i)) |
2966 | + text.append( ' if(%s.and.(procid.le.0.or.procid.eq.%d)) then ! %i' % (condition, pid, i)) |
2967 | else: |
2968 | - text.append( ' else if(%s) then ! %i' % (condition,i)) |
2969 | - text.append(' call %sget_me(p, ALPHAS, DSQRT(SCALES2), NHEL, ANS, RETURNCODE)' % self.prefix_info[pdgs][0]) |
2970 | + text.append( ' else if(%s.and.(procid.le.0.or.procid.eq.%d)) then ! %i' % (condition,pid,i)) |
2971 | + text.append(' call %sget_me(p, ALPHAS, DSQRT(SCALES2), NHEL, ANS, RETURNCODE)' % self.prefix_info[(pdgs,pid)][0]) |
2972 | + text.append( ' else if(procid.gt.0) then !') |
2973 | + text.append( ' procid = -1' ) |
2974 | + text.append( ' goto 1' ) |
2975 | + |
2976 | text.append(' endif') |
2977 | #close the function |
2978 | if min_nexternal != max_nexternal: |
2979 | @@ -422,9 +432,10 @@ |
2980 | 'nb_me': len(allids), |
2981 | 'pdgs': ','.join([str(pdg[i]) if i<len(pdg) else '0' |
2982 | for i in range(max_nexternal) \ |
2983 | - for pdg in allids]), |
2984 | + for (pdg,pid) in allids]), |
2985 | 'prefix':'\',\''.join(allprefix), |
2986 | 'parameter_setup': '\n'.join(parameter_setup), |
2987 | + 'pids': ','.join(str(pid) for (pdg,pid) in allids), |
2988 | } |
2989 | |
2990 | |
2991 | @@ -1023,7 +1034,7 @@ |
2992 | if 'prefix' in self.cmd_options and self.cmd_options['prefix'] in ['int','proc']: |
2993 | for proc in matrix_element.get('processes'): |
2994 | ids = [l.get('id') for l in proc.get('legs_with_decays')] |
2995 | - self.prefix_info[tuple(ids)] = [dict['proc_prefix'], proc.get_tag()] |
2996 | + self.prefix_info[tuple(ids),proc.get('id')] = [dict['proc_prefix'], proc.get_tag()] |
2997 | |
2998 | # The proc_id is used for MadEvent grouping, so none of our concern here |
2999 | # and it is simply set to an empty string. |
3000 | @@ -3013,7 +3024,6 @@ |
3001 | matrix_element.rep_dict['coef_construction']=replace_dict['coef_construction'] |
3002 | |
3003 | replace_dict['coef_merging']='\n'.join(coef_merging) |
3004 | - |
3005 | file = file % replace_dict |
3006 | number_of_calls = len(filter(lambda call: call.find('CALL LOOP') != 0, \ |
3007 | loop_CT_calls)) |
3008 | |
3009 | === modified file 'madgraph/various/banner.py' |
3010 | --- madgraph/various/banner.py 2020-05-25 21:16:05 +0000 |
3011 | +++ madgraph/various/banner.py 2020-08-13 08:01:43 +0000 |
3012 | @@ -24,6 +24,7 @@ |
3013 | import math |
3014 | import StringIO |
3015 | import itertools |
3016 | +import time |
3017 | |
3018 | |
3019 | pjoin = os.path.join |
3020 | @@ -2896,10 +2897,10 @@ |
3021 | self.add_param("nevents", 10000) |
3022 | self.add_param("iseed", 0) |
3023 | 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") |
3024 | - self.add_param("lpp1", 1, fortran_name="lpp(1)", allowed=[-1,1,0,2,3,9, -2,-3], |
3025 | - 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') |
3026 | - self.add_param("lpp2", 1, fortran_name="lpp(2)", allowed=[-1,1,0,2,3,9], |
3027 | - 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') |
3028 | + self.add_param("lpp1", 1, fortran_name="lpp(1)", allowed=[-1,1,0,2,3,4,9,-2,-3,-4], |
3029 | + 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') |
3030 | + self.add_param("lpp2", 1, fortran_name="lpp(2)", allowed=[-1,1,0,2,3,4,9,-3,-4], |
3031 | + 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') |
3032 | self.add_param("ebeam1", 6500.0, fortran_name="ebeam(1)") |
3033 | self.add_param("ebeam2", 6500.0, fortran_name="ebeam(2)") |
3034 | self.add_param("polbeam1", 0.0, fortran_name="pb1", hidden=True, |
3035 | @@ -3182,7 +3183,6 @@ |
3036 | if self['xqcut'] > 0: |
3037 | if self['ickkw'] == 0: |
3038 | logger.error('xqcut>0 but ickkw=0. Potentially not fully consistent setup. Be carefull') |
3039 | - import time |
3040 | time.sleep(5) |
3041 | if self['drjj'] != 0: |
3042 | if 'drjj' in self.user_set: |
3043 | @@ -3212,14 +3212,16 @@ |
3044 | |
3045 | # check if lpp = |
3046 | for i in [1,2]: |
3047 | - if self['lpp%s' % i ] == 3 and self['dsqrt_q2fact%s'%i] > 4: |
3048 | - 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 + \ |
3049 | - "For EPA this number should be small (for HERA prediction it should be 2 at most)") |
3050 | - if self['lpp%s' % i ] == 2 and self['dsqrt_q2fact%s'%i] == 91.188: |
3051 | - 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) |
3052 | + if abs(self['lpp%s' % i ]) in [3,4] and self['dsqrt_q2fact%s'%i] == 91.188: |
3053 | + 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) |
3054 | + time.sleep(5) |
3055 | |
3056 | + if abs(self['lpp%s' % i ]) == 2 and self['dsqrt_q2fact%s'%i] == 91.188: |
3057 | + 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) |
3058 | + time.sleep(5) |
3059 | + |
3060 | # if both lpp1/2 are on PA mode -> force fixed factorization scale |
3061 | - if self['lpp1'] in [2, 3] and self['lpp2'] in [2, 3] and not self['fixed_fac_scale']: |
3062 | + if abs(self['lpp1']) in [2, 3,4] and abs(self['lpp2']) in [2, 3,4] and not self['fixed_fac_scale']: |
3063 | raise InvalidRunCard("Having both beam in elastic photon mode requires fixec_fac_scale to be on True [since this is use as cutoff]") |
3064 | |
3065 | |
3066 | @@ -3293,8 +3295,11 @@ |
3067 | process 1->N all cut set on off. |
3068 | loop_induced -> MC over helicity |
3069 | e+ e- beam -> lpp:0 ebeam:500 |
3070 | + P X beam (X: neutrino, lepton, EWA) |
3071 | + support of EWA beam [ZW] (from proton by default -> 100TeV) |
3072 | p p beam -> set maxjetflavor automatically |
3073 | more than one multiplicity: ickkw=1 xqcut=30 use_syst=F |
3074 | + interference module -> no systematics |
3075 | """ |
3076 | |
3077 | if proc_characteristic['loop_induced']: |
3078 | @@ -3318,11 +3323,87 @@ |
3079 | beam_id.add(leg['id']) |
3080 | |
3081 | if any(i in beam_id for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21,22]): |
3082 | - maxjetflavor = max([4]+[abs(i) for i in beam_id if -7< i < 7]) |
3083 | + maxjetflavor = max([3]+[abs(i) for i in beam_id if -7< i < 7]) |
3084 | self['maxjetflavor'] = maxjetflavor |
3085 | self['asrwgtflavor'] = maxjetflavor |
3086 | |
3087 | - if any(i in beam_id for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21,22]): |
3088 | + # check EWA case -> for pp at 100TeV or EWA-lepton (1+1 TeV) |
3089 | + if any(i in beam_id for i in [23,24,-24]): |
3090 | + |
3091 | + self['use_syst'] = False |
3092 | + self['nhel'] = 1 |
3093 | + |
3094 | + # check where the W/Z are (on which beam) |
3095 | + EWA_in1 = any(i in beam_id_split[0] for i in [23,24,-24]) |
3096 | + EWA_in2 = any(i in beam_id_split[1] for i in [23,24,-24]) |
3097 | + p_in1 = any(i in beam_id_split[0] for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21]) |
3098 | + p_in2 = any(i in beam_id_split[1] for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21]) |
3099 | + |
3100 | + |
3101 | + # case1 W W collision |
3102 | + if EWA_in1 and EWA_in2: |
3103 | + self['lpp1'] = 2 |
3104 | + self['lpp2'] = 2 |
3105 | + self['ebeam1'] = '50k' |
3106 | + self['ebeam2'] = '50k' |
3107 | + # case2 p W collision |
3108 | + elif p_in1 and EWA_in2: |
3109 | + self['lpp1'] = 1 |
3110 | + self['lpp2'] = 2 |
3111 | + self['ebeam1'] = '50k' |
3112 | + self['ebeam2'] = '50k' |
3113 | + # case3 W p collision |
3114 | + elif p_in2 and EWA_in1: |
3115 | + self['lpp1'] = 2 |
3116 | + self['lpp2'] = 1 |
3117 | + self['ebeam1'] = '50k' |
3118 | + self['ebeam2'] = '50k' |
3119 | + # case3 W X collision (mainly for X=lepton) |
3120 | + elif EWA_in1: |
3121 | + self['ebeam1'] = '1k' |
3122 | + self['ebeam2'] = '1k' |
3123 | + if 11 in beam_id_split[1]: |
3124 | + self['lpp1'] = -3 |
3125 | + self['lpp2'] = 0 |
3126 | + elif -11 in beam_id_split[1]: |
3127 | + self['lpp1'] = 3 |
3128 | + self['lpp2'] = 0 |
3129 | + elif 13 in beam_id_split[1]: |
3130 | + self['lpp1'] = -4 |
3131 | + self['lpp2'] = 0 |
3132 | + elif -13 in beam_id_split[1]: |
3133 | + self['lpp1'] = 4 |
3134 | + self['lpp2'] = 0 |
3135 | + else: |
3136 | + self['lpp1'] = 0 |
3137 | + self['lpp2'] = 0 |
3138 | + # case3 X W collision (mainly for X=lepton) |
3139 | + elif EWA_in2: |
3140 | + self['ebeam1'] = '1k' |
3141 | + self['ebeam2'] = '1k' |
3142 | + if 11 in beam_id_split[0]: |
3143 | + self['lpp1'] = 0 |
3144 | + self['lpp2'] = -3 |
3145 | + elif -11 in beam_id_split[0]: |
3146 | + self['lpp1'] = 0 |
3147 | + self['lpp2'] = 3 |
3148 | + elif 13 in beam_id_split[0]: |
3149 | + self['lpp1'] = 0 |
3150 | + self['lpp2'] = -4 |
3151 | + elif -13 in beam_id_split[0]: |
3152 | + self['lpp1'] = 0 |
3153 | + self['lpp2'] = 4 |
3154 | + else: |
3155 | + self['lpp1'] = 0 |
3156 | + self['lpp2'] = 0 |
3157 | + # anything else should it happen? |
3158 | + else: |
3159 | + self['nhel'] = 1 |
3160 | + self['lpp1'] = 0 |
3161 | + self['lpp2'] = 0 |
3162 | + self['ebeam1'] = '1k' |
3163 | + self['ebeam2'] = '1k' |
3164 | + elif any(i in beam_id for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21,22]): |
3165 | # check for e p collision |
3166 | if any(id in beam_id for id in [11,-11,13,-13]): |
3167 | self.display_block.append('beam_pol') |
3168 | @@ -3336,20 +3417,25 @@ |
3169 | self['lpp2'] = 0 |
3170 | self['ebeam1'] = '6500' |
3171 | self['ebeam2'] = '1k' |
3172 | - |
3173 | - elif 11 in beam_id or -11 in beam_id: |
3174 | + |
3175 | + elif any(id in beam_id for id in [11,-11,13,-13]): |
3176 | self['lpp1'] = 0 |
3177 | self['lpp2'] = 0 |
3178 | self['ebeam1'] = 500 |
3179 | self['ebeam2'] = 500 |
3180 | self['use_syst'] = False |
3181 | + if beam_id_split[0] == beam_id_split[1]: |
3182 | + self.display_block.append('ecut') |
3183 | self.display_block.append('beam_pol') |
3184 | - self.display_block.append('ecut') |
3185 | + |
3186 | + if beam_id_split[0] == beam_id_split[1]: |
3187 | + self.display_block.append('ecut') |
3188 | else: |
3189 | self['lpp1'] = 0 |
3190 | self['lpp2'] = 0 |
3191 | self['use_syst'] = False |
3192 | - self.display_block.append('beam_pol') |
3193 | + self.display_block.append('beam_pol') |
3194 | + self.display_block.append('ecut') |
3195 | |
3196 | # automatic polarisation of the beam if neutrino beam |
3197 | if any(id in beam_id for id in [12,-12,14,-14,16,-16]): |
3198 | @@ -3358,25 +3444,25 @@ |
3199 | self['lpp1'] = 0 |
3200 | self['ebeam1'] = '1k' |
3201 | self['polbeam1'] = -100 |
3202 | - if not all(id in beam_id_split[0] for id in [12,14,16]): |
3203 | - logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam1].') |
3204 | + if not all(id in [12,14,16] for id in beam_id_split[0]): |
3205 | + logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam1]. %s') |
3206 | elif any(id in beam_id_split[0] for id in [-12,-14,-16]): |
3207 | self['lpp1'] = 0 |
3208 | self['ebeam1'] = '1k' |
3209 | self['polbeam1'] = 100 |
3210 | - if not all(id in beam_id_split[0] for id in [-12,-14,-16]): |
3211 | + if not all(id in [-12,-14,-16] for id in beam_id_split[0]): |
3212 | logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam1].') |
3213 | if any(id in beam_id_split[1] for id in [12,14,16]): |
3214 | self['lpp2'] = 0 |
3215 | self['ebeam2'] = '1k' |
3216 | self['polbeam2'] = -100 |
3217 | - if not all(id in beam_id_split[1] for id in [12,14,16]): |
3218 | + if not all(id in [12,14,16] for id in beam_id_split[1]): |
3219 | logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam2].') |
3220 | if any(id in beam_id_split[1] for id in [-12,-14,-16]): |
3221 | self['lpp2'] = 0 |
3222 | self['ebeam2'] = '1k' |
3223 | self['polbeam2'] = 100 |
3224 | - if not all(id in beam_id_split[1] for id in [-12,-14,-16]): |
3225 | + if not all(id in [-12,-14,-16] for id in beam_id_split[1]): |
3226 | logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam2].') |
3227 | |
3228 | # Check if need matching |
3229 | @@ -4285,7 +4371,7 @@ |
3230 | maxjetflavor = max([4]+[abs(i) for i in beam_id if -7< i < 7]) |
3231 | self['maxjetflavor'] = maxjetflavor |
3232 | pass |
3233 | - elif 11 in beam_id or -11 in beam_id: |
3234 | + elif any(id in beam_id for id in [11,-11,13,-13]): |
3235 | self['lpp1'] = 0 |
3236 | self['lpp2'] = 0 |
3237 | self['ebeam1'] = 500 |
3238 | |
3239 | === modified file 'madgraph/various/cluster.py' |
3240 | --- madgraph/various/cluster.py 2017-11-17 14:15:01 +0000 |
3241 | +++ madgraph/various/cluster.py 2020-08-13 08:01:43 +0000 |
3242 | @@ -87,6 +87,7 @@ |
3243 | """Basic Class for all cluster type submission""" |
3244 | name = 'mother class' |
3245 | identifier_length = 14 |
3246 | + allow_arrays = False |
3247 | |
3248 | def __init__(self,*args, **opts): |
3249 | """Init the cluster""" |
3250 | @@ -97,6 +98,8 @@ |
3251 | self.submitted_dirs = [] #HTCaaS |
3252 | self.submitted_exes = [] #HTCaaS |
3253 | self.submitted_args = [] #HTCaaS |
3254 | + self.waiting_array_job = [] # for job array submission |
3255 | + |
3256 | |
3257 | if 'cluster_queue' in opts: |
3258 | self.cluster_queue = opts['cluster_queue'] |
3259 | @@ -122,7 +125,6 @@ |
3260 | """How to make one submission. Return status id on the cluster.""" |
3261 | raise NotImplemented, 'No implementation of how to submit a job to cluster \'%s\'' % self.name |
3262 | |
3263 | - |
3264 | @store_input() |
3265 | def submit2(self, prog, argument=[], cwd=None, stdout=None, stderr=None, |
3266 | log=None, input_files=[], output_files=[], required_output=[], |
3267 | @@ -199,10 +201,15 @@ |
3268 | |
3269 | def cluster_submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, |
3270 | log=None, input_files=[], output_files=[], required_output=[], |
3271 | - nb_submit=0, packet_member=None): |
3272 | + nb_submit=0, packet_member=None, allow_array=False): |
3273 | """This function wrap the cluster submition with cluster independant |
3274 | method should not be overwritten (but for DAG type submission)""" |
3275 | - |
3276 | + |
3277 | + if allow_array and self.allow_array: |
3278 | + self.add_into_array(prog, argument, cwd, stdout, stderr, log, input_files, |
3279 | + output_files, required_output, nb_submit) |
3280 | + return None |
3281 | + |
3282 | id = self.submit2(prog, argument, cwd, stdout, stderr, log, input_files, |
3283 | output_files, required_output, nb_submit) |
3284 | |
3285 | @@ -458,7 +465,27 @@ |
3286 | self.submit2(**args) |
3287 | return 'resubmit' |
3288 | return 'done' |
3289 | - |
3290 | + |
3291 | + def add_into_array(self,*args, **opts): |
3292 | + """ """ |
3293 | + raise NotImplemented, 'No implementation of how to submit with a job array to cluster \'%s\'' % self.name |
3294 | + |
3295 | + def submit_array(self, list_of_args): |
3296 | + """ """ |
3297 | + raise NotImplemented, 'No implementation of how to submit with a job array to cluster \'%s\'' % self.name |
3298 | + |
3299 | + |
3300 | + def release_array(self): |
3301 | + |
3302 | + if not self.allow_arrays: |
3303 | + if self.waiting_array_jobs: |
3304 | + raise NotImplemented, 'No implementation of how to submit with a job array to cluster \'%s\'' % self.name |
3305 | + return None |
3306 | + elif self.waiting_array_jobs: |
3307 | + return self.submit_array(self.waiting_array_jobs) |
3308 | + else: |
3309 | + return None |
3310 | + |
3311 | @check_interupt() |
3312 | def launch_and_wait(self, prog, argument=[], cwd=None, stdout=None, |
3313 | stderr=None, log=None, required_output=[], nb_submit=0, |
3314 | @@ -1648,6 +1675,7 @@ |
3315 | running_tag = ['R', 'CG'] |
3316 | complete_tag = ['C'] |
3317 | identifier_length = 8 |
3318 | + allow_arrays = True |
3319 | |
3320 | @multiple_try() |
3321 | def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None, |
3322 | @@ -1692,6 +1720,42 @@ |
3323 | self.submitted_ids.append(id) |
3324 | return id |
3325 | |
3326 | + def add_into_array(prog, argument, cwd, stdout, stderr, log, input_files, |
3327 | + output_files, required_output, nb_submit): |
3328 | + |
3329 | + self.waiting_array_job.append((prog, argument, cwd, stdout, stderr, log, input_files, |
3330 | + output_files, required_output, nb_submit)) |
3331 | + |
3332 | + |
3333 | + def submit_array(self, waiting_array_jobs): |
3334 | + """write a temporary file in order to submit an array of jobs""" |
3335 | + |
3336 | + for arg in waiting_array_jobs): |
3337 | + print( arg) |
3338 | + misc.sprint(waiting_array_jobs) |
3339 | + template= """ |
3340 | +#SBATCH --job-name=%(job_name)s # Job name |
3341 | +#SBATCH --mail-type=NONE # Mail events (NONE, BEGIN, END, FAIL, ALL) |
3342 | +#SBATCH --mail-user=gatorlink@ufl.edu # Where to send mail |
3343 | +#SBATCH --nodes=1 # Use one node |
3344 | +#SBATCH --ntasks=1 # Run a single task |
3345 | +#SBATCH --output=array_%A-%a.out # Standard output and error log |
3346 | +#SBATCH --array=1-5 # Array range |
3347 | + """ |
3348 | + |
3349 | + import os |
3350 | + import tempfile |
3351 | + |
3352 | + fd, path = tempfile.mkstemp() |
3353 | + try: |
3354 | + with os.fdopen(fd, 'w') as tmp: |
3355 | + # do stuff with temp file |
3356 | + tmp.write('stuff') |
3357 | + finally: |
3358 | + os.remove(path) |
3359 | + |
3360 | + |
3361 | + |
3362 | @multiple_try() |
3363 | def control_one_job(self, id): |
3364 | """ control the status of a single job with it's cluster id """ |
3365 | |
3366 | === modified file 'mg5decay/decay_objects.py' |
3367 | --- mg5decay/decay_objects.py 2018-06-01 08:46:21 +0000 |
3368 | +++ mg5decay/decay_objects.py 2020-08-13 08:01:43 +0000 |
3369 | @@ -4086,15 +4086,28 @@ |
3370 | # Evaluate the coupling strength |
3371 | vertex = model.get('interaction_dict')[abs(vert.get('id'))] |
3372 | lorentz_factor = 0 |
3373 | + |
3374 | + for fct in model['functions']: |
3375 | + if ';' in fct.expr: |
3376 | + raise Exception('; is not allowed in function_library') |
3377 | + exec("mdl_%s = lambda %s: %s" %(fct.name, ','.join( fct.arguments), fct.expr)) |
3378 | + exec("%s = lambda %s: %s" %(fct.name, ','.join( fct.arguments), fct.expr)) |
3379 | + |
3380 | for key, v in vertex['couplings'].items(): |
3381 | if not hasattr(model, 'lorentz_dict'): |
3382 | model.lorentz_dict = dict([(l.name, l) for l in model['lorentz']]) |
3383 | self.init_regular_expression() |
3384 | + |
3385 | + lorentz = model.lorentz_dict[vertex['lorentz'][key[1]]] |
3386 | + structure = lorentz.structure |
3387 | + if hasattr(lorentz, 'formfactors') and lorentz.formfactors: |
3388 | + for ff in lorentz.formfactors: |
3389 | + structure = structure.replace(ff.name, '(%s)' % ff.value) |
3390 | |
3391 | - structure = model.lorentz_dict[vertex['lorentz'][key[1]]].structure |
3392 | new_structure = self.lor_pattern.sub(self.simplify_lorentz, |
3393 | structure) |
3394 | - lor_value = eval(new_structure % q_dict_lor) |
3395 | + |
3396 | + lor_value = eval(new_structure % q_dict_lor, locals(), globals()) |
3397 | if lor_value == 0: |
3398 | new_structure = new_structure.replace('-','+') |
3399 | lor_value = eval(new_structure % q_dict_lor) |
3400 | @@ -4131,6 +4144,12 @@ |
3401 | # A quick estimate of the next-level decay of a off-shell decay |
3402 | # Consider all legs are onshell. |
3403 | else: |
3404 | + for fct in model['functions']: |
3405 | + if ';' in fct.expr: |
3406 | + raise Exception('; is not allowed in function_library') |
3407 | + exec("mdl_%s = lambda %s: %s" %(fct.name, ','.join( fct.arguments), fct.expr)) |
3408 | + exec("%s = lambda %s: %s" %(fct.name, ','.join( fct.arguments), fct.expr)) |
3409 | + |
3410 | M = abs(eval(ini_part.get('mass'))) |
3411 | # The avg_E is lower by one more particle in the next-level. |
3412 | avg_E = (M/(len(self.get_final_legs())+1.)) |
3413 | |
3414 | === modified file 'tests/acceptance_tests/test_cmd_reweight.py' |
3415 | --- tests/acceptance_tests/test_cmd_reweight.py 2020-06-20 21:10:10 +0000 |
3416 | +++ tests/acceptance_tests/test_cmd_reweight.py 2020-08-13 08:01:43 +0000 |
3417 | @@ -212,8 +212,12 @@ |
3418 | ff = open(pjoin(self.run_dir, 'Cards', 'reweight_card.dat'),'w') |
3419 | ff.write(cmd_lines) |
3420 | ff.close() |
3421 | - |
3422 | - with misc.stdchannel_redirected(sys.stdout, os.devnull): |
3423 | + mad_logger = logging.getLogger('madgraph') |
3424 | + |
3425 | + if mad_logger.level > 20: |
3426 | + with misc.stdchannel_redirected(sys.stdout, os.devnull): |
3427 | + me_cmd.run_cmd('reweight run_01 --from_cards') |
3428 | + else: |
3429 | me_cmd.run_cmd('reweight run_01 --from_cards') |
3430 | |
3431 | lhe = lhe_parser.EventFile(pjoin(self.run_dir,'Events','run_01', 'events.lhe.gz')) |
3432 | @@ -242,9 +246,12 @@ |
3433 | ff.write(cmd_lines) |
3434 | ff.close() |
3435 | |
3436 | - if 1: #with misc.stdchannel_redirected(sys.stdout, os.devnull): |
3437 | + mad_logger = logging.getLogger('madgraph') |
3438 | + if mad_logger.level > 20: |
3439 | + with misc.stdchannel_redirected(sys.stdout, os.devnull): |
3440 | + me_cmd.run_cmd('reweight run_01 --from_cards') |
3441 | + else: |
3442 | me_cmd.run_cmd('reweight run_01 --from_cards') |
3443 | - |
3444 | #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] |
3445 | 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] |
3446 | lhe = lhe_parser.EventFile(pjoin(self.run_dir,'Events','run_01', 'rwgt_events_tree_rwgt_1.lhe.gz')) |
3447 | |
3448 | === modified file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%loop_matrix.f' |
3449 | --- 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 |
3450 | +++ 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 |
3451 | @@ -2553,11 +2553,14 @@ |
3452 | PARAMETER (NEXTERNAL=3) |
3453 | INTEGER NSQUAREDSO |
3454 | PARAMETER (NSQUAREDSO=1) |
3455 | + INCLUDE 'nsqso_born.inc' |
3456 | C |
3457 | C ARGUMENTS |
3458 | C |
3459 | REAL*8 P(0:3,NEXTERNAL) |
3460 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3461 | + INTEGER ANS_DIMENSION |
3462 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3463 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3464 | INTEGER HEL, USERHEL |
3465 | COMMON/USERCHOICE/USERHEL |
3466 | C ---------- |
3467 | @@ -2581,7 +2584,10 @@ |
3468 | C ARGUMENTS |
3469 | C |
3470 | REAL*8 P(0:3,NEXTERNAL) |
3471 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3472 | + INCLUDE 'nsqso_born.inc' |
3473 | + INTEGER ANS_DIMENSION |
3474 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3475 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3476 | INTEGER HEL, RET_CODE |
3477 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3478 | C |
3479 | @@ -2698,7 +2704,10 @@ |
3480 | C ARGUMENTS |
3481 | C |
3482 | REAL*8 P(0:3,NEXTERNAL) |
3483 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3484 | + INCLUDE 'nsqso_born.inc' |
3485 | + INTEGER ANS_DIMENSION |
3486 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3487 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3488 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3489 | INTEGER RET_CODE |
3490 | C |
3491 | |
3492 | === modified file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%loop_matrix.f' |
3493 | --- 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 |
3494 | +++ 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 |
3495 | @@ -2553,11 +2553,14 @@ |
3496 | PARAMETER (NEXTERNAL=3) |
3497 | INTEGER NSQUAREDSO |
3498 | PARAMETER (NSQUAREDSO=1) |
3499 | + INCLUDE 'nsqso_born.inc' |
3500 | C |
3501 | C ARGUMENTS |
3502 | C |
3503 | REAL*8 P(0:3,NEXTERNAL) |
3504 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3505 | + INTEGER ANS_DIMENSION |
3506 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3507 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3508 | INTEGER HEL, USERHEL |
3509 | COMMON/USERCHOICE/USERHEL |
3510 | C ---------- |
3511 | @@ -2581,7 +2584,10 @@ |
3512 | C ARGUMENTS |
3513 | C |
3514 | REAL*8 P(0:3,NEXTERNAL) |
3515 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3516 | + INCLUDE 'nsqso_born.inc' |
3517 | + INTEGER ANS_DIMENSION |
3518 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3519 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3520 | INTEGER HEL, RET_CODE |
3521 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3522 | C |
3523 | @@ -2698,7 +2704,10 @@ |
3524 | C ARGUMENTS |
3525 | C |
3526 | REAL*8 P(0:3,NEXTERNAL) |
3527 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3528 | + INCLUDE 'nsqso_born.inc' |
3529 | + INTEGER ANS_DIMENSION |
3530 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3531 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3532 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3533 | INTEGER RET_CODE |
3534 | C |
3535 | |
3536 | === modified file 'tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/auto_dsig.f' |
3537 | --- tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/auto_dsig.f 2019-06-17 21:29:56 +0000 |
3538 | +++ tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/auto_dsig.f 2020-08-13 08:01:43 +0000 |
3539 | @@ -174,3 +174,33 @@ |
3540 | |
3541 | |
3542 | |
3543 | + |
3544 | + INTEGER FUNCTION GET_NHEL1(HEL, IPART) |
3545 | + IMPLICIT NONE |
3546 | + INTEGER HEL,I, IPART |
3547 | + INCLUDE 'nexternal.inc' |
3548 | + INTEGER ONE_NHEL(NEXTERNAL) |
3549 | + INTEGER NCOMB |
3550 | + PARAMETER ( NCOMB=16) |
3551 | + INTEGER NHEL(NEXTERNAL,NCOMB) |
3552 | + DATA (NHEL(I, 1),I=1,4) / 1,-1,-1, 1/ |
3553 | + DATA (NHEL(I, 2),I=1,4) / 1,-1,-1,-1/ |
3554 | + DATA (NHEL(I, 3),I=1,4) / 1,-1, 1, 1/ |
3555 | + DATA (NHEL(I, 4),I=1,4) / 1,-1, 1,-1/ |
3556 | + DATA (NHEL(I, 5),I=1,4) / 1, 1,-1, 1/ |
3557 | + DATA (NHEL(I, 6),I=1,4) / 1, 1,-1,-1/ |
3558 | + DATA (NHEL(I, 7),I=1,4) / 1, 1, 1, 1/ |
3559 | + DATA (NHEL(I, 8),I=1,4) / 1, 1, 1,-1/ |
3560 | + DATA (NHEL(I, 9),I=1,4) /-1,-1,-1, 1/ |
3561 | + DATA (NHEL(I, 10),I=1,4) /-1,-1,-1,-1/ |
3562 | + DATA (NHEL(I, 11),I=1,4) /-1,-1, 1, 1/ |
3563 | + DATA (NHEL(I, 12),I=1,4) /-1,-1, 1,-1/ |
3564 | + DATA (NHEL(I, 13),I=1,4) /-1, 1,-1, 1/ |
3565 | + DATA (NHEL(I, 14),I=1,4) /-1, 1,-1,-1/ |
3566 | + DATA (NHEL(I, 15),I=1,4) /-1, 1, 1, 1/ |
3567 | + DATA (NHEL(I, 16),I=1,4) /-1, 1, 1,-1/ |
3568 | + |
3569 | + GET_NHEL1 = NHEL(IPART, HEL) |
3570 | + RETURN |
3571 | + END |
3572 | + |
3573 | |
3574 | === modified file 'tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/matrix1.f' |
3575 | --- tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/matrix1.f 2020-06-20 21:10:10 +0000 |
3576 | +++ tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/matrix1.f 2020-08-13 08:01:43 +0000 |
3577 | @@ -150,6 +150,7 @@ |
3578 | $ .LE.MAXTRIES.OR.(ISUM_HEL.NE.0).OR.THIS_NTRY(IMIRROR).LE.2) |
3579 | $ THEN |
3580 | T=MATRIX1(P ,NHEL(1,I),JC(1)) |
3581 | + |
3582 | DO JJ=1,NINCOMING |
3583 | IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ)) |
3584 | $ )) THEN |
3585 | @@ -158,6 +159,7 @@ |
3586 | T=T*(2D0-ABS(POL(JJ)))*NB_SPIN_STATE_IN(JJ)/2D0 |
3587 | ENDIF |
3588 | ENDDO |
3589 | + |
3590 | IF (ISUM_HEL.NE.0.AND.DS_GET_DIM_STATUS('Helicity') |
3591 | $ .EQ.0.AND.ALLOW_HELICITY_GRID_ENTRIES) THEN |
3592 | CALL DS_ADD_ENTRY('Helicity',I,T) |
3593 | @@ -216,6 +218,7 @@ |
3594 | T=T*(2D0-ABS(POL(JJ))) |
3595 | ENDIF |
3596 | ENDDO |
3597 | + |
3598 | C Always one helicity at a time |
3599 | ANS = T |
3600 | C Include the Jacobian from helicity sampling |
3601 | |
3602 | === modified file 'tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/super_auto_dsig.f' |
3603 | --- tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/super_auto_dsig.f 2020-01-19 16:22:42 +0000 |
3604 | +++ tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/super_auto_dsig.f 2020-08-13 08:01:43 +0000 |
3605 | @@ -595,6 +595,12 @@ |
3606 | |
3607 | |
3608 | |
3609 | - |
3610 | - |
3611 | + INTEGER FUNCTION GET_NHEL(HEL, PARTID) |
3612 | + IMPLICIT NONE |
3613 | + INTEGER HEL, PARTID |
3614 | + WRITE(*,*) 'do not support this type of pdf with' |
3615 | + $ //' group_subprocess=True' |
3616 | + STOP 1 |
3617 | + RETURN |
3618 | + END |
3619 | |
3620 | |
3621 | === modified file 'tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/auto_dsig.f' |
3622 | --- tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/auto_dsig.f 2019-06-17 21:29:56 +0000 |
3623 | +++ tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/auto_dsig.f 2020-08-13 08:01:43 +0000 |
3624 | @@ -221,3 +221,33 @@ |
3625 | |
3626 | |
3627 | |
3628 | + |
3629 | + INTEGER FUNCTION GET_NHEL(HEL, IPART) |
3630 | + IMPLICIT NONE |
3631 | + INTEGER HEL,I, IPART |
3632 | + INCLUDE 'nexternal.inc' |
3633 | + INTEGER ONE_NHEL(NEXTERNAL) |
3634 | + INTEGER NCOMB |
3635 | + PARAMETER ( NCOMB=16) |
3636 | + INTEGER NHEL(NEXTERNAL,NCOMB) |
3637 | + DATA (NHEL(I, 1),I=1,4) / 1,-1,-1,-1/ |
3638 | + DATA (NHEL(I, 2),I=1,4) / 1,-1,-1, 1/ |
3639 | + DATA (NHEL(I, 3),I=1,4) / 1,-1, 1,-1/ |
3640 | + DATA (NHEL(I, 4),I=1,4) / 1,-1, 1, 1/ |
3641 | + DATA (NHEL(I, 5),I=1,4) / 1, 1,-1,-1/ |
3642 | + DATA (NHEL(I, 6),I=1,4) / 1, 1,-1, 1/ |
3643 | + DATA (NHEL(I, 7),I=1,4) / 1, 1, 1,-1/ |
3644 | + DATA (NHEL(I, 8),I=1,4) / 1, 1, 1, 1/ |
3645 | + DATA (NHEL(I, 9),I=1,4) /-1,-1,-1,-1/ |
3646 | + DATA (NHEL(I, 10),I=1,4) /-1,-1,-1, 1/ |
3647 | + DATA (NHEL(I, 11),I=1,4) /-1,-1, 1,-1/ |
3648 | + DATA (NHEL(I, 12),I=1,4) /-1,-1, 1, 1/ |
3649 | + DATA (NHEL(I, 13),I=1,4) /-1, 1,-1,-1/ |
3650 | + DATA (NHEL(I, 14),I=1,4) /-1, 1,-1, 1/ |
3651 | + DATA (NHEL(I, 15),I=1,4) /-1, 1, 1,-1/ |
3652 | + DATA (NHEL(I, 16),I=1,4) /-1, 1, 1, 1/ |
3653 | + |
3654 | + GET_NHEL = NHEL(IPART, HEL) |
3655 | + RETURN |
3656 | + END |
3657 | + |
3658 | |
3659 | === modified file 'tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/matrix.f' |
3660 | --- tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/matrix.f 2020-06-20 21:10:10 +0000 |
3661 | +++ tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/matrix.f 2020-08-13 08:01:43 +0000 |
3662 | @@ -122,6 +122,7 @@ |
3663 | IF (GOODHEL(I) .OR. NTRY .LE. MAXTRIES.OR.(ISUM_HEL.NE.0)) |
3664 | $ THEN |
3665 | T=MATRIX(P ,NHEL(1,I),JC(1)) |
3666 | + |
3667 | DO JJ=1,NINCOMING |
3668 | IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ)) |
3669 | $ )) THEN |
3670 | @@ -130,6 +131,7 @@ |
3671 | T=T*(2D0-ABS(POL(JJ)))*NB_SPIN_STATE(JJ)/2D0 |
3672 | ENDIF |
3673 | ENDDO |
3674 | + |
3675 | IF (ISUM_HEL.NE.0) THEN |
3676 | CALL DS_ADD_ENTRY('Helicity',I,T) |
3677 | ENDIF |
3678 | @@ -175,6 +177,7 @@ |
3679 | I = HEL_PICKED |
3680 | |
3681 | T=MATRIX(P ,NHEL(1,I),JC(1)) |
3682 | + |
3683 | DO JJ=1,NINCOMING |
3684 | IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ)))) |
3685 | $ THEN |
3686 | @@ -183,6 +186,7 @@ |
3687 | T=T*(2D0-ABS(POL(JJ))) |
3688 | ENDIF |
3689 | ENDDO |
3690 | + |
3691 | C Always one helicity at a time |
3692 | ANS = T |
3693 | C Include the Jacobian from helicity sampling |
3694 | |
3695 | === modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_eq_4.f' |
3696 | --- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_eq_4.f 2020-06-20 21:10:10 +0000 |
3697 | +++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_eq_4.f 2020-08-13 08:01:43 +0000 |
3698 | @@ -2630,11 +2630,14 @@ |
3699 | PARAMETER (NEXTERNAL=4) |
3700 | INTEGER NSQUAREDSO |
3701 | PARAMETER (NSQUAREDSO=3) |
3702 | + INCLUDE 'nsqso_born.inc' |
3703 | C |
3704 | C ARGUMENTS |
3705 | C |
3706 | REAL*8 P(0:3,NEXTERNAL) |
3707 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3708 | + INTEGER ANS_DIMENSION |
3709 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3710 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3711 | INTEGER HEL, USERHEL |
3712 | COMMON/ML5_0_USERCHOICE/USERHEL |
3713 | C ---------- |
3714 | @@ -2658,7 +2661,10 @@ |
3715 | C ARGUMENTS |
3716 | C |
3717 | REAL*8 P(0:3,NEXTERNAL) |
3718 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3719 | + INCLUDE 'nsqso_born.inc' |
3720 | + INTEGER ANS_DIMENSION |
3721 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3722 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3723 | INTEGER HEL, RET_CODE |
3724 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3725 | C |
3726 | @@ -2775,7 +2781,10 @@ |
3727 | C ARGUMENTS |
3728 | C |
3729 | REAL*8 P(0:3,NEXTERNAL) |
3730 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3731 | + INCLUDE 'nsqso_born.inc' |
3732 | + INTEGER ANS_DIMENSION |
3733 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3734 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3735 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3736 | INTEGER RET_CODE |
3737 | C |
3738 | |
3739 | === modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_0_QEDAmpAndQEDsq_gt_2.f' |
3740 | --- 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 |
3741 | +++ 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 |
3742 | @@ -2801,11 +2801,14 @@ |
3743 | PARAMETER (NEXTERNAL=4) |
3744 | INTEGER NSQUAREDSO |
3745 | PARAMETER (NSQUAREDSO=3) |
3746 | + INCLUDE 'nsqso_born.inc' |
3747 | C |
3748 | C ARGUMENTS |
3749 | C |
3750 | REAL*8 P(0:3,NEXTERNAL) |
3751 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3752 | + INTEGER ANS_DIMENSION |
3753 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3754 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3755 | INTEGER HEL, USERHEL |
3756 | COMMON/ML5_0_USERCHOICE/USERHEL |
3757 | C ---------- |
3758 | @@ -2829,7 +2832,10 @@ |
3759 | C ARGUMENTS |
3760 | C |
3761 | REAL*8 P(0:3,NEXTERNAL) |
3762 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3763 | + INCLUDE 'nsqso_born.inc' |
3764 | + INTEGER ANS_DIMENSION |
3765 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3766 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3767 | INTEGER HEL, RET_CODE |
3768 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3769 | C |
3770 | @@ -2946,7 +2952,10 @@ |
3771 | C ARGUMENTS |
3772 | C |
3773 | REAL*8 P(0:3,NEXTERNAL) |
3774 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3775 | + INCLUDE 'nsqso_born.inc' |
3776 | + INTEGER ANS_DIMENSION |
3777 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3778 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3779 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3780 | INTEGER RET_CODE |
3781 | C |
3782 | |
3783 | === modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_4.f' |
3784 | --- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_4.f 2020-06-20 21:10:10 +0000 |
3785 | +++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_4.f 2020-08-13 08:01:43 +0000 |
3786 | @@ -2567,11 +2567,14 @@ |
3787 | PARAMETER (NEXTERNAL=4) |
3788 | INTEGER NSQUAREDSO |
3789 | PARAMETER (NSQUAREDSO=1) |
3790 | + INCLUDE 'nsqso_born.inc' |
3791 | C |
3792 | C ARGUMENTS |
3793 | C |
3794 | REAL*8 P(0:3,NEXTERNAL) |
3795 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3796 | + INTEGER ANS_DIMENSION |
3797 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3798 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3799 | INTEGER HEL, USERHEL |
3800 | COMMON/ML5_0_USERCHOICE/USERHEL |
3801 | C ---------- |
3802 | @@ -2595,7 +2598,10 @@ |
3803 | C ARGUMENTS |
3804 | C |
3805 | REAL*8 P(0:3,NEXTERNAL) |
3806 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3807 | + INCLUDE 'nsqso_born.inc' |
3808 | + INTEGER ANS_DIMENSION |
3809 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3810 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3811 | INTEGER HEL, RET_CODE |
3812 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3813 | C |
3814 | @@ -2712,7 +2718,10 @@ |
3815 | C ARGUMENTS |
3816 | C |
3817 | REAL*8 P(0:3,NEXTERNAL) |
3818 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3819 | + INCLUDE 'nsqso_born.inc' |
3820 | + INTEGER ANS_DIMENSION |
3821 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3822 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3823 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3824 | INTEGER RET_CODE |
3825 | C |
3826 | |
3827 | === modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QEDsq_le_4.f' |
3828 | --- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QEDsq_le_4.f 2020-06-20 21:10:10 +0000 |
3829 | +++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QEDsq_le_4.f 2020-08-13 08:01:43 +0000 |
3830 | @@ -2817,11 +2817,14 @@ |
3831 | PARAMETER (NEXTERNAL=4) |
3832 | INTEGER NSQUAREDSO |
3833 | PARAMETER (NSQUAREDSO=4) |
3834 | + INCLUDE 'nsqso_born.inc' |
3835 | C |
3836 | C ARGUMENTS |
3837 | C |
3838 | REAL*8 P(0:3,NEXTERNAL) |
3839 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3840 | + INTEGER ANS_DIMENSION |
3841 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3842 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3843 | INTEGER HEL, USERHEL |
3844 | COMMON/ML5_0_USERCHOICE/USERHEL |
3845 | C ---------- |
3846 | @@ -2845,7 +2848,10 @@ |
3847 | C ARGUMENTS |
3848 | C |
3849 | REAL*8 P(0:3,NEXTERNAL) |
3850 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3851 | + INCLUDE 'nsqso_born.inc' |
3852 | + INTEGER ANS_DIMENSION |
3853 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3854 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3855 | INTEGER HEL, RET_CODE |
3856 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3857 | C |
3858 | @@ -2962,7 +2968,10 @@ |
3859 | C ARGUMENTS |
3860 | C |
3861 | REAL*8 P(0:3,NEXTERNAL) |
3862 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3863 | + INCLUDE 'nsqso_born.inc' |
3864 | + INTEGER ANS_DIMENSION |
3865 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3866 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3867 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3868 | INTEGER RET_CODE |
3869 | C |
3870 | |
3871 | === modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_WGTsq_le_10_QEDAmpAndQEDsq_gt_2.f' |
3872 | --- 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 |
3873 | +++ 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 |
3874 | @@ -2801,11 +2801,14 @@ |
3875 | PARAMETER (NEXTERNAL=4) |
3876 | INTEGER NSQUAREDSO |
3877 | PARAMETER (NSQUAREDSO=3) |
3878 | + INCLUDE 'nsqso_born.inc' |
3879 | C |
3880 | C ARGUMENTS |
3881 | C |
3882 | REAL*8 P(0:3,NEXTERNAL) |
3883 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3884 | + INTEGER ANS_DIMENSION |
3885 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3886 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3887 | INTEGER HEL, USERHEL |
3888 | COMMON/ML5_0_USERCHOICE/USERHEL |
3889 | C ---------- |
3890 | @@ -2829,7 +2832,10 @@ |
3891 | C ARGUMENTS |
3892 | C |
3893 | REAL*8 P(0:3,NEXTERNAL) |
3894 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3895 | + INCLUDE 'nsqso_born.inc' |
3896 | + INTEGER ANS_DIMENSION |
3897 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3898 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3899 | INTEGER HEL, RET_CODE |
3900 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3901 | C |
3902 | @@ -2946,7 +2952,10 @@ |
3903 | C ARGUMENTS |
3904 | C |
3905 | REAL*8 P(0:3,NEXTERNAL) |
3906 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3907 | + INCLUDE 'nsqso_born.inc' |
3908 | + INTEGER ANS_DIMENSION |
3909 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3910 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3911 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3912 | INTEGER RET_CODE |
3913 | C |
3914 | |
3915 | === modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_default.f' |
3916 | --- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_default.f 2020-06-20 21:10:10 +0000 |
3917 | +++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_default.f 2020-08-13 08:01:43 +0000 |
3918 | @@ -2630,11 +2630,14 @@ |
3919 | PARAMETER (NEXTERNAL=4) |
3920 | INTEGER NSQUAREDSO |
3921 | PARAMETER (NSQUAREDSO=3) |
3922 | + INCLUDE 'nsqso_born.inc' |
3923 | C |
3924 | C ARGUMENTS |
3925 | C |
3926 | REAL*8 P(0:3,NEXTERNAL) |
3927 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3928 | + INTEGER ANS_DIMENSION |
3929 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3930 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3931 | INTEGER HEL, USERHEL |
3932 | COMMON/ML5_0_USERCHOICE/USERHEL |
3933 | C ---------- |
3934 | @@ -2658,7 +2661,10 @@ |
3935 | C ARGUMENTS |
3936 | C |
3937 | REAL*8 P(0:3,NEXTERNAL) |
3938 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3939 | + INCLUDE 'nsqso_born.inc' |
3940 | + INTEGER ANS_DIMENSION |
3941 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3942 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3943 | INTEGER HEL, RET_CODE |
3944 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3945 | C |
3946 | @@ -2775,7 +2781,10 @@ |
3947 | C ARGUMENTS |
3948 | C |
3949 | REAL*8 P(0:3,NEXTERNAL) |
3950 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3951 | + INCLUDE 'nsqso_born.inc' |
3952 | + INTEGER ANS_DIMENSION |
3953 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3954 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3955 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3956 | INTEGER RET_CODE |
3957 | C |
3958 | |
3959 | === modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDpert_default.f' |
3960 | --- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDpert_default.f 2020-06-20 21:10:10 +0000 |
3961 | +++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDpert_default.f 2020-08-13 08:01:43 +0000 |
3962 | @@ -2567,11 +2567,14 @@ |
3963 | PARAMETER (NEXTERNAL=4) |
3964 | INTEGER NSQUAREDSO |
3965 | PARAMETER (NSQUAREDSO=1) |
3966 | + INCLUDE 'nsqso_born.inc' |
3967 | C |
3968 | C ARGUMENTS |
3969 | C |
3970 | REAL*8 P(0:3,NEXTERNAL) |
3971 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3972 | + INTEGER ANS_DIMENSION |
3973 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3974 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3975 | INTEGER HEL, USERHEL |
3976 | COMMON/ML5_0_USERCHOICE/USERHEL |
3977 | C ---------- |
3978 | @@ -2595,7 +2598,10 @@ |
3979 | C ARGUMENTS |
3980 | C |
3981 | REAL*8 P(0:3,NEXTERNAL) |
3982 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3983 | + INCLUDE 'nsqso_born.inc' |
3984 | + INTEGER ANS_DIMENSION |
3985 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3986 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3987 | INTEGER HEL, RET_CODE |
3988 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3989 | C |
3990 | @@ -2712,7 +2718,10 @@ |
3991 | C ARGUMENTS |
3992 | C |
3993 | REAL*8 P(0:3,NEXTERNAL) |
3994 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
3995 | + INCLUDE 'nsqso_born.inc' |
3996 | + INTEGER ANS_DIMENSION |
3997 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
3998 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
3999 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4000 | INTEGER RET_CODE |
4001 | C |
4002 | |
4003 | === modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QEDpert_default.f' |
4004 | --- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QEDpert_default.f 2020-06-20 21:10:10 +0000 |
4005 | +++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QEDpert_default.f 2020-08-13 08:01:43 +0000 |
4006 | @@ -2565,11 +2565,14 @@ |
4007 | PARAMETER (NEXTERNAL=4) |
4008 | INTEGER NSQUAREDSO |
4009 | PARAMETER (NSQUAREDSO=1) |
4010 | + INCLUDE 'nsqso_born.inc' |
4011 | C |
4012 | C ARGUMENTS |
4013 | C |
4014 | REAL*8 P(0:3,NEXTERNAL) |
4015 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4016 | + INTEGER ANS_DIMENSION |
4017 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4018 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4019 | INTEGER HEL, USERHEL |
4020 | COMMON/ML5_0_USERCHOICE/USERHEL |
4021 | C ---------- |
4022 | @@ -2593,7 +2596,10 @@ |
4023 | C ARGUMENTS |
4024 | C |
4025 | REAL*8 P(0:3,NEXTERNAL) |
4026 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4027 | + INCLUDE 'nsqso_born.inc' |
4028 | + INTEGER ANS_DIMENSION |
4029 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4030 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4031 | INTEGER HEL, RET_CODE |
4032 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4033 | C |
4034 | @@ -2710,7 +2716,10 @@ |
4035 | C ARGUMENTS |
4036 | C |
4037 | REAL*8 P(0:3,NEXTERNAL) |
4038 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4039 | + INCLUDE 'nsqso_born.inc' |
4040 | + INTEGER ANS_DIMENSION |
4041 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4042 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4043 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4044 | INTEGER RET_CODE |
4045 | C |
4046 | |
4047 | === modified file 'tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%loop_matrix.f' |
4048 | --- 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 |
4049 | +++ 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 |
4050 | @@ -2584,11 +2584,14 @@ |
4051 | PARAMETER (NEXTERNAL=4) |
4052 | INTEGER NSQUAREDSO |
4053 | PARAMETER (NSQUAREDSO=1) |
4054 | + INCLUDE 'nsqso_born.inc' |
4055 | C |
4056 | C ARGUMENTS |
4057 | C |
4058 | REAL*8 P(0:3,NEXTERNAL) |
4059 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4060 | + INTEGER ANS_DIMENSION |
4061 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4062 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4063 | INTEGER HEL, USERHEL |
4064 | COMMON/ML5_0_USERCHOICE/USERHEL |
4065 | C ---------- |
4066 | @@ -2612,7 +2615,10 @@ |
4067 | C ARGUMENTS |
4068 | C |
4069 | REAL*8 P(0:3,NEXTERNAL) |
4070 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4071 | + INCLUDE 'nsqso_born.inc' |
4072 | + INTEGER ANS_DIMENSION |
4073 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4074 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4075 | INTEGER HEL, RET_CODE |
4076 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4077 | C |
4078 | @@ -2729,7 +2735,10 @@ |
4079 | C ARGUMENTS |
4080 | C |
4081 | REAL*8 P(0:3,NEXTERNAL) |
4082 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4083 | + INCLUDE 'nsqso_born.inc' |
4084 | + INTEGER ANS_DIMENSION |
4085 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4086 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4087 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4088 | INTEGER RET_CODE |
4089 | C |
4090 | |
4091 | === modified file 'tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%loop_matrix.f' |
4092 | --- tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%loop_matrix.f 2020-06-20 21:10:10 +0000 |
4093 | +++ tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%loop_matrix.f 2020-08-13 08:01:43 +0000 |
4094 | @@ -2574,11 +2574,14 @@ |
4095 | PARAMETER (NEXTERNAL=4) |
4096 | INTEGER NSQUAREDSO |
4097 | PARAMETER (NSQUAREDSO=1) |
4098 | + INCLUDE 'nsqso_born.inc' |
4099 | C |
4100 | C ARGUMENTS |
4101 | C |
4102 | REAL*8 P(0:3,NEXTERNAL) |
4103 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4104 | + INTEGER ANS_DIMENSION |
4105 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4106 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4107 | INTEGER HEL, USERHEL |
4108 | COMMON/MG5_1_USERCHOICE/USERHEL |
4109 | C ---------- |
4110 | @@ -2602,7 +2605,10 @@ |
4111 | C ARGUMENTS |
4112 | C |
4113 | REAL*8 P(0:3,NEXTERNAL) |
4114 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4115 | + INCLUDE 'nsqso_born.inc' |
4116 | + INTEGER ANS_DIMENSION |
4117 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4118 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4119 | INTEGER HEL, RET_CODE |
4120 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4121 | C |
4122 | @@ -2719,7 +2725,10 @@ |
4123 | C ARGUMENTS |
4124 | C |
4125 | REAL*8 P(0:3,NEXTERNAL) |
4126 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4127 | + INCLUDE 'nsqso_born.inc' |
4128 | + INTEGER ANS_DIMENSION |
4129 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4130 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4131 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4132 | INTEGER RET_CODE |
4133 | C |
4134 | |
4135 | === modified file 'tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/loop_matrix.f' |
4136 | --- tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/loop_matrix.f 2020-06-20 21:10:10 +0000 |
4137 | +++ tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/loop_matrix.f 2020-08-13 08:01:43 +0000 |
4138 | @@ -2548,11 +2548,14 @@ |
4139 | PARAMETER (NEXTERNAL=5) |
4140 | INTEGER NSQUAREDSO |
4141 | PARAMETER (NSQUAREDSO=0) |
4142 | + INCLUDE 'nsqso_born.inc' |
4143 | C |
4144 | C ARGUMENTS |
4145 | C |
4146 | REAL*8 P(0:3,NEXTERNAL) |
4147 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4148 | + INTEGER ANS_DIMENSION |
4149 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4150 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4151 | INTEGER HEL, USERHEL |
4152 | COMMON/ML5_0_USERCHOICE/USERHEL |
4153 | C ---------- |
4154 | @@ -2576,7 +2579,10 @@ |
4155 | C ARGUMENTS |
4156 | C |
4157 | REAL*8 P(0:3,NEXTERNAL) |
4158 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4159 | + INCLUDE 'nsqso_born.inc' |
4160 | + INTEGER ANS_DIMENSION |
4161 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4162 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4163 | INTEGER HEL, RET_CODE |
4164 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4165 | C |
4166 | @@ -2693,7 +2699,10 @@ |
4167 | C ARGUMENTS |
4168 | C |
4169 | REAL*8 P(0:3,NEXTERNAL) |
4170 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4171 | + INCLUDE 'nsqso_born.inc' |
4172 | + INTEGER ANS_DIMENSION |
4173 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4174 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4175 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4176 | INTEGER RET_CODE |
4177 | C |
4178 | |
4179 | === modified file 'tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/loop_matrix.f' |
4180 | --- tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/loop_matrix.f 2020-06-20 21:10:10 +0000 |
4181 | +++ tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/loop_matrix.f 2020-08-13 08:01:43 +0000 |
4182 | @@ -2548,11 +2548,14 @@ |
4183 | PARAMETER (NEXTERNAL=5) |
4184 | INTEGER NSQUAREDSO |
4185 | PARAMETER (NSQUAREDSO=0) |
4186 | + INCLUDE 'nsqso_born.inc' |
4187 | C |
4188 | C ARGUMENTS |
4189 | C |
4190 | REAL*8 P(0:3,NEXTERNAL) |
4191 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4192 | + INTEGER ANS_DIMENSION |
4193 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4194 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4195 | INTEGER HEL, USERHEL |
4196 | COMMON/ML5_0_USERCHOICE/USERHEL |
4197 | C ---------- |
4198 | @@ -2576,7 +2579,10 @@ |
4199 | C ARGUMENTS |
4200 | C |
4201 | REAL*8 P(0:3,NEXTERNAL) |
4202 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4203 | + INCLUDE 'nsqso_born.inc' |
4204 | + INTEGER ANS_DIMENSION |
4205 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4206 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4207 | INTEGER HEL, RET_CODE |
4208 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4209 | C |
4210 | @@ -2693,7 +2699,10 @@ |
4211 | C ARGUMENTS |
4212 | C |
4213 | REAL*8 P(0:3,NEXTERNAL) |
4214 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4215 | + INCLUDE 'nsqso_born.inc' |
4216 | + INTEGER ANS_DIMENSION |
4217 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4218 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4219 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4220 | INTEGER RET_CODE |
4221 | C |
4222 | |
4223 | === modified file 'tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/loop_matrix.f' |
4224 | --- tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/loop_matrix.f 2020-06-20 21:10:10 +0000 |
4225 | +++ tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/loop_matrix.f 2020-08-13 08:01:43 +0000 |
4226 | @@ -2548,11 +2548,14 @@ |
4227 | PARAMETER (NEXTERNAL=4) |
4228 | INTEGER NSQUAREDSO |
4229 | PARAMETER (NSQUAREDSO=0) |
4230 | + INCLUDE 'nsqso_born.inc' |
4231 | C |
4232 | C ARGUMENTS |
4233 | C |
4234 | REAL*8 P(0:3,NEXTERNAL) |
4235 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4236 | + INTEGER ANS_DIMENSION |
4237 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4238 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4239 | INTEGER HEL, USERHEL |
4240 | COMMON/ML5_0_USERCHOICE/USERHEL |
4241 | C ---------- |
4242 | @@ -2576,7 +2579,10 @@ |
4243 | C ARGUMENTS |
4244 | C |
4245 | REAL*8 P(0:3,NEXTERNAL) |
4246 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4247 | + INCLUDE 'nsqso_born.inc' |
4248 | + INTEGER ANS_DIMENSION |
4249 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4250 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4251 | INTEGER HEL, RET_CODE |
4252 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4253 | C |
4254 | @@ -2693,7 +2699,10 @@ |
4255 | C ARGUMENTS |
4256 | C |
4257 | REAL*8 P(0:3,NEXTERNAL) |
4258 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4259 | + INCLUDE 'nsqso_born.inc' |
4260 | + INTEGER ANS_DIMENSION |
4261 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4262 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4263 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4264 | INTEGER RET_CODE |
4265 | C |
4266 | |
4267 | === modified file 'tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/loop_matrix.f' |
4268 | --- tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/loop_matrix.f 2020-06-20 21:10:10 +0000 |
4269 | +++ tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/loop_matrix.f 2020-08-13 08:01:43 +0000 |
4270 | @@ -2548,11 +2548,14 @@ |
4271 | PARAMETER (NEXTERNAL=4) |
4272 | INTEGER NSQUAREDSO |
4273 | PARAMETER (NSQUAREDSO=0) |
4274 | + INCLUDE 'nsqso_born.inc' |
4275 | C |
4276 | C ARGUMENTS |
4277 | C |
4278 | REAL*8 P(0:3,NEXTERNAL) |
4279 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4280 | + INTEGER ANS_DIMENSION |
4281 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4282 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4283 | INTEGER HEL, USERHEL |
4284 | COMMON/ML5_0_USERCHOICE/USERHEL |
4285 | C ---------- |
4286 | @@ -2576,7 +2579,10 @@ |
4287 | C ARGUMENTS |
4288 | C |
4289 | REAL*8 P(0:3,NEXTERNAL) |
4290 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4291 | + INCLUDE 'nsqso_born.inc' |
4292 | + INTEGER ANS_DIMENSION |
4293 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4294 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4295 | INTEGER HEL, RET_CODE |
4296 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4297 | C |
4298 | @@ -2693,7 +2699,10 @@ |
4299 | C ARGUMENTS |
4300 | C |
4301 | REAL*8 P(0:3,NEXTERNAL) |
4302 | - REAL*8 ANS(0:3,0:NSQUAREDSO) |
4303 | + INCLUDE 'nsqso_born.inc' |
4304 | + INTEGER ANS_DIMENSION |
4305 | + PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) |
4306 | + REAL*8 ANS(0:3,0:ANS_DIMENSION) |
4307 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4308 | INTEGER RET_CODE |
4309 | C |
4310 | |
4311 | === modified file 'tests/test_manager.py' |
4312 | --- tests/test_manager.py 2018-08-10 12:40:47 +0000 |
4313 | +++ tests/test_manager.py 2020-08-13 08:01:43 +0000 |
4314 | @@ -44,6 +44,7 @@ |
4315 | import time |
4316 | import datetime |
4317 | import shutil |
4318 | +import subprocess |
4319 | import glob |
4320 | from functools import wraps |
4321 | |
4322 | @@ -973,7 +974,8 @@ |
4323 | |
4324 | parser.add_option("-N", "--notification", default=45, |
4325 | help="Running time, below which no notification is raised. (-1 for no notification)") |
4326 | - |
4327 | + parser.add_option("", "--nocaffeinate", action="store_false", default=True, dest='nosleep', |
4328 | + help='For mac user, forbids to use caffeinate when running with a script') |
4329 | |
4330 | (options, args) = parser.parse_args() |
4331 | |
4332 | @@ -1046,6 +1048,14 @@ |
4333 | logging.getLogger('tutorial').setLevel('ERROR') |
4334 | except: |
4335 | pass |
4336 | + |
4337 | + if sys.platform == "darwin" and options.nosleep: |
4338 | + logging.getLogger('madgraph').warning("launching caffeinate to prevent idle sleep when MG5aMC is running. Run './bin/mg5_aMC -s' to prevent this.") |
4339 | + pid = os.getpid() |
4340 | + subprocess.Popen(['caffeinate', '-i', '-w', str(pid)]) |
4341 | + |
4342 | + |
4343 | + |
4344 | |
4345 | if options.synchronize and IOTestManager._compress_ref_fodler: |
4346 | print "The tarball synchronization is not necessary since"+ \ |