Merge lp:~maddevelopers/mg5amcnlo/2.6.5_ewa into lp:~mg5core1/mg5amcnlo/2.7.4
- 2.6.5_ewa
- Merge into 2.7.4
Proposed by
Olivier Mattelaer
Status: | Work in progress |
---|---|
Proposed branch: | lp:~maddevelopers/mg5amcnlo/2.6.5_ewa |
Merge into: | lp:~mg5core1/mg5amcnlo/2.7.4 |
Diff against target: |
2653 lines (+2102/-87) 24 files modified
Template/LO/Source/PDF/ElectroweakFlux.f (+1484/-0) Template/LO/Source/PDF/ElectroweakFlux.inc (+38/-0) Template/LO/Source/PDF/PhotonFlux.f (+6/-4) Template/LO/Source/PDF/makefile (+4/-3) Template/LO/Source/PDF/pdg2pdf.f (+110/-16) Template/LO/Source/PDF/pdg2pdf_lhapdf6.f (+110/-10) Template/LO/Source/setrun.f (+2/-3) Template/LO/SubProcesses/genps.f (+1/-0) Template/MadWeight/src/setrun.f (+8/-0) madgraph/core/base_objects.py (+3/-2) madgraph/interface/common_run_interface.py (+15/-0) madgraph/interface/madevent_interface.py (+3/-2) madgraph/iolibs/export_v4.py (+60/-3) madgraph/iolibs/template_files/auto_dsig_v4.inc (+15/-0) 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/various/banner.py (+89/-7) madgraph/various/cluster.py (+68/-4) 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) |
To merge this branch: | bzr merge lp:~maddevelopers/mg5amcnlo/2.6.5_ewa |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
mg5core1 | Pending | ||
Review via email: mp+397567@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
Revision history for this message
Olivier Mattelaer (olivier-mattelaer) wrote : | # |
so the important changes are
1) forcing MC over helicity [here simple copy-paste]
2) moving polarization from the parton to the PDF section (when needed--not perfectly done here due to DIS lack of support)
3) include the new PDF [here you should be ok, be carefull with the POL() normalization]
4) will need to worry about the number of helicty allowed for the W (what if only transverse)
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 | === added file 'Template/LO/Source/PDF/ElectroweakFlux.f' | |||
2 | --- Template/LO/Source/PDF/ElectroweakFlux.f 1970-01-01 00:00:00 +0000 | |||
3 | +++ Template/LO/Source/PDF/ElectroweakFlux.f 2021-02-05 11:45:49 +0000 | |||
4 | @@ -0,0 +1,1484 @@ | |||
5 | 1 | c/* ********************************************************* */ | ||
6 | 2 | c/* Effective W Approximation Splitting Functions */ | ||
7 | 3 | c/* Pulled from Barger and Phillips, pg 276 */ | ||
8 | 4 | c/* ********************************************************* */ | ||
9 | 5 | c | ||
10 | 6 | c List of functions: | ||
11 | 7 | c ewa_wX_ByPID,ewa_wX,ewa_wT,ewa_w0 | ||
12 | 8 | c ewa_zX_ByPID,ewa_zT,ewa_z0 | ||
13 | 9 | c | ||
14 | 10 | c Input for ewa_vX_ByPID: | ||
15 | 11 | c x: longitudinal momentum fraction carried by boson v | ||
16 | 12 | c q2max: scale^2 of v boson pdf | ||
17 | 13 | c pol: polarization of v boson (pol = +1,-1,0) | ||
18 | 14 | c ppid: pid of v boson's parent fermion | ||
19 | 15 | c/* ********************************************************* */ | ||
20 | 16 | |||
21 | 17 | c/* ********************************************************* */ | ||
22 | 18 | c return ewa splitting function for w boson by parent PID | ||
23 | 19 | double precision function ewa_wX_ByPID(x,q2max,pol,ppid) | ||
24 | 20 | implicit none | ||
25 | 21 | integer pol,ppid | ||
26 | 22 | double precision x,q2max | ||
27 | 23 | double precision ewa_wX | ||
28 | 24 | double precision ewa_wp_p, ewa_wm_p | ||
29 | 25 | external ewa_wX, ewa_wp_p, ewa_wm_p | ||
30 | 26 | |||
31 | 27 | include 'ElectroweakFlux.inc' | ||
32 | 28 | |||
33 | 29 | if(q2max.lt.ewa_mw2) then | ||
34 | 30 | c write (*,*) 'ERROR: q2max below MW2',q2max,ewa_mw2 | ||
35 | 31 | ewa_wX_ByPID = 0d0 | ||
36 | 32 | return | ||
37 | 33 | endif | ||
38 | 34 | if(x.lt.eps .or. x.gt.(1.d0-eps)) then | ||
39 | 35 | c write (*,*) 'ERROR: x out of range',x | ||
40 | 36 | ewa_wX_ByPID =0d0 | ||
41 | 37 | return | ||
42 | 38 | endif | ||
43 | 39 | |||
44 | 40 | c is parent a proton (unbroken) | ||
45 | 41 | if(ppid.eq.2212) then | ||
46 | 42 | ewa_wX_ByPID = ewa_wp_p(x,q2max,pol) | ||
47 | 43 | return | ||
48 | 44 | else if(ppid.eq.-2212) then | ||
49 | 45 | ewa_wX_ByPID = ewa_wm_p(x,q2max,pol) | ||
50 | 46 | return | ||
51 | 47 | c other particle | ||
52 | 48 | else | ||
53 | 49 | ewa_wX_ByPID = ewa_wX(x,q2max,pol) | ||
54 | 50 | endif | ||
55 | 51 | return | ||
56 | 52 | end | ||
57 | 53 | c/* ********************************************************* */ | ||
58 | 54 | c return ewa splitting function for w boson | ||
59 | 55 | double precision function ewa_wX(x,q2max,pol) | ||
60 | 56 | implicit none | ||
61 | 57 | integer pol | ||
62 | 58 | double precision x,q2max | ||
63 | 59 | double precision ewa_wT,ewa_w0 | ||
64 | 60 | external ewa_wT,ewa_w0 | ||
65 | 61 | |||
66 | 62 | if(abs(pol).gt.0) then | ||
67 | 63 | ewa_wX = ewa_wT(x,q2max,pol) | ||
68 | 64 | else | ||
69 | 65 | ewa_wX = ewa_w0(x) | ||
70 | 66 | endif | ||
71 | 67 | return | ||
72 | 68 | end | ||
73 | 69 | c/* ********************************************************* */ | ||
74 | 70 | c return ewa splitting function for z boson by parent PID | ||
75 | 71 | double precision function ewa_zX_ByPID(x,q2max,pol,ppid) | ||
76 | 72 | implicit none | ||
77 | 73 | integer pol,ppid | ||
78 | 74 | double precision x,q2max | ||
79 | 75 | double precision ewa_zT,ewa_z0, ewa_z_p | ||
80 | 76 | external ewa_zT,ewa_z0,ewa_z_p | ||
81 | 77 | |||
82 | 78 | include 'ElectroweakFlux.inc' | ||
83 | 79 | |||
84 | 80 | if(q2max.lt.ewa_mz2) then | ||
85 | 81 | c write (*,*) 'ERROR: q2max below MZ2',q2max,ewa_mz2 | ||
86 | 82 | ewa_zX_ByPID = 0d0 | ||
87 | 83 | return | ||
88 | 84 | endif | ||
89 | 85 | if(x.lt.eps .or. x.gt.(1.d0-eps))then | ||
90 | 86 | c write (*,*) 'ERROR: x out of range',x | ||
91 | 87 | ewa_zX_ByPID = 0d0 | ||
92 | 88 | return | ||
93 | 89 | endif | ||
94 | 90 | |||
95 | 91 | c is parent a charged lepton? | ||
96 | 92 | if( abs(ppid).eq.11 | ||
97 | 93 | & .or. abs(ppid).eq.13 | ||
98 | 94 | & .or. abs(ppid).eq.15) then | ||
99 | 95 | if(abs(pol).gt.0) then | ||
100 | 96 | ewa_zX_ByPID = ewa_zT(x,q2max,pol,ewa_gVl,ewa_gAl) | ||
101 | 97 | else | ||
102 | 98 | ewa_zX_ByPID = ewa_z0(x,ewa_gVl,ewa_gAl) | ||
103 | 99 | endif | ||
104 | 100 | return | ||
105 | 101 | c is parent a proton (unbroken) | ||
106 | 102 | elseif(ppid.eq.2212) then | ||
107 | 103 | ewa_zX_ByPID = ewa_Z_p(x,q2max,pol) | ||
108 | 104 | return | ||
109 | 105 | c is parent a neutrino? | ||
110 | 106 | elseif( abs(ppid).eq.12 | ||
111 | 107 | & .or. abs(ppid).eq.14 | ||
112 | 108 | & .or. abs(ppid).eq.16) then | ||
113 | 109 | if(abs(pol).gt.0) then | ||
114 | 110 | ewa_zX_ByPID = ewa_zT(x,q2max,pol,ewa_gVv,ewa_gAv) | ||
115 | 111 | else | ||
116 | 112 | ewa_zX_ByPID = ewa_z0(x,ewa_gVv,ewa_gAv) | ||
117 | 113 | endif | ||
118 | 114 | return | ||
119 | 115 | c is parent an up-type quark? | ||
120 | 116 | elseif( abs(ppid).eq.2 | ||
121 | 117 | & .or. abs(ppid).eq.4 | ||
122 | 118 | & .or. abs(ppid).eq.6) then | ||
123 | 119 | if(abs(pol).gt.0) then | ||
124 | 120 | ewa_zX_ByPID = ewa_zT(x,q2max,pol,ewa_gVu,ewa_gAu) | ||
125 | 121 | else | ||
126 | 122 | ewa_zX_ByPID = ewa_z0(x,ewa_gVu,ewa_gAu) | ||
127 | 123 | endif | ||
128 | 124 | return | ||
129 | 125 | c is parent a down-type quark? | ||
130 | 126 | elseif( abs(ppid).eq.1 | ||
131 | 127 | & .or. abs(ppid).eq.3 | ||
132 | 128 | & .or. abs(ppid).eq.5) then | ||
133 | 129 | if(abs(pol).gt.0) then | ||
134 | 130 | ewa_zX_ByPID = ewa_zT(x,q2max,pol,ewa_gVd,ewa_gAd) | ||
135 | 131 | else | ||
136 | 132 | ewa_zX_ByPID = ewa_z0(x,ewa_gVd,ewa_gAd) | ||
137 | 133 | endif | ||
138 | 134 | return | ||
139 | 135 | c or something else? | ||
140 | 136 | else | ||
141 | 137 | ewa_zX_ByPID = 0d0 | ||
142 | 138 | return | ||
143 | 139 | endif | ||
144 | 140 | end | ||
145 | 141 | c/* ********************************************************* */ | ||
146 | 142 | c w boson splitting function: longitudinal polarization | ||
147 | 143 | double precision function ewa_w0(x) | ||
148 | 144 | implicit none | ||
149 | 145 | double precision x | ||
150 | 146 | double precision coup | ||
151 | 147 | |||
152 | 148 | include 'ElectroweakFlux.inc' | ||
153 | 149 | |||
154 | 150 | c P_W(x,lambda=0) = (gW/4pi)**2 (1-x)/x | ||
155 | 151 | coup = ewa_gW2/(16d0*pi2) | ||
156 | 152 | ewa_w0 = coup * (1d0-x)/x | ||
157 | 153 | return | ||
158 | 154 | end | ||
159 | 155 | c/* ********************************************************* */ | ||
160 | 156 | c z boson splitting function: longitudinal polarization | ||
161 | 157 | double precision function ewa_z0(x,gV,gA) | ||
162 | 158 | implicit none | ||
163 | 159 | double precision x,gV,gA | ||
164 | 160 | double precision coup | ||
165 | 161 | |||
166 | 162 | include 'ElectroweakFlux.inc' | ||
167 | 163 | |||
168 | 164 | c P_Z(x,lambda=0) = (gW2/cw2*4pi2) * (gV2 + gA2) (1-x)/x | ||
169 | 165 | coup = ewa_gW2/(ewa_cw2*4d0*pi2) * (gV**2 + gA**2) | ||
170 | 166 | ewa_z0 = coup * (1d0-x)/x | ||
171 | 167 | return | ||
172 | 168 | end | ||
173 | 169 | c/* ********************************************************* */ | ||
174 | 170 | c w boson splitting function: transverse polarization | ||
175 | 171 | double precision function ewa_wT(x,q2max,pol) | ||
176 | 172 | implicit none | ||
177 | 173 | integer pol | ||
178 | 174 | double precision x,q2max | ||
179 | 175 | double precision coup,numer | ||
180 | 176 | |||
181 | 177 | include 'ElectroweakFlux.inc' | ||
182 | 178 | |||
183 | 179 | c P_W(x,lambda=\pm) = coup * [(gV \mp gA)^2 + (gV \pm gA)^2 (1-x)^2] * log(Q2/MV2) | ||
184 | 180 | coup = ewa_gW2/(8d0*16d0*pi2) | ||
185 | 181 | numer = (ewa_gV-pol*ewa_gA)**2 | ||
186 | 182 | & + (ewa_gV+pol*ewa_gA)**2 * (1d0-x)**2 | ||
187 | 183 | ewa_wT = coup * numer * log(q2max/ewa_mw2) / x | ||
188 | 184 | return | ||
189 | 185 | end | ||
190 | 186 | c/* ********************************************************* */ | ||
191 | 187 | c z boson splitting function: transverse polarization | ||
192 | 188 | double precision function ewa_zT(x,q2max,pol,gV,gA) | ||
193 | 189 | implicit none | ||
194 | 190 | integer pol | ||
195 | 191 | double precision x,q2max,gV,gA | ||
196 | 192 | double precision coup,numer | ||
197 | 193 | |||
198 | 194 | include 'ElectroweakFlux.inc' | ||
199 | 195 | |||
200 | 196 | c P_Z(x,lambda=\pm) = coup * [(gV \mp gA)^2 + (gV \pm gA)^2 (1-x)^2] * log(Q2/MV2) | ||
201 | 197 | coup = ewa_gW2/(ewa_cw2*16d0*pi2) | ||
202 | 198 | numer = (gV-pol*gA)**2 | ||
203 | 199 | & + (gV+pol*gA)**2 * (1d0-x)**2 | ||
204 | 200 | ewa_zT = coup * numer * log(q2max/ewa_mz2) / x | ||
205 | 201 | return | ||
206 | 202 | end | ||
207 | 203 | FUNCTION dFINT(NARG,ARG,NENT,ENT,TABLE) | ||
208 | 204 | C | ||
209 | 205 | C INTERPOLATION ROUTINE. AUTHOR C. LETERTRE. | ||
210 | 206 | C MODIFIED BY B. SCHORR, 1.07.1982. | ||
211 | 207 | C | ||
212 | 208 | implicit real * 8 (a-h,o-z) | ||
213 | 209 | INTEGER NENT(*) | ||
214 | 210 | REAL*8 ARG(*), ENT(*), TABLE(*) | ||
215 | 211 | INTEGER INDEX(32) | ||
216 | 212 | REAL*8 WEIGHT(32) | ||
217 | 213 | LOGICAL MFLAG, RFLAG | ||
218 | 214 | DFINT = 0. | ||
219 | 215 | IF(NARG .LT. 1 .OR. NARG .GT. 5) GOTO 300 | ||
220 | 216 | LMAX = 0 | ||
221 | 217 | ISTEP = 1 | ||
222 | 218 | KNOTS = 1 | ||
223 | 219 | INDEX(1) = 1 | ||
224 | 220 | WEIGHT(1) = 1. | ||
225 | 221 | DO 100 N = 1, NARG | ||
226 | 222 | X = ARG(N) | ||
227 | 223 | NDIM = NENT(N) | ||
228 | 224 | LOCA = LMAX | ||
229 | 225 | LMIN = LMAX + 1 | ||
230 | 226 | LMAX = LMAX + NDIM | ||
231 | 227 | IF(NDIM .GT. 2) GOTO 10 | ||
232 | 228 | IF(NDIM .EQ. 1) GOTO 100 | ||
233 | 229 | H = X - ENT(LMIN) | ||
234 | 230 | IF(H .EQ. 0.) GOTO 90 | ||
235 | 231 | ISHIFT = ISTEP | ||
236 | 232 | IF(X-ENT(LMIN+1) .EQ. 0.) GOTO 21 | ||
237 | 233 | ISHIFT = 0 | ||
238 | 234 | ETA = H / (ENT(LMIN+1) - ENT(LMIN)) | ||
239 | 235 | GOTO 30 | ||
240 | 236 | 10 LOCB = LMAX + 1 | ||
241 | 237 | 11 LOCC = (LOCA+LOCB) / 2 | ||
242 | 238 | IF(X-ENT(LOCC)) 12, 20, 13 | ||
243 | 239 | 12 LOCB = LOCC | ||
244 | 240 | GOTO 14 | ||
245 | 241 | 13 LOCA = LOCC | ||
246 | 242 | 14 IF(LOCB-LOCA .GT. 1) GOTO 11 | ||
247 | 243 | LOCA = MIN0( MAX0(LOCA,LMIN), LMAX-1 ) | ||
248 | 244 | ISHIFT = (LOCA - LMIN) * ISTEP | ||
249 | 245 | ETA = (X - ENT(LOCA)) / (ENT(LOCA+1) - ENT(LOCA)) | ||
250 | 246 | GOTO 30 | ||
251 | 247 | 20 ISHIFT = (LOCC - LMIN) * ISTEP | ||
252 | 248 | 21 DO 22 K = 1, KNOTS | ||
253 | 249 | INDEX(K) = INDEX(K) + ISHIFT | ||
254 | 250 | 22 CONTINUE | ||
255 | 251 | GOTO 90 | ||
256 | 252 | 30 DO 31 K = 1, KNOTS | ||
257 | 253 | INDEX(K) = INDEX(K) + ISHIFT | ||
258 | 254 | INDEX(K+KNOTS) = INDEX(K) + ISTEP | ||
259 | 255 | WEIGHT(K+KNOTS) = WEIGHT(K) * ETA | ||
260 | 256 | WEIGHT(K) = WEIGHT(K) - WEIGHT(K+KNOTS) | ||
261 | 257 | 31 CONTINUE | ||
262 | 258 | KNOTS = 2*KNOTS | ||
263 | 259 | 90 ISTEP = ISTEP * NDIM | ||
264 | 260 | 100 CONTINUE | ||
265 | 261 | DO 200 K = 1, KNOTS | ||
266 | 262 | I = INDEX(K) | ||
267 | 263 | DFINT = DFINT + WEIGHT(K) * TABLE(I) | ||
268 | 264 | 200 CONTINUE | ||
269 | 265 | RETURN | ||
270 | 266 | 300 CALL KERMTR('E104.1',LGFILE,MFLAG,RFLAG) | ||
271 | 267 | IF(MFLAG) THEN | ||
272 | 268 | IF(LGFILE .EQ. 0) THEN | ||
273 | 269 | WRITE(*,1000) NARG | ||
274 | 270 | ELSE | ||
275 | 271 | WRITE(LGFILE,1000) NARG | ||
276 | 272 | ENDIF | ||
277 | 273 | ENDIF | ||
278 | 274 | IF(.NOT. RFLAG) CALL ABEND | ||
279 | 275 | RETURN | ||
280 | 276 | 1000 FORMAT( 7X, 25HFUNCTION DFINT ... NARG =,I6, | ||
281 | 277 | + 17H NOT WITHIN RANGE) | ||
282 | 278 | END | ||
283 | 279 | SUBROUTINE KERSET(ERCODE,LGFILE,LIMITM,LIMITR) | ||
284 | 280 | PARAMETER(KOUNTE = 28) | ||
285 | 281 | CHARACTER*6 ERCODE, CODE(KOUNTE) | ||
286 | 282 | LOGICAL MFLAG, RFLAG | ||
287 | 283 | INTEGER KNTM(KOUNTE), KNTR(KOUNTE) | ||
288 | 284 | DATA LOGF / 0 / | ||
289 | 285 | DATA CODE(1), KNTM(1), KNTR(1) / 'C204.1', 100, 100 / | ||
290 | 286 | DATA CODE(2), KNTM(2), KNTR(2) / 'C204.2', 100, 100 / | ||
291 | 287 | DATA CODE(3), KNTM(3), KNTR(3) / 'C204.3', 100, 100 / | ||
292 | 288 | DATA CODE(4), KNTM(4), KNTR(4) / 'C205.1', 100, 100 / | ||
293 | 289 | DATA CODE(5), KNTM(5), KNTR(5) / 'C205.2', 100, 100 / | ||
294 | 290 | DATA CODE(6), KNTM(6), KNTR(6) / 'C205.3', 100, 100 / | ||
295 | 291 | DATA CODE(7), KNTM(7), KNTR(7) / 'C305.1', 100, 100 / | ||
296 | 292 | DATA CODE(8), KNTM(8), KNTR(8) / 'C308.1', 100, 100 / | ||
297 | 293 | DATA CODE(9), KNTM(9), KNTR(9) / 'C312.1', 100, 100 / | ||
298 | 294 | DATA CODE(10),KNTM(10),KNTR(10) / 'C313.1', 100, 100 / | ||
299 | 295 | DATA CODE(11),KNTM(11),KNTR(11) / 'C336.1', 100, 100 / | ||
300 | 296 | DATA CODE(12),KNTM(12),KNTR(12) / 'C337.1', 100, 100 / | ||
301 | 297 | DATA CODE(13),KNTM(13),KNTR(13) / 'C341.1', 100, 100 / | ||
302 | 298 | DATA CODE(14),KNTM(14),KNTR(14) / 'D103.1', 100, 100 / | ||
303 | 299 | DATA CODE(15),KNTM(15),KNTR(15) / 'D106.1', 100, 100 / | ||
304 | 300 | DATA CODE(16),KNTM(16),KNTR(16) / 'D209.1', 100, 100 / | ||
305 | 301 | DATA CODE(17),KNTM(17),KNTR(17) / 'D509.1', 100, 100 / | ||
306 | 302 | DATA CODE(18),KNTM(18),KNTR(18) / 'E100.1', 100, 100 / | ||
307 | 303 | DATA CODE(19),KNTM(19),KNTR(19) / 'E104.1', 100, 100 / | ||
308 | 304 | DATA CODE(20),KNTM(20),KNTR(20) / 'E105.1', 100, 100 / | ||
309 | 305 | DATA CODE(21),KNTM(21),KNTR(21) / 'E208.1', 100, 100 / | ||
310 | 306 | DATA CODE(22),KNTM(22),KNTR(22) / 'E208.2', 100, 100 / | ||
311 | 307 | DATA CODE(23),KNTM(23),KNTR(23) / 'F010.1', 100, 0 / | ||
312 | 308 | DATA CODE(24),KNTM(24),KNTR(24) / 'F011.1', 100, 0 / | ||
313 | 309 | DATA CODE(25),KNTM(25),KNTR(25) / 'F012.1', 100, 0 / | ||
314 | 310 | DATA CODE(26),KNTM(26),KNTR(26) / 'F406.1', 100, 0 / | ||
315 | 311 | DATA CODE(27),KNTM(27),KNTR(27) / 'G100.1', 100, 100 / | ||
316 | 312 | DATA CODE(28),KNTM(28),KNTR(28) / 'G100.2', 100, 100 / | ||
317 | 313 | LOGF = LGFILE | ||
318 | 314 | IF(ERCODE .EQ. ' ') THEN | ||
319 | 315 | L = 0 | ||
320 | 316 | ELSE | ||
321 | 317 | DO 10 L = 1, 6 | ||
322 | 318 | IF(ERCODE(1:L) .EQ. ERCODE) GOTO 12 | ||
323 | 319 | 10 CONTINUE | ||
324 | 320 | 12 CONTINUE | ||
325 | 321 | ENDIF | ||
326 | 322 | DO 14 I = 1, KOUNTE | ||
327 | 323 | IF(L .EQ. 0) GOTO 13 | ||
328 | 324 | IF(CODE(I)(1:L) .NE. ERCODE(1:L)) GOTO 14 | ||
329 | 325 | 13 KNTM(I) = LIMITM | ||
330 | 326 | KNTR(I) = LIMITR | ||
331 | 327 | 14 CONTINUE | ||
332 | 328 | RETURN | ||
333 | 329 | ENTRY KERMTR(ERCODE,LOG,MFLAG,RFLAG) | ||
334 | 330 | LOG = LOGF | ||
335 | 331 | DO 20 I = 1, KOUNTE | ||
336 | 332 | IF(ERCODE .EQ. CODE(I)) GOTO 21 | ||
337 | 333 | 20 CONTINUE | ||
338 | 334 | WRITE(*,1000) ERCODE | ||
339 | 335 | CALL ABEND | ||
340 | 336 | RETURN | ||
341 | 337 | 21 RFLAG = KNTR(I) .GE. 1 | ||
342 | 338 | IF(RFLAG .AND. (KNTR(I) .LT. 100)) KNTR(I) = KNTR(I) - 1 | ||
343 | 339 | MFLAG = KNTM(I) .GE. 1 | ||
344 | 340 | IF(MFLAG .AND. (KNTM(I) .LT. 100)) KNTM(I) = KNTM(I) - 1 | ||
345 | 341 | IF(.NOT. RFLAG) THEN | ||
346 | 342 | IF(LOGF .LT. 1) THEN | ||
347 | 343 | WRITE(*,1001) CODE(I) | ||
348 | 344 | ELSE | ||
349 | 345 | WRITE(LOGF,1001) CODE(I) | ||
350 | 346 | ENDIF | ||
351 | 347 | ENDIF | ||
352 | 348 | IF(MFLAG .AND. RFLAG) THEN | ||
353 | 349 | IF(LOGF .LT. 1) THEN | ||
354 | 350 | WRITE(*,1002) CODE(I) | ||
355 | 351 | ELSE | ||
356 | 352 | WRITE(LOGF,1002) CODE(I) | ||
357 | 353 | ENDIF | ||
358 | 354 | ENDIF | ||
359 | 355 | RETURN | ||
360 | 356 | 1000 FORMAT(' KERNLIB LIBRARY ERROR. ' / | ||
361 | 357 | + ' ERROR CODE ',A6,' NOT RECOGNIZED BY KERMTR', | ||
362 | 358 | + ' ERROR MONITOR. RUN ABORTED.') | ||
363 | 359 | 1001 FORMAT(/' ***** RUN TERMINATED BY CERN LIBRARY ERROR ', | ||
364 | 360 | + 'CONDITION ',A6) | ||
365 | 361 | 1002 FORMAT(/' ***** CERN LIBRARY ERROR CONDITION ',A6) | ||
366 | 362 | END | ||
367 | 363 | SUBROUTINE ABEND | ||
368 | 364 | C | ||
369 | 365 | C CERN PROGLIB# Z035 ABEND .VERSION KERNVAX 1.10 811126 | ||
370 | 366 | |||
371 | 367 | STOP '*** ABEND ***' | ||
372 | 368 | END | ||
373 | 369 | function ewa_wp_p(x,Q2,pol) | ||
374 | 370 | implicit none | ||
375 | 371 | real*8 ewa_wp_p | ||
376 | 372 | real*8 x,Q2 | ||
377 | 373 | integer pol | ||
378 | 374 | real*8 tmp | ||
379 | 375 | real*8 y,z | ||
380 | 376 | real*8 ylow,yupp,zlow,zupp | ||
381 | 377 | parameter (ylow=-16.1181,yupp=-1e-07) | ||
382 | 378 | parameter (zlow=4.38683,zupp=13.8155) | ||
383 | 379 | real*8 ewa_wp_p_1p | ||
384 | 380 | real*8 ewa_wp_p_1m | ||
385 | 381 | real*8 ewa_wp_p_0 | ||
386 | 382 | y=log(x) | ||
387 | 383 | z=0.5*log(Q2) | ||
388 | 384 | if(pol.eq.1)then | ||
389 | 385 | tmp=ewa_wp_p_1p(y,z) | ||
390 | 386 | else if(pol.eq.-1)then | ||
391 | 387 | tmp=ewa_wp_p_1m(y,z) | ||
392 | 388 | else | ||
393 | 389 | tmp=ewa_wp_p_0(y,z) | ||
394 | 390 | endif | ||
395 | 391 | ewa_wp_p=tmp/x*y*y | ||
396 | 392 | end | ||
397 | 393 | function ewa_wp_p_1p(y,z) | ||
398 | 394 | implicit none | ||
399 | 395 | real*8 ewa_wp_p_1p,y,z | ||
400 | 396 | integer narg,nny,nnz | ||
401 | 397 | parameter (narg=2) | ||
402 | 398 | parameter (nny=32) | ||
403 | 399 | parameter (nnz=8) | ||
404 | 400 | integer iny,inz,nent(narg) | ||
405 | 401 | real*8 tmp,dfint,ymap,zmap | ||
406 | 402 | real*8 arg(narg),ent(nny+nnz) | ||
407 | 403 | real*8 yv(nny),zv(nnz),gridv(nny,nnz) | ||
408 | 404 | logical firsttime | ||
409 | 405 | external dfint,ymap,zmap | ||
410 | 406 | data yv/ | ||
411 | 407 | # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, | ||
412 | 408 | # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, | ||
413 | 409 | # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, | ||
414 | 410 | # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, | ||
415 | 411 | # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, | ||
416 | 412 | # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, | ||
417 | 413 | # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, | ||
418 | 414 | # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ | ||
419 | 415 | data zv/ | ||
420 | 416 | # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, | ||
421 | 417 | # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ | ||
422 | 418 | data (gridv(iny, 1),iny=1,32)/ | ||
423 | 419 | # 3.5423305e-07, 2.8295336e-07, 2.2903220e-07, 1.8758200e-07, | ||
424 | 420 | # 1.5559163e-07, 1.3038773e-07, 1.1025515e-07, 9.4027921e-08, | ||
425 | 421 | # 8.0829168e-08, 7.0061706e-08, 6.1294211e-08, 5.4182560e-08, | ||
426 | 422 | # 4.8450890e-08, 4.3888687e-08, 4.0319491e-08, 3.7580596e-08, | ||
427 | 423 | # 3.5520713e-08, 3.3952301e-08, 3.2625426e-08, 3.1187707e-08, | ||
428 | 424 | # 2.9181849e-08, 2.6154236e-08, 2.1900372e-08, 1.6640020e-08, | ||
429 | 425 | # 1.1099066e-08, 6.2780040e-09, 2.8842540e-09, 1.0025616e-09, | ||
430 | 426 | # 2.4219639e-10, 3.2430180e-11, 1.7122412e-12, 4.1237372e-12/ | ||
431 | 427 | data (gridv(iny, 2),iny=1,32)/ | ||
432 | 428 | # 9.6800285e-03, 7.5895745e-03, 6.0144129e-03, 4.8116391e-03, | ||
433 | 429 | # 3.8906828e-03, 3.1743361e-03, 2.6106310e-03, 2.1637757e-03, | ||
434 | 430 | # 1.8068388e-03, 1.5208169e-03, 1.2917371e-03, 1.1084546e-03, | ||
435 | 431 | # 9.6221855e-04, 8.4652524e-04, 7.5595982e-04, 6.8586986e-04, | ||
436 | 432 | # 6.3206533e-04, 5.8999236e-04, 5.5430903e-04, 5.1815672e-04, | ||
437 | 433 | # 4.7362998e-04, 4.1384517e-04, 3.3686600e-04, 2.4790947e-04, | ||
438 | 434 | # 1.5951917e-04, 8.6605399e-05, 3.7927081e-05, 1.2444648e-05, | ||
439 | 435 | # 2.7972986e-06, 3.3735215e-07, 1.3499999e-08, 3.8170248e-08/ | ||
440 | 436 | data (gridv(iny, 3),iny=1,32)/ | ||
441 | 437 | # 2.6802909e-02, 2.0666858e-02, 1.6084293e-02, 1.2619023e-02, | ||
442 | 438 | # 9.9957736e-03, 7.9819494e-03, 6.4206742e-03, 5.2026236e-03, | ||
443 | 439 | # 4.2458765e-03, 3.4918949e-03, 2.8976082e-03, 2.4290655e-03, | ||
444 | 440 | # 2.0601111e-03, 1.7714145e-03, 1.5472491e-03, 1.3744754e-03, | ||
445 | 441 | # 1.2417664e-03, 1.1376810e-03, 1.0498817e-03, 9.6384193e-04, | ||
446 | 442 | # 8.6434504e-04, 7.3958460e-04, 5.8805171e-04, 4.2143198e-04, | ||
447 | 443 | # 2.6317925e-04, 1.3808501e-04, 5.8100243e-05, 1.8168748e-05, | ||
448 | 444 | # 3.8451248e-06, 4.2503569e-07, 1.2748665e-08, 4.3387870e-08/ | ||
449 | 445 | data (gridv(iny, 4),iny=1,32)/ | ||
450 | 446 | # 5.2421053e-02, 3.9824965e-02, 3.0512558e-02, 2.3545386e-02, | ||
451 | 447 | # 1.8330098e-02, 1.4377269e-02, 1.1354532e-02, 9.0302263e-03, | ||
452 | 448 | # 7.2316381e-03, 5.8351965e-03, 4.7504014e-03, 3.9068753e-03, | ||
453 | 449 | # 3.2509450e-03, 2.7436667e-03, 2.3536072e-03, 2.0551591e-03, | ||
454 | 450 | # 1.8269264e-03, 1.6483845e-03, 1.4987780e-03, 1.3553122e-03, | ||
455 | 451 | # 1.1959351e-03, 1.0052207e-03, 7.8338419e-04, 5.4881055e-04, | ||
456 | 452 | # 3.3404786e-04, 1.7020660e-04, 6.9197187e-05, 2.0763953e-05, | ||
457 | 453 | # 4.1724093e-06, 4.2803444e-07, 9.3531305e-09, 3.9817765e-08/ | ||
458 | 454 | data (gridv(iny, 5),iny=1,32)/ | ||
459 | 455 | # 8.7314473e-02, 6.5462234e-02, 4.9470387e-02, 3.7629031e-02, | ||
460 | 456 | # 2.8860417e-02, 2.2292410e-02, 1.7332180e-02, 1.3567321e-02, | ||
461 | 457 | # 1.0692431e-02, 8.4897045e-03, 6.8007137e-03, 5.5036549e-03, | ||
462 | 458 | # 4.5068644e-03, 3.7444546e-03, 3.1638216e-03, 2.7231011e-03, | ||
463 | 459 | # 2.3880260e-03, 2.1270240e-03, 1.9097372e-03, 1.7046592e-03, | ||
464 | 460 | # 1.4833082e-03, 1.2275453e-03, 9.4002916e-04, 6.4560015e-04, | ||
465 | 461 | # 3.8423698e-04, 1.9081605e-04, 7.5273640e-05, 2.1785061e-05, | ||
466 | 462 | # 4.1829038e-06, 4.0198589e-07, 6.0711799e-09, 3.4349528e-08/ | ||
467 | 463 | data (gridv(iny, 6),iny=1,32)/ | ||
468 | 464 | # 1.3235511e-01, 9.8047579e-02, 7.3187600e-02, 5.4960335e-02, | ||
469 | 465 | # 4.1600160e-02, 3.1701979e-02, 2.4311750e-02, 1.8768166e-02, | ||
470 | 466 | # 1.4585527e-02, 1.1418854e-02, 9.0192598e-03, 7.1973844e-03, | ||
471 | 467 | # 5.8123298e-03, 4.7637364e-03, 3.9726338e-03, 3.3768371e-03, | ||
472 | 468 | # 2.9266403e-03, 2.5776574e-03, 2.2889023e-03, 2.0198147e-03, | ||
473 | 469 | # 1.7358250e-03, 1.4167343e-03, 1.0680290e-03, 7.2056798e-04, | ||
474 | 470 | # 4.2032019e-04, 2.0398263e-04, 7.8308169e-05, 2.1899198e-05, | ||
475 | 471 | # 4.0241531e-06, 3.6414048e-07, 3.7675413e-09, 2.9031813e-08/ | ||
476 | 472 | data (gridv(iny, 7),iny=1,32)/ | ||
477 | 473 | # 1.9057983e-01, 1.3957407e-01, 1.0297250e-01, 7.6391524e-02, | ||
478 | 474 | # 5.7105084e-02, 4.2965226e-02, 3.2523923e-02, 2.4779895e-02, | ||
479 | 475 | # 1.9003972e-02, 1.4680964e-02, 1.1442346e-02, 9.0104755e-03, | ||
480 | 476 | # 7.1810453e-03, 5.8100245e-03, 4.7852651e-03, 4.0196945e-03, | ||
481 | 477 | # 3.4450331e-03, 3.0020034e-03, 2.6377816e-03, 2.3022876e-03, | ||
482 | 478 | # 1.9551214e-03, 1.5745712e-03, 1.1692227e-03, 7.7537535e-04, | ||
483 | 479 | # 4.4359770e-04, 2.1050710e-04, 7.8557363e-05, 2.0871834e-05, | ||
484 | 480 | # 3.5743974e-06, 2.9762988e-07, 2.7844229e-09, 2.2782149e-08/ | ||
485 | 481 | data (gridv(iny, 8),iny=1,32)/ | ||
486 | 482 | # 2.6712405e-01, 1.9341146e-01, 1.4102973e-01, 1.0336364e-01, | ||
487 | 483 | # 7.6305708e-02, 5.6682239e-02, 4.2352056e-02, 3.1846115e-02, | ||
488 | 484 | # 2.4101065e-02, 1.8371384e-02, 1.4128575e-02, 1.0978416e-02, | ||
489 | 485 | # 8.6341061e-03, 6.8955860e-03, 5.6086588e-03, 4.6555113e-03, | ||
490 | 486 | # 3.9452818e-03, 3.4012072e-03, 2.9571084e-03, 2.5527100e-03, | ||
491 | 487 | # 2.1419401e-03, 1.7020208e-03, 1.2447953e-03, 8.1123628e-04, | ||
492 | 488 | # 4.5515586e-04, 2.1111600e-04, 7.6224092e-05, 1.8396998e-05, | ||
493 | 489 | # 2.7018652e-06, 1.8403044e-07, 1.1449565e-09, 1.2394449e-08/ | ||
494 | 490 | data firsttime/.true./ | ||
495 | 491 | save | ||
496 | 492 | if(firsttime)then | ||
497 | 493 | firsttime=.false. | ||
498 | 494 | nent(1)=nny | ||
499 | 495 | nent(2)=nnz | ||
500 | 496 | do iny=1,nny | ||
501 | 497 | ent(iny)=(yv(iny)) | ||
502 | 498 | enddo | ||
503 | 499 | do inz=1,nnz | ||
504 | 500 | ent(nny+inz)=(zv(inz)) | ||
505 | 501 | enddo | ||
506 | 502 | endif | ||
507 | 503 | arg(1)=(y) | ||
508 | 504 | arg(2)=(z) | ||
509 | 505 | tmp=dfint(narg,arg,nent,ent,gridv) | ||
510 | 506 | ewa_wp_p_1p=tmp | ||
511 | 507 | return | ||
512 | 508 | end | ||
513 | 509 | function ewa_wp_p_1m(y,z) | ||
514 | 510 | implicit none | ||
515 | 511 | real*8 ewa_wp_p_1m,y,z | ||
516 | 512 | integer narg,nny,nnz | ||
517 | 513 | parameter (narg=2) | ||
518 | 514 | parameter (nny=32) | ||
519 | 515 | parameter (nnz=8) | ||
520 | 516 | integer iny,inz,nent(narg) | ||
521 | 517 | real*8 tmp,dfint,ymap,zmap | ||
522 | 518 | real*8 arg(narg),ent(nny+nnz) | ||
523 | 519 | real*8 yv(nny),zv(nnz),gridv(nny,nnz) | ||
524 | 520 | logical firsttime | ||
525 | 521 | external dfint,ymap,zmap | ||
526 | 522 | data yv/ | ||
527 | 523 | # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, | ||
528 | 524 | # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, | ||
529 | 525 | # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, | ||
530 | 526 | # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, | ||
531 | 527 | # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, | ||
532 | 528 | # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, | ||
533 | 529 | # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, | ||
534 | 530 | # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ | ||
535 | 531 | data zv/ | ||
536 | 532 | # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, | ||
537 | 533 | # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ | ||
538 | 534 | data (gridv(iny, 1),iny=1,32)/ | ||
539 | 535 | # 2.2352243e-07, 1.7777182e-07, 1.4298652e-07, 1.1622085e-07, | ||
540 | 536 | # 9.5328508e-08, 7.8759840e-08, 6.5499586e-08, 5.4802442e-08, | ||
541 | 537 | # 4.6136489e-08, 3.9104599e-08, 3.3386967e-08, 2.8725277e-08, | ||
542 | 538 | # 2.4905274e-08, 2.1731925e-08, 1.9030359e-08, 1.6631364e-08, | ||
543 | 539 | # 1.4386235e-08, 1.2169804e-08, 9.9111740e-09, 7.6254325e-09, | ||
544 | 540 | # 5.4230477e-09, 3.4799784e-09, 1.9601523e-09, 9.3903981e-10, | ||
545 | 541 | # 3.6862928e-10, 1.1297902e-10, 2.5188758e-11, 3.6724956e-12, | ||
546 | 542 | # 2.9351639e-13, 8.1701272e-15, 7.6912480e-17, 6.8729255e-27/ | ||
547 | 543 | data (gridv(iny, 2),iny=1,32)/ | ||
548 | 544 | # 5.9726888e-03, 4.6455606e-03, 3.6455128e-03, 2.8853282e-03, | ||
549 | 545 | # 2.3012642e-03, 1.8468005e-03, 1.4906859e-03, 1.2098779e-03, | ||
550 | 546 | # 9.8764085e-04, 8.1150430e-04, 6.7166904e-04, 5.6040282e-04, | ||
551 | 547 | # 4.7152850e-04, 3.9983688e-04, 3.4081959e-04, 2.9051542e-04, | ||
552 | 548 | # 2.4549043e-04, 2.0307075e-04, 1.6177240e-04, 1.2167096e-04, | ||
553 | 549 | # 8.4473943e-05, 5.2813192e-05, 2.8909650e-05, 1.3417511e-05, | ||
554 | 550 | # 5.0832560e-06, 1.4959648e-06, 3.1801753e-07, 4.3791104e-08, | ||
555 | 551 | # 3.2498348e-09, 8.1063886e-11, 6.0039546e-13, 6.3617388e-23/ | ||
556 | 552 | data (gridv(iny, 3),iny=1,32)/ | ||
557 | 553 | # 1.6219214e-02, 1.2379365e-02, 9.5193091e-03, 7.3739795e-03, | ||
558 | 554 | # 5.7510065e-03, 4.5098861e-03, 3.5553416e-03, 2.8172455e-03, | ||
559 | 555 | # 2.2446775e-03, 1.7999287e-03, 1.4539007e-03, 1.1841462e-03, | ||
560 | 556 | # 9.7322588e-04, 8.0691077e-04, 6.7339686e-04, 5.6275965e-04, | ||
561 | 557 | # 4.6677178e-04, 3.7925827e-04, 2.9674760e-04, 2.1907115e-04, | ||
562 | 558 | # 1.4910620e-04, 9.1228668e-05, 4.8765008e-05, 2.2043195e-05, | ||
563 | 559 | # 8.1072382e-06, 2.3064166e-06, 4.7120345e-07, 6.1862016e-08, | ||
564 | 560 | # 4.3153587e-09, 9.8155908e-11, 5.5917625e-13, 7.2313499e-23/ | ||
565 | 561 | data (gridv(iny, 4),iny=1,32)/ | ||
566 | 562 | # 3.1188696e-02, 2.3420186e-02, 1.7702079e-02, 1.3467734e-02, | ||
567 | 563 | # 1.0309782e-02, 7.9318460e-03, 6.1325773e-03, 4.7646388e-03, | ||
568 | 564 | # 3.7215358e-03, 2.9251760e-03, 2.3161962e-03, 1.8496758e-03, | ||
569 | 565 | # 1.4912341e-03, 1.2139639e-03, 9.9569551e-04, 8.1869337e-04, | ||
570 | 566 | # 6.6868465e-04, 5.3525022e-04, 4.1252936e-04, 2.9977979e-04, | ||
571 | 567 | # 2.0061564e-04, 1.2049765e-04, 6.3112103e-05, 2.7890159e-05, | ||
572 | 568 | # 1.0000143e-05, 2.7633522e-06, 5.4561380e-07, 6.8754820e-08, | ||
573 | 569 | # 4.5477918e-09, 9.5512862e-11, 4.0175364e-13, 6.6363321e-23/ | ||
574 | 570 | data (gridv(iny, 5),iny=1,32)/ | ||
575 | 571 | # 5.1182299e-02, 3.7889407e-02, 2.8215137e-02, 2.1136435e-02, | ||
576 | 572 | # 1.5925131e-02, 1.2054633e-02, 9.1677464e-03, 7.0050385e-03, | ||
577 | 573 | # 5.3803216e-03, 4.1584009e-03, 3.2378903e-03, 2.5431829e-03, | ||
578 | 574 | # 2.0176932e-03, 1.6173071e-03, 1.3073170e-03, 1.0602661e-03, | ||
579 | 575 | # 8.5475523e-04, 6.7549247e-04, 5.1388835e-04, 3.6836179e-04, | ||
580 | 576 | # 2.4290493e-04, 1.4356363e-04, 7.3865824e-05, 3.2002011e-05, | ||
581 | 577 | # 1.1221536e-05, 3.0227536e-06, 5.7924224e-07, 7.0416470e-08, | ||
582 | 578 | # 4.4455239e-09, 8.7027993e-11, 2.5174163e-13, 5.7249565e-23/ | ||
583 | 579 | data (gridv(iny, 6),iny=1,32)/ | ||
584 | 580 | # 7.6557895e-02, 5.5955076e-02, 4.1120172e-02, 3.0385490e-02, | ||
585 | 581 | # 2.2576036e-02, 1.6847439e-02, 1.2629288e-02, 9.5105660e-03, | ||
586 | 582 | # 7.1985244e-03, 5.4827229e-03, 4.2072308e-03, 3.2573133e-03, | ||
587 | 583 | # 2.5483598e-03, 2.0155007e-03, 1.6086767e-03, 1.2891809e-03, | ||
588 | 584 | # 1.0274915e-03, 8.0291084e-04, 6.0382880e-04, 4.2759547e-04, | ||
589 | 585 | # 2.7827791e-04, 1.6211285e-04, 8.2090171e-05, 3.4938634e-05, | ||
590 | 586 | # 1.2008139e-05, 3.1607346e-06, 5.8901727e-07, 6.9129330e-08, | ||
591 | 587 | # 4.1796650e-09, 7.6790396e-11, 1.4801921e-13, 4.8386670e-23/ | ||
592 | 588 | data (gridv(iny, 7),iny=1,32)/ | ||
593 | 589 | # 1.0885701e-01, 7.8595632e-02, 5.7044003e-02, 4.1606207e-02, | ||
594 | 590 | # 3.0510595e-02, 2.2464186e-02, 1.6611725e-02, 1.2338586e-02, | ||
595 | 591 | # 9.2105421e-03, 6.9185264e-03, 5.2361582e-03, 3.9989670e-03, | ||
596 | 592 | # 3.0873318e-03, 2.4109199e-03, 1.9013023e-03, 1.5064199e-03, | ||
597 | 593 | # 1.1876339e-03, 9.1812852e-04, 6.8290918e-04, 4.7797892e-04, | ||
598 | 594 | # 3.0715516e-04, 1.7645732e-04, 8.7991353e-05, 3.6807315e-05, | ||
599 | 595 | # 1.2399813e-05, 3.1850040e-06, 5.7189229e-07, 6.3166456e-08, | ||
600 | 596 | # 3.5998373e-09, 6.0994275e-11, 1.0798487e-13, 3.7970497e-23/ | ||
601 | 597 | data (gridv(iny, 8),iny=1,32)/ | ||
602 | 598 | # 1.5068353e-01, 1.0749621e-01, 7.7041842e-02, 5.5476031e-02, | ||
603 | 599 | # 4.0143008e-02, 2.9160969e-02, 2.1271437e-02, 1.5583408e-02, | ||
604 | 600 | # 1.1472391e-02, 8.4985083e-03, 6.3433700e-03, 4.7785683e-03, | ||
605 | 601 | # 3.6402566e-03, 2.8065350e-03, 2.1865589e-03, 1.7127763e-03, | ||
606 | 602 | # 1.3356279e-03, 1.0214490e-03, 7.5140048e-04, 5.1978083e-04, | ||
607 | 603 | # 3.2977123e-04, 1.8681197e-04, 9.1728471e-05, 3.7697570e-05, | ||
608 | 604 | # 1.2430821e-05, 3.1016518e-06, 5.2367878e-07, 5.0603141e-08, | ||
609 | 605 | # 2.5423963e-09, 3.4635376e-11, 4.1186342e-14, 2.0657555e-23/ | ||
610 | 606 | data firsttime/.true./ | ||
611 | 607 | save | ||
612 | 608 | if(firsttime)then | ||
613 | 609 | firsttime=.false. | ||
614 | 610 | nent(1)=nny | ||
615 | 611 | nent(2)=nnz | ||
616 | 612 | do iny=1,nny | ||
617 | 613 | ent(iny)=(yv(iny)) | ||
618 | 614 | enddo | ||
619 | 615 | do inz=1,nnz | ||
620 | 616 | ent(nny+inz)=(zv(inz)) | ||
621 | 617 | enddo | ||
622 | 618 | endif | ||
623 | 619 | arg(1)=(y) | ||
624 | 620 | arg(2)=(z) | ||
625 | 621 | tmp=dfint(narg,arg,nent,ent,gridv) | ||
626 | 622 | ewa_wp_p_1m=tmp | ||
627 | 623 | return | ||
628 | 624 | end | ||
629 | 625 | function ewa_wp_p_0(y,z) | ||
630 | 626 | implicit none | ||
631 | 627 | real*8 ewa_wp_p_0,y,z | ||
632 | 628 | integer narg,nny,nnz | ||
633 | 629 | parameter (narg=2) | ||
634 | 630 | parameter (nny=32) | ||
635 | 631 | parameter (nnz=8) | ||
636 | 632 | integer iny,inz,nent(narg) | ||
637 | 633 | real*8 tmp,dfint,ymap,zmap | ||
638 | 634 | real*8 arg(narg),ent(nny+nnz) | ||
639 | 635 | real*8 yv(nny),zv(nnz),gridv(nny,nnz) | ||
640 | 636 | logical firsttime | ||
641 | 637 | external dfint,ymap,zmap | ||
642 | 638 | data yv/ | ||
643 | 639 | # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, | ||
644 | 640 | # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, | ||
645 | 641 | # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, | ||
646 | 642 | # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, | ||
647 | 643 | # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, | ||
648 | 644 | # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, | ||
649 | 645 | # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, | ||
650 | 646 | # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ | ||
651 | 647 | data zv/ | ||
652 | 648 | # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, | ||
653 | 649 | # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ | ||
654 | 650 | data (gridv(iny, 1),iny=1,32)/ | ||
655 | 651 | # 3.5187008e-03, 2.8034859e-03, 2.2605790e-03, 1.8430659e-03, | ||
656 | 652 | # 1.5186478e-03, 1.2616393e-03, 1.0560624e-03, 8.9012320e-04, | ||
657 | 653 | # 7.5538508e-04, 6.4582892e-04, 5.5671967e-04, 4.8420795e-04, | ||
658 | 654 | # 4.2519673e-04, 3.7700036e-04, 3.3717825e-04, 3.0339543e-04, | ||
659 | 655 | # 2.7329402e-04, 2.4447706e-04, 2.1469168e-04, 1.8222898e-04, | ||
660 | 656 | # 1.4664818e-04, 1.0943422e-04, 7.3828376e-05, 4.3723959e-05, | ||
661 | 657 | # 2.1983802e-05, 9.0102753e-06, 2.8448697e-06, 6.3299117e-07, | ||
662 | 658 | # 8.7487931e-08, 5.2831049e-09, 1.1568847e-10, 1.8415286e-15/ | ||
663 | 659 | data (gridv(iny, 2),iny=1,32)/ | ||
664 | 660 | # 5.2548138e-03, 4.0999760e-03, 3.2295174e-03, 2.5667153e-03, | ||
665 | 661 | # 2.0584664e-03, 1.6625476e-03, 1.3517402e-03, 1.1060358e-03, | ||
666 | 662 | # 9.1078460e-04, 7.5538896e-04, 6.3160108e-04, 5.3288902e-04, | ||
667 | 663 | # 4.5415547e-04, 3.9119341e-04, 3.4038971e-04, 2.9850573e-04, | ||
668 | 664 | # 2.6252377e-04, 2.2960220e-04, 1.9724634e-04, 1.6373150e-04, | ||
669 | 665 | # 1.2870167e-04, 9.3622734e-05, 6.1405954e-05, 3.5240336e-05, | ||
670 | 666 | # 1.7102418e-05, 6.7317976e-06, 2.0267789e-06, 4.2595999e-07, | ||
671 | 667 | # 5.4725748e-08, 2.9719851e-09, 4.8981810e-11, 9.4455659e-16/ | ||
672 | 668 | data (gridv(iny, 3),iny=1,32)/ | ||
673 | 669 | # 7.1876070e-03, 5.5076672e-03, 4.2546965e-03, 3.3120537e-03, | ||
674 | 670 | # 2.5990113e-03, 2.0524391e-03, 1.6307512e-03, 1.3034276e-03, | ||
675 | 671 | # 1.0481689e-03, 8.4882548e-04, 6.9291048e-04, 5.7083971e-04, | ||
676 | 672 | # 4.7522642e-04, 4.0016654e-04, 3.4076979e-04, 2.9285118e-04, | ||
677 | 673 | # 2.5271536e-04, 2.1707747e-04, 1.8321030e-04, 1.4933939e-04, | ||
678 | 674 | # 1.1513883e-04, 8.2005502e-05, 5.2541044e-05, 2.9373325e-05, | ||
679 | 675 | # 1.3840817e-05, 5.2672006e-06, 1.5241105e-06, 3.0542392e-07, | ||
680 | 676 | # 3.6915891e-08, 1.8347912e-09, 2.2114402e-11, 5.3685066e-16/ | ||
681 | 677 | data (gridv(iny, 4),iny=1,32)/ | ||
682 | 678 | # 9.2731430e-03, 6.9948236e-03, 5.3144732e-03, 4.0652903e-03, | ||
683 | 679 | # 3.1328132e-03, 2.4282484e-03, 1.8929862e-03, 1.4841263e-03, | ||
684 | 680 | # 1.1704474e-03, 9.2943341e-04, 7.4399977e-04, 6.0109301e-04, | ||
685 | 681 | # 4.9092271e-04, 4.0580385e-04, 3.3953903e-04, 2.8700023e-04, | ||
686 | 682 | # 2.4383801e-04, 2.0634913e-04, 1.7159359e-04, 1.3773971e-04, | ||
687 | 683 | # 1.0446314e-04, 7.3071554e-05, 4.5887405e-05, 2.5084061e-05, | ||
688 | 684 | # 1.1524443e-05, 4.2604502e-06, 1.1914778e-06, 2.2920043e-07, | ||
689 | 685 | # 2.6286612e-08, 1.2107299e-09, 1.0080946e-11, 3.2845426e-16/ | ||
690 | 686 | data (gridv(iny, 5),iny=1,32)/ | ||
691 | 687 | # 1.1477138e-02, 8.5381747e-03, 6.3939961e-03, 4.8178867e-03, | ||
692 | 688 | # 3.6556258e-03, 2.7887348e-03, 2.1392407e-03, 1.6500181e-03, | ||
693 | 689 | # 1.2800074e-03, 9.9975891e-04, 7.8717888e-04, 6.2562654e-04, | ||
694 | 690 | # 5.0280633e-04, 4.0921770e-04, 3.3736136e-04, 2.8121172e-04, | ||
695 | 691 | # 2.3579394e-04, 1.9702349e-04, 1.6176823e-04, 1.2814066e-04, | ||
696 | 692 | # 9.5802895e-05, 6.5966820e-05, 4.0705648e-05, 2.1818543e-05, | ||
697 | 693 | # 9.8043554e-06, 3.5336308e-06, 9.5911504e-07, 1.7800578e-07, | ||
698 | 694 | # 1.9496528e-08, 8.4002050e-10, 4.3204403e-12, 2.1251138e-16/ | ||
699 | 695 | data (gridv(iny, 6),iny=1,32)/ | ||
700 | 696 | # 1.3802612e-02, 1.0141026e-02, 7.4971127e-03, 5.5741476e-03, | ||
701 | 697 | # 4.1720271e-03, 3.1386776e-03, 2.3737894e-03, 1.8049673e-03, | ||
702 | 698 | # 1.3802137e-03, 1.0625971e-03, 8.2471236e-04, 6.4617450e-04, | ||
703 | 699 | # 5.1210721e-04, 4.1120934e-04, 3.3467950e-04, 2.7561780e-04, | ||
704 | 700 | # 2.2846603e-04, 1.8878732e-04, 1.5327653e-04, 1.1999194e-04, | ||
705 | 701 | # 8.8573452e-05, 6.0136140e-05, 3.6529669e-05, 1.9238247e-05, | ||
706 | 702 | # 8.4746327e-06, 2.9853000e-06, 7.8837418e-07, 1.4128313e-07, | ||
707 | 703 | # 1.4820095e-08, 6.0070190e-10, 1.7185758e-12, 1.4369011e-16/ | ||
708 | 704 | data (gridv(iny, 7),iny=1,32)/ | ||
709 | 705 | # 1.6432308e-02, 1.1930946e-02, 8.7133575e-03, 6.3970356e-03, | ||
710 | 706 | # 4.7264435e-03, 3.5091707e-03, 2.6187361e-03, 1.9645111e-03, | ||
711 | 707 | # 1.4819077e-03, 1.1254264e-03, 8.6166780e-04, 6.6606423e-04, | ||
712 | 708 | # 5.2091794e-04, 4.1296488e-04, 3.3203523e-04, 2.7031018e-04, | ||
713 | 709 | # 2.2163224e-04, 1.8120725e-04, 1.4555330e-04, 1.1266604e-04, | ||
714 | 710 | # 8.2152609e-05, 5.5024591e-05, 3.2922540e-05, 1.7044970e-05, | ||
715 | 711 | # 7.3639505e-06, 2.5349841e-06, 6.4817141e-07, 1.0938699e-07, | ||
716 | 712 | # 1.0789142e-08, 4.0267815e-10, 9.9738412e-13, 9.3965182e-17/ | ||
717 | 713 | data (gridv(iny, 8),iny=1,32)/ | ||
718 | 714 | # 1.9588443e-02, 1.4054534e-02, 1.0140342e-02, 7.3511754e-03, | ||
719 | 715 | # 5.3617513e-03, 3.9285711e-03, 2.8927241e-03, 2.1409034e-03, | ||
720 | 716 | # 1.5930991e-03, 1.1934393e-03, 9.0134688e-04, 6.8734040e-04, | ||
721 | 717 | # 5.3043871e-04, 4.1513075e-04, 3.2970284e-04, 2.6531895e-04, | ||
722 | 718 | # 2.1516289e-04, 1.7405250e-04, 1.3830950e-04, 1.0585100e-04, | ||
723 | 719 | # 7.6238215e-05, 5.0368640e-05, 2.9681423e-05, 1.5103253e-05, | ||
724 | 720 | # 6.3960840e-06, 2.1473293e-06, 5.2444493e-07, 7.7848289e-08, | ||
725 | 721 | # 6.7448840e-09, 2.0379331e-10, 2.3209743e-13, 4.3818080e-17/ | ||
726 | 722 | data firsttime/.true./ | ||
727 | 723 | save | ||
728 | 724 | if(firsttime)then | ||
729 | 725 | firsttime=.false. | ||
730 | 726 | nent(1)=nny | ||
731 | 727 | nent(2)=nnz | ||
732 | 728 | do iny=1,nny | ||
733 | 729 | ent(iny)=(yv(iny)) | ||
734 | 730 | enddo | ||
735 | 731 | do inz=1,nnz | ||
736 | 732 | ent(nny+inz)=(zv(inz)) | ||
737 | 733 | enddo | ||
738 | 734 | endif | ||
739 | 735 | arg(1)=(y) | ||
740 | 736 | arg(2)=(z) | ||
741 | 737 | tmp=dfint(narg,arg,nent,ent,gridv) | ||
742 | 738 | ewa_wp_p_0=tmp | ||
743 | 739 | return | ||
744 | 740 | end | ||
745 | 741 | function ewa_wm_p(x,Q2,pol) | ||
746 | 742 | implicit none | ||
747 | 743 | real*8 ewa_wm_p | ||
748 | 744 | real*8 x,Q2 | ||
749 | 745 | integer pol | ||
750 | 746 | real*8 tmp | ||
751 | 747 | real*8 y,z | ||
752 | 748 | real*8 ylow,yupp,zlow,zupp | ||
753 | 749 | parameter (ylow=-16.1181,yupp=-1e-07) | ||
754 | 750 | parameter (zlow=4.38683,zupp=13.8155) | ||
755 | 751 | real*8 ewa_wm_p_1p | ||
756 | 752 | real*8 ewa_wm_p_1m | ||
757 | 753 | real*8 ewa_wm_p_0 | ||
758 | 754 | y=log(x) | ||
759 | 755 | z=0.5*log(Q2) | ||
760 | 756 | if(pol.eq.1)then | ||
761 | 757 | tmp=ewa_wm_p_1p(y,z) | ||
762 | 758 | else if(pol.eq.-1)then | ||
763 | 759 | tmp=ewa_wm_p_1m(y,z) | ||
764 | 760 | else | ||
765 | 761 | tmp=ewa_wm_p_0(y,z) | ||
766 | 762 | endif | ||
767 | 763 | ewa_wm_p=tmp/x*y*y | ||
768 | 764 | end | ||
769 | 765 | function ewa_wm_p_1p(y,z) | ||
770 | 766 | implicit none | ||
771 | 767 | real*8 ewa_wm_p_1p,y,z | ||
772 | 768 | integer narg,nny,nnz | ||
773 | 769 | parameter (narg=2) | ||
774 | 770 | parameter (nny=32) | ||
775 | 771 | parameter (nnz=8) | ||
776 | 772 | integer iny,inz,nent(narg) | ||
777 | 773 | real*8 tmp,dfint,ymap,zmap | ||
778 | 774 | real*8 arg(narg),ent(nny+nnz) | ||
779 | 775 | real*8 yv(nny),zv(nnz),gridv(nny,nnz) | ||
780 | 776 | logical firsttime | ||
781 | 777 | external dfint,ymap,zmap | ||
782 | 778 | data yv/ | ||
783 | 779 | # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, | ||
784 | 780 | # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, | ||
785 | 781 | # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, | ||
786 | 782 | # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, | ||
787 | 783 | # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, | ||
788 | 784 | # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, | ||
789 | 785 | # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, | ||
790 | 786 | # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ | ||
791 | 787 | data zv/ | ||
792 | 788 | # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, | ||
793 | 789 | # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ | ||
794 | 790 | data (gridv(iny, 1),iny=1,32)/ | ||
795 | 791 | # 3.5423305e-07, 2.8295336e-07, 2.2903220e-07, 1.8758200e-07, | ||
796 | 792 | # 1.5559163e-07, 1.3038773e-07, 1.1025515e-07, 9.4027921e-08, | ||
797 | 793 | # 8.0829168e-08, 7.0061706e-08, 6.1294211e-08, 5.4182560e-08, | ||
798 | 794 | # 4.8450890e-08, 4.3888687e-08, 4.0319491e-08, 3.7580596e-08, | ||
799 | 795 | # 3.5520713e-08, 3.3952301e-08, 3.2625426e-08, 3.1187707e-08, | ||
800 | 796 | # 2.9181849e-08, 2.6154236e-08, 2.1900372e-08, 1.6640020e-08, | ||
801 | 797 | # 1.1099066e-08, 6.2780040e-09, 2.8842540e-09, 1.0025616e-09, | ||
802 | 798 | # 2.4219639e-10, 3.2430180e-11, 1.7122412e-12, 4.1237372e-12/ | ||
803 | 799 | data (gridv(iny, 2),iny=1,32)/ | ||
804 | 800 | # 9.6800285e-03, 7.5895745e-03, 6.0144129e-03, 4.8116391e-03, | ||
805 | 801 | # 3.8906828e-03, 3.1743361e-03, 2.6106310e-03, 2.1637757e-03, | ||
806 | 802 | # 1.8068388e-03, 1.5208169e-03, 1.2917371e-03, 1.1084546e-03, | ||
807 | 803 | # 9.6221855e-04, 8.4652524e-04, 7.5595982e-04, 6.8586986e-04, | ||
808 | 804 | # 6.3206533e-04, 5.8999236e-04, 5.5430903e-04, 5.1815672e-04, | ||
809 | 805 | # 4.7362998e-04, 4.1384517e-04, 3.3686600e-04, 2.4790947e-04, | ||
810 | 806 | # 1.5951917e-04, 8.6605399e-05, 3.7927081e-05, 1.2444648e-05, | ||
811 | 807 | # 2.7972986e-06, 3.3735215e-07, 1.3499999e-08, 3.8170248e-08/ | ||
812 | 808 | data (gridv(iny, 3),iny=1,32)/ | ||
813 | 809 | # 2.6802909e-02, 2.0666858e-02, 1.6084293e-02, 1.2619023e-02, | ||
814 | 810 | # 9.9957736e-03, 7.9819494e-03, 6.4206742e-03, 5.2026236e-03, | ||
815 | 811 | # 4.2458765e-03, 3.4918949e-03, 2.8976082e-03, 2.4290655e-03, | ||
816 | 812 | # 2.0601111e-03, 1.7714145e-03, 1.5472491e-03, 1.3744754e-03, | ||
817 | 813 | # 1.2417664e-03, 1.1376810e-03, 1.0498817e-03, 9.6384193e-04, | ||
818 | 814 | # 8.6434504e-04, 7.3958460e-04, 5.8805171e-04, 4.2143198e-04, | ||
819 | 815 | # 2.6317925e-04, 1.3808501e-04, 5.8100243e-05, 1.8168748e-05, | ||
820 | 816 | # 3.8451248e-06, 4.2503569e-07, 1.2748665e-08, 4.3387870e-08/ | ||
821 | 817 | data (gridv(iny, 4),iny=1,32)/ | ||
822 | 818 | # 5.2421053e-02, 3.9824965e-02, 3.0512558e-02, 2.3545386e-02, | ||
823 | 819 | # 1.8330098e-02, 1.4377269e-02, 1.1354532e-02, 9.0302263e-03, | ||
824 | 820 | # 7.2316381e-03, 5.8351965e-03, 4.7504014e-03, 3.9068753e-03, | ||
825 | 821 | # 3.2509450e-03, 2.7436667e-03, 2.3536072e-03, 2.0551591e-03, | ||
826 | 822 | # 1.8269264e-03, 1.6483845e-03, 1.4987780e-03, 1.3553122e-03, | ||
827 | 823 | # 1.1959351e-03, 1.0052207e-03, 7.8338419e-04, 5.4881055e-04, | ||
828 | 824 | # 3.3404786e-04, 1.7020660e-04, 6.9197187e-05, 2.0763953e-05, | ||
829 | 825 | # 4.1724093e-06, 4.2803444e-07, 9.3531305e-09, 3.9817765e-08/ | ||
830 | 826 | data (gridv(iny, 5),iny=1,32)/ | ||
831 | 827 | # 8.7314473e-02, 6.5462234e-02, 4.9470387e-02, 3.7629031e-02, | ||
832 | 828 | # 2.8860417e-02, 2.2292410e-02, 1.7332180e-02, 1.3567321e-02, | ||
833 | 829 | # 1.0692431e-02, 8.4897045e-03, 6.8007137e-03, 5.5036549e-03, | ||
834 | 830 | # 4.5068644e-03, 3.7444546e-03, 3.1638216e-03, 2.7231011e-03, | ||
835 | 831 | # 2.3880260e-03, 2.1270240e-03, 1.9097372e-03, 1.7046592e-03, | ||
836 | 832 | # 1.4833082e-03, 1.2275453e-03, 9.4002916e-04, 6.4560015e-04, | ||
837 | 833 | # 3.8423698e-04, 1.9081605e-04, 7.5273640e-05, 2.1785061e-05, | ||
838 | 834 | # 4.1829038e-06, 4.0198589e-07, 6.0711799e-09, 3.4349528e-08/ | ||
839 | 835 | data (gridv(iny, 6),iny=1,32)/ | ||
840 | 836 | # 1.3235511e-01, 9.8047579e-02, 7.3187600e-02, 5.4960335e-02, | ||
841 | 837 | # 4.1600160e-02, 3.1701979e-02, 2.4311750e-02, 1.8768166e-02, | ||
842 | 838 | # 1.4585527e-02, 1.1418854e-02, 9.0192598e-03, 7.1973844e-03, | ||
843 | 839 | # 5.8123298e-03, 4.7637364e-03, 3.9726338e-03, 3.3768371e-03, | ||
844 | 840 | # 2.9266403e-03, 2.5776574e-03, 2.2889023e-03, 2.0198147e-03, | ||
845 | 841 | # 1.7358250e-03, 1.4167343e-03, 1.0680290e-03, 7.2056798e-04, | ||
846 | 842 | # 4.2032019e-04, 2.0398263e-04, 7.8308169e-05, 2.1899198e-05, | ||
847 | 843 | # 4.0241531e-06, 3.6414048e-07, 3.7675413e-09, 2.9031813e-08/ | ||
848 | 844 | data (gridv(iny, 7),iny=1,32)/ | ||
849 | 845 | # 1.9057983e-01, 1.3957407e-01, 1.0297250e-01, 7.6391524e-02, | ||
850 | 846 | # 5.7105084e-02, 4.2965226e-02, 3.2523923e-02, 2.4779895e-02, | ||
851 | 847 | # 1.9003972e-02, 1.4680964e-02, 1.1442346e-02, 9.0104755e-03, | ||
852 | 848 | # 7.1810453e-03, 5.8100245e-03, 4.7852651e-03, 4.0196945e-03, | ||
853 | 849 | # 3.4450331e-03, 3.0020034e-03, 2.6377816e-03, 2.3022876e-03, | ||
854 | 850 | # 1.9551214e-03, 1.5745712e-03, 1.1692227e-03, 7.7537535e-04, | ||
855 | 851 | # 4.4359770e-04, 2.1050710e-04, 7.8557363e-05, 2.0871834e-05, | ||
856 | 852 | # 3.5743974e-06, 2.9762988e-07, 2.7844229e-09, 2.2782149e-08/ | ||
857 | 853 | data (gridv(iny, 8),iny=1,32)/ | ||
858 | 854 | # 2.6712405e-01, 1.9341146e-01, 1.4102973e-01, 1.0336364e-01, | ||
859 | 855 | # 7.6305708e-02, 5.6682239e-02, 4.2352056e-02, 3.1846115e-02, | ||
860 | 856 | # 2.4101065e-02, 1.8371384e-02, 1.4128575e-02, 1.0978416e-02, | ||
861 | 857 | # 8.6341061e-03, 6.8955860e-03, 5.6086588e-03, 4.6555113e-03, | ||
862 | 858 | # 3.9452818e-03, 3.4012072e-03, 2.9571084e-03, 2.5527100e-03, | ||
863 | 859 | # 2.1419401e-03, 1.7020208e-03, 1.2447953e-03, 8.1123628e-04, | ||
864 | 860 | # 4.5515586e-04, 2.1111600e-04, 7.6224092e-05, 1.8396998e-05, | ||
865 | 861 | # 2.7018652e-06, 1.8403044e-07, 1.1449565e-09, 1.2394449e-08/ | ||
866 | 862 | data firsttime/.true./ | ||
867 | 863 | save | ||
868 | 864 | if(firsttime)then | ||
869 | 865 | firsttime=.false. | ||
870 | 866 | nent(1)=nny | ||
871 | 867 | nent(2)=nnz | ||
872 | 868 | do iny=1,nny | ||
873 | 869 | ent(iny)=(yv(iny)) | ||
874 | 870 | enddo | ||
875 | 871 | do inz=1,nnz | ||
876 | 872 | ent(nny+inz)=(zv(inz)) | ||
877 | 873 | enddo | ||
878 | 874 | endif | ||
879 | 875 | arg(1)=(y) | ||
880 | 876 | arg(2)=(z) | ||
881 | 877 | tmp=dfint(narg,arg,nent,ent,gridv) | ||
882 | 878 | ewa_wm_p_1p=tmp | ||
883 | 879 | return | ||
884 | 880 | end | ||
885 | 881 | function ewa_wm_p_1m(y,z) | ||
886 | 882 | implicit none | ||
887 | 883 | real*8 ewa_wm_p_1m,y,z | ||
888 | 884 | integer narg,nny,nnz | ||
889 | 885 | parameter (narg=2) | ||
890 | 886 | parameter (nny=32) | ||
891 | 887 | parameter (nnz=8) | ||
892 | 888 | integer iny,inz,nent(narg) | ||
893 | 889 | real*8 tmp,dfint,ymap,zmap | ||
894 | 890 | real*8 arg(narg),ent(nny+nnz) | ||
895 | 891 | real*8 yv(nny),zv(nnz),gridv(nny,nnz) | ||
896 | 892 | logical firsttime | ||
897 | 893 | external dfint,ymap,zmap | ||
898 | 894 | data yv/ | ||
899 | 895 | # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, | ||
900 | 896 | # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, | ||
901 | 897 | # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, | ||
902 | 898 | # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, | ||
903 | 899 | # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, | ||
904 | 900 | # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, | ||
905 | 901 | # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, | ||
906 | 902 | # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ | ||
907 | 903 | data zv/ | ||
908 | 904 | # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, | ||
909 | 905 | # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ | ||
910 | 906 | data (gridv(iny, 1),iny=1,32)/ | ||
911 | 907 | # 2.2352243e-07, 1.7777182e-07, 1.4298652e-07, 1.1622085e-07, | ||
912 | 908 | # 9.5328508e-08, 7.8759840e-08, 6.5499586e-08, 5.4802442e-08, | ||
913 | 909 | # 4.6136489e-08, 3.9104599e-08, 3.3386967e-08, 2.8725277e-08, | ||
914 | 910 | # 2.4905274e-08, 2.1731925e-08, 1.9030359e-08, 1.6631364e-08, | ||
915 | 911 | # 1.4386235e-08, 1.2169804e-08, 9.9111740e-09, 7.6254325e-09, | ||
916 | 912 | # 5.4230477e-09, 3.4799784e-09, 1.9601523e-09, 9.3903981e-10, | ||
917 | 913 | # 3.6862928e-10, 1.1297902e-10, 2.5188758e-11, 3.6724956e-12, | ||
918 | 914 | # 2.9351639e-13, 8.1701272e-15, 7.6912480e-17, 6.8729255e-27/ | ||
919 | 915 | data (gridv(iny, 2),iny=1,32)/ | ||
920 | 916 | # 5.9726888e-03, 4.6455606e-03, 3.6455128e-03, 2.8853282e-03, | ||
921 | 917 | # 2.3012642e-03, 1.8468005e-03, 1.4906859e-03, 1.2098779e-03, | ||
922 | 918 | # 9.8764085e-04, 8.1150430e-04, 6.7166904e-04, 5.6040282e-04, | ||
923 | 919 | # 4.7152850e-04, 3.9983688e-04, 3.4081959e-04, 2.9051542e-04, | ||
924 | 920 | # 2.4549043e-04, 2.0307075e-04, 1.6177240e-04, 1.2167096e-04, | ||
925 | 921 | # 8.4473943e-05, 5.2813192e-05, 2.8909650e-05, 1.3417511e-05, | ||
926 | 922 | # 5.0832560e-06, 1.4959648e-06, 3.1801753e-07, 4.3791104e-08, | ||
927 | 923 | # 3.2498348e-09, 8.1063886e-11, 6.0039546e-13, 6.3617388e-23/ | ||
928 | 924 | data (gridv(iny, 3),iny=1,32)/ | ||
929 | 925 | # 1.6219214e-02, 1.2379365e-02, 9.5193091e-03, 7.3739795e-03, | ||
930 | 926 | # 5.7510065e-03, 4.5098861e-03, 3.5553416e-03, 2.8172455e-03, | ||
931 | 927 | # 2.2446775e-03, 1.7999287e-03, 1.4539007e-03, 1.1841462e-03, | ||
932 | 928 | # 9.7322588e-04, 8.0691077e-04, 6.7339686e-04, 5.6275965e-04, | ||
933 | 929 | # 4.6677178e-04, 3.7925827e-04, 2.9674760e-04, 2.1907115e-04, | ||
934 | 930 | # 1.4910620e-04, 9.1228668e-05, 4.8765008e-05, 2.2043195e-05, | ||
935 | 931 | # 8.1072382e-06, 2.3064166e-06, 4.7120345e-07, 6.1862016e-08, | ||
936 | 932 | # 4.3153587e-09, 9.8155908e-11, 5.5917625e-13, 7.2313499e-23/ | ||
937 | 933 | data (gridv(iny, 4),iny=1,32)/ | ||
938 | 934 | # 3.1188696e-02, 2.3420186e-02, 1.7702079e-02, 1.3467734e-02, | ||
939 | 935 | # 1.0309782e-02, 7.9318460e-03, 6.1325773e-03, 4.7646388e-03, | ||
940 | 936 | # 3.7215358e-03, 2.9251760e-03, 2.3161962e-03, 1.8496758e-03, | ||
941 | 937 | # 1.4912341e-03, 1.2139639e-03, 9.9569551e-04, 8.1869337e-04, | ||
942 | 938 | # 6.6868465e-04, 5.3525022e-04, 4.1252936e-04, 2.9977979e-04, | ||
943 | 939 | # 2.0061564e-04, 1.2049765e-04, 6.3112103e-05, 2.7890159e-05, | ||
944 | 940 | # 1.0000143e-05, 2.7633522e-06, 5.4561380e-07, 6.8754820e-08, | ||
945 | 941 | # 4.5477918e-09, 9.5512862e-11, 4.0175364e-13, 6.6363321e-23/ | ||
946 | 942 | data (gridv(iny, 5),iny=1,32)/ | ||
947 | 943 | # 5.1182299e-02, 3.7889407e-02, 2.8215137e-02, 2.1136435e-02, | ||
948 | 944 | # 1.5925131e-02, 1.2054633e-02, 9.1677464e-03, 7.0050385e-03, | ||
949 | 945 | # 5.3803216e-03, 4.1584009e-03, 3.2378903e-03, 2.5431829e-03, | ||
950 | 946 | # 2.0176932e-03, 1.6173071e-03, 1.3073170e-03, 1.0602661e-03, | ||
951 | 947 | # 8.5475523e-04, 6.7549247e-04, 5.1388835e-04, 3.6836179e-04, | ||
952 | 948 | # 2.4290493e-04, 1.4356363e-04, 7.3865824e-05, 3.2002011e-05, | ||
953 | 949 | # 1.1221536e-05, 3.0227536e-06, 5.7924224e-07, 7.0416470e-08, | ||
954 | 950 | # 4.4455239e-09, 8.7027993e-11, 2.5174163e-13, 5.7249565e-23/ | ||
955 | 951 | data (gridv(iny, 6),iny=1,32)/ | ||
956 | 952 | # 7.6557895e-02, 5.5955076e-02, 4.1120172e-02, 3.0385490e-02, | ||
957 | 953 | # 2.2576036e-02, 1.6847439e-02, 1.2629288e-02, 9.5105660e-03, | ||
958 | 954 | # 7.1985244e-03, 5.4827229e-03, 4.2072308e-03, 3.2573133e-03, | ||
959 | 955 | # 2.5483598e-03, 2.0155007e-03, 1.6086767e-03, 1.2891809e-03, | ||
960 | 956 | # 1.0274915e-03, 8.0291084e-04, 6.0382880e-04, 4.2759547e-04, | ||
961 | 957 | # 2.7827791e-04, 1.6211285e-04, 8.2090171e-05, 3.4938634e-05, | ||
962 | 958 | # 1.2008139e-05, 3.1607346e-06, 5.8901727e-07, 6.9129330e-08, | ||
963 | 959 | # 4.1796650e-09, 7.6790396e-11, 1.4801921e-13, 4.8386670e-23/ | ||
964 | 960 | data (gridv(iny, 7),iny=1,32)/ | ||
965 | 961 | # 1.0885701e-01, 7.8595632e-02, 5.7044003e-02, 4.1606207e-02, | ||
966 | 962 | # 3.0510595e-02, 2.2464186e-02, 1.6611725e-02, 1.2338586e-02, | ||
967 | 963 | # 9.2105421e-03, 6.9185264e-03, 5.2361582e-03, 3.9989670e-03, | ||
968 | 964 | # 3.0873318e-03, 2.4109199e-03, 1.9013023e-03, 1.5064199e-03, | ||
969 | 965 | # 1.1876339e-03, 9.1812852e-04, 6.8290918e-04, 4.7797892e-04, | ||
970 | 966 | # 3.0715516e-04, 1.7645732e-04, 8.7991353e-05, 3.6807315e-05, | ||
971 | 967 | # 1.2399813e-05, 3.1850040e-06, 5.7189229e-07, 6.3166456e-08, | ||
972 | 968 | # 3.5998373e-09, 6.0994275e-11, 1.0798487e-13, 3.7970497e-23/ | ||
973 | 969 | data (gridv(iny, 8),iny=1,32)/ | ||
974 | 970 | # 1.5068353e-01, 1.0749621e-01, 7.7041842e-02, 5.5476031e-02, | ||
975 | 971 | # 4.0143008e-02, 2.9160969e-02, 2.1271437e-02, 1.5583408e-02, | ||
976 | 972 | # 1.1472391e-02, 8.4985083e-03, 6.3433700e-03, 4.7785683e-03, | ||
977 | 973 | # 3.6402566e-03, 2.8065350e-03, 2.1865589e-03, 1.7127763e-03, | ||
978 | 974 | # 1.3356279e-03, 1.0214490e-03, 7.5140048e-04, 5.1978083e-04, | ||
979 | 975 | # 3.2977123e-04, 1.8681197e-04, 9.1728471e-05, 3.7697570e-05, | ||
980 | 976 | # 1.2430821e-05, 3.1016518e-06, 5.2367878e-07, 5.0603141e-08, | ||
981 | 977 | # 2.5423963e-09, 3.4635376e-11, 4.1186342e-14, 2.0657555e-23/ | ||
982 | 978 | data firsttime/.true./ | ||
983 | 979 | save | ||
984 | 980 | if(firsttime)then | ||
985 | 981 | firsttime=.false. | ||
986 | 982 | nent(1)=nny | ||
987 | 983 | nent(2)=nnz | ||
988 | 984 | do iny=1,nny | ||
989 | 985 | ent(iny)=(yv(iny)) | ||
990 | 986 | enddo | ||
991 | 987 | do inz=1,nnz | ||
992 | 988 | ent(nny+inz)=(zv(inz)) | ||
993 | 989 | enddo | ||
994 | 990 | endif | ||
995 | 991 | arg(1)=(y) | ||
996 | 992 | arg(2)=(z) | ||
997 | 993 | tmp=dfint(narg,arg,nent,ent,gridv) | ||
998 | 994 | ewa_wm_p_1m=tmp | ||
999 | 995 | return | ||
1000 | 996 | end | ||
1001 | 997 | function ewa_wm_p_0(y,z) | ||
1002 | 998 | implicit none | ||
1003 | 999 | real*8 ewa_wm_p_0,y,z | ||
1004 | 1000 | integer narg,nny,nnz | ||
1005 | 1001 | parameter (narg=2) | ||
1006 | 1002 | parameter (nny=32) | ||
1007 | 1003 | parameter (nnz=8) | ||
1008 | 1004 | integer iny,inz,nent(narg) | ||
1009 | 1005 | real*8 tmp,dfint,ymap,zmap | ||
1010 | 1006 | real*8 arg(narg),ent(nny+nnz) | ||
1011 | 1007 | real*8 yv(nny),zv(nnz),gridv(nny,nnz) | ||
1012 | 1008 | logical firsttime | ||
1013 | 1009 | external dfint,ymap,zmap | ||
1014 | 1010 | data yv/ | ||
1015 | 1011 | # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, | ||
1016 | 1012 | # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, | ||
1017 | 1013 | # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, | ||
1018 | 1014 | # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, | ||
1019 | 1015 | # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, | ||
1020 | 1016 | # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, | ||
1021 | 1017 | # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, | ||
1022 | 1018 | # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ | ||
1023 | 1019 | data zv/ | ||
1024 | 1020 | # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, | ||
1025 | 1021 | # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ | ||
1026 | 1022 | data (gridv(iny, 1),iny=1,32)/ | ||
1027 | 1023 | # 3.5187008e-03, 2.8034859e-03, 2.2605790e-03, 1.8430659e-03, | ||
1028 | 1024 | # 1.5186478e-03, 1.2616393e-03, 1.0560624e-03, 8.9012320e-04, | ||
1029 | 1025 | # 7.5538508e-04, 6.4582892e-04, 5.5671967e-04, 4.8420795e-04, | ||
1030 | 1026 | # 4.2519673e-04, 3.7700036e-04, 3.3717825e-04, 3.0339543e-04, | ||
1031 | 1027 | # 2.7329402e-04, 2.4447706e-04, 2.1469168e-04, 1.8222898e-04, | ||
1032 | 1028 | # 1.4664818e-04, 1.0943422e-04, 7.3828376e-05, 4.3723959e-05, | ||
1033 | 1029 | # 2.1983802e-05, 9.0102753e-06, 2.8448697e-06, 6.3299117e-07, | ||
1034 | 1030 | # 8.7487931e-08, 5.2831049e-09, 1.1568847e-10, 1.8415286e-15/ | ||
1035 | 1031 | data (gridv(iny, 2),iny=1,32)/ | ||
1036 | 1032 | # 5.2548138e-03, 4.0999760e-03, 3.2295174e-03, 2.5667153e-03, | ||
1037 | 1033 | # 2.0584664e-03, 1.6625476e-03, 1.3517402e-03, 1.1060358e-03, | ||
1038 | 1034 | # 9.1078460e-04, 7.5538896e-04, 6.3160108e-04, 5.3288902e-04, | ||
1039 | 1035 | # 4.5415547e-04, 3.9119341e-04, 3.4038971e-04, 2.9850573e-04, | ||
1040 | 1036 | # 2.6252377e-04, 2.2960220e-04, 1.9724634e-04, 1.6373150e-04, | ||
1041 | 1037 | # 1.2870167e-04, 9.3622734e-05, 6.1405954e-05, 3.5240336e-05, | ||
1042 | 1038 | # 1.7102418e-05, 6.7317976e-06, 2.0267789e-06, 4.2595999e-07, | ||
1043 | 1039 | # 5.4725748e-08, 2.9719851e-09, 4.8981810e-11, 9.4455659e-16/ | ||
1044 | 1040 | data (gridv(iny, 3),iny=1,32)/ | ||
1045 | 1041 | # 7.1876070e-03, 5.5076672e-03, 4.2546965e-03, 3.3120537e-03, | ||
1046 | 1042 | # 2.5990113e-03, 2.0524391e-03, 1.6307512e-03, 1.3034276e-03, | ||
1047 | 1043 | # 1.0481689e-03, 8.4882548e-04, 6.9291048e-04, 5.7083971e-04, | ||
1048 | 1044 | # 4.7522642e-04, 4.0016654e-04, 3.4076979e-04, 2.9285118e-04, | ||
1049 | 1045 | # 2.5271536e-04, 2.1707747e-04, 1.8321030e-04, 1.4933939e-04, | ||
1050 | 1046 | # 1.1513883e-04, 8.2005502e-05, 5.2541044e-05, 2.9373325e-05, | ||
1051 | 1047 | # 1.3840817e-05, 5.2672006e-06, 1.5241105e-06, 3.0542392e-07, | ||
1052 | 1048 | # 3.6915891e-08, 1.8347912e-09, 2.2114402e-11, 5.3685066e-16/ | ||
1053 | 1049 | data (gridv(iny, 4),iny=1,32)/ | ||
1054 | 1050 | # 9.2731430e-03, 6.9948236e-03, 5.3144732e-03, 4.0652903e-03, | ||
1055 | 1051 | # 3.1328132e-03, 2.4282484e-03, 1.8929862e-03, 1.4841263e-03, | ||
1056 | 1052 | # 1.1704474e-03, 9.2943341e-04, 7.4399977e-04, 6.0109301e-04, | ||
1057 | 1053 | # 4.9092271e-04, 4.0580385e-04, 3.3953903e-04, 2.8700023e-04, | ||
1058 | 1054 | # 2.4383801e-04, 2.0634913e-04, 1.7159359e-04, 1.3773971e-04, | ||
1059 | 1055 | # 1.0446314e-04, 7.3071554e-05, 4.5887405e-05, 2.5084061e-05, | ||
1060 | 1056 | # 1.1524443e-05, 4.2604502e-06, 1.1914778e-06, 2.2920043e-07, | ||
1061 | 1057 | # 2.6286612e-08, 1.2107299e-09, 1.0080946e-11, 3.2845426e-16/ | ||
1062 | 1058 | data (gridv(iny, 5),iny=1,32)/ | ||
1063 | 1059 | # 1.1477138e-02, 8.5381747e-03, 6.3939961e-03, 4.8178867e-03, | ||
1064 | 1060 | # 3.6556258e-03, 2.7887348e-03, 2.1392407e-03, 1.6500181e-03, | ||
1065 | 1061 | # 1.2800074e-03, 9.9975891e-04, 7.8717888e-04, 6.2562654e-04, | ||
1066 | 1062 | # 5.0280633e-04, 4.0921770e-04, 3.3736136e-04, 2.8121172e-04, | ||
1067 | 1063 | # 2.3579394e-04, 1.9702349e-04, 1.6176823e-04, 1.2814066e-04, | ||
1068 | 1064 | # 9.5802895e-05, 6.5966820e-05, 4.0705648e-05, 2.1818543e-05, | ||
1069 | 1065 | # 9.8043554e-06, 3.5336308e-06, 9.5911504e-07, 1.7800578e-07, | ||
1070 | 1066 | # 1.9496528e-08, 8.4002050e-10, 4.3204403e-12, 2.1251138e-16/ | ||
1071 | 1067 | data (gridv(iny, 6),iny=1,32)/ | ||
1072 | 1068 | # 1.3802612e-02, 1.0141026e-02, 7.4971127e-03, 5.5741476e-03, | ||
1073 | 1069 | # 4.1720271e-03, 3.1386776e-03, 2.3737894e-03, 1.8049673e-03, | ||
1074 | 1070 | # 1.3802137e-03, 1.0625971e-03, 8.2471236e-04, 6.4617450e-04, | ||
1075 | 1071 | # 5.1210721e-04, 4.1120934e-04, 3.3467950e-04, 2.7561780e-04, | ||
1076 | 1072 | # 2.2846603e-04, 1.8878732e-04, 1.5327653e-04, 1.1999194e-04, | ||
1077 | 1073 | # 8.8573452e-05, 6.0136140e-05, 3.6529669e-05, 1.9238247e-05, | ||
1078 | 1074 | # 8.4746327e-06, 2.9853000e-06, 7.8837418e-07, 1.4128313e-07, | ||
1079 | 1075 | # 1.4820095e-08, 6.0070190e-10, 1.7185758e-12, 1.4369011e-16/ | ||
1080 | 1076 | data (gridv(iny, 7),iny=1,32)/ | ||
1081 | 1077 | # 1.6432308e-02, 1.1930946e-02, 8.7133575e-03, 6.3970356e-03, | ||
1082 | 1078 | # 4.7264435e-03, 3.5091707e-03, 2.6187361e-03, 1.9645111e-03, | ||
1083 | 1079 | # 1.4819077e-03, 1.1254264e-03, 8.6166780e-04, 6.6606423e-04, | ||
1084 | 1080 | # 5.2091794e-04, 4.1296488e-04, 3.3203523e-04, 2.7031018e-04, | ||
1085 | 1081 | # 2.2163224e-04, 1.8120725e-04, 1.4555330e-04, 1.1266604e-04, | ||
1086 | 1082 | # 8.2152609e-05, 5.5024591e-05, 3.2922540e-05, 1.7044970e-05, | ||
1087 | 1083 | # 7.3639505e-06, 2.5349841e-06, 6.4817141e-07, 1.0938699e-07, | ||
1088 | 1084 | # 1.0789142e-08, 4.0267815e-10, 9.9738412e-13, 9.3965182e-17/ | ||
1089 | 1085 | data (gridv(iny, 8),iny=1,32)/ | ||
1090 | 1086 | # 1.9588443e-02, 1.4054534e-02, 1.0140342e-02, 7.3511754e-03, | ||
1091 | 1087 | # 5.3617513e-03, 3.9285711e-03, 2.8927241e-03, 2.1409034e-03, | ||
1092 | 1088 | # 1.5930991e-03, 1.1934393e-03, 9.0134688e-04, 6.8734040e-04, | ||
1093 | 1089 | # 5.3043871e-04, 4.1513075e-04, 3.2970284e-04, 2.6531895e-04, | ||
1094 | 1090 | # 2.1516289e-04, 1.7405250e-04, 1.3830950e-04, 1.0585100e-04, | ||
1095 | 1091 | # 7.6238215e-05, 5.0368640e-05, 2.9681423e-05, 1.5103253e-05, | ||
1096 | 1092 | # 6.3960840e-06, 2.1473293e-06, 5.2444493e-07, 7.7848289e-08, | ||
1097 | 1093 | # 6.7448840e-09, 2.0379331e-10, 2.3209743e-13, 4.3818080e-17/ | ||
1098 | 1094 | data firsttime/.true./ | ||
1099 | 1095 | save | ||
1100 | 1096 | if(firsttime)then | ||
1101 | 1097 | firsttime=.false. | ||
1102 | 1098 | nent(1)=nny | ||
1103 | 1099 | nent(2)=nnz | ||
1104 | 1100 | do iny=1,nny | ||
1105 | 1101 | ent(iny)=(yv(iny)) | ||
1106 | 1102 | enddo | ||
1107 | 1103 | do inz=1,nnz | ||
1108 | 1104 | ent(nny+inz)=(zv(inz)) | ||
1109 | 1105 | enddo | ||
1110 | 1106 | endif | ||
1111 | 1107 | arg(1)=(y) | ||
1112 | 1108 | arg(2)=(z) | ||
1113 | 1109 | tmp=dfint(narg,arg,nent,ent,gridv) | ||
1114 | 1110 | ewa_wm_p_0=tmp | ||
1115 | 1111 | return | ||
1116 | 1112 | end | ||
1117 | 1113 | function ewa_z_p(x,Q2,pol) | ||
1118 | 1114 | implicit none | ||
1119 | 1115 | real*8 ewa_z_p | ||
1120 | 1116 | real*8 x,Q2 | ||
1121 | 1117 | integer pol | ||
1122 | 1118 | real*8 tmp | ||
1123 | 1119 | real*8 y,z | ||
1124 | 1120 | real*8 ylow,yupp,zlow,zupp | ||
1125 | 1121 | parameter (ylow=-16.1181,yupp=-1e-07) | ||
1126 | 1122 | parameter (zlow=4.38683,zupp=13.8155) | ||
1127 | 1123 | real*8 ewa_z_p_1p | ||
1128 | 1124 | real*8 ewa_z_p_1m | ||
1129 | 1125 | real*8 ewa_z_p_0 | ||
1130 | 1126 | y=log(x) | ||
1131 | 1127 | z=0.5*log(Q2) | ||
1132 | 1128 | if(pol.eq.1)then | ||
1133 | 1129 | tmp=ewa_z_p_1p(y,z) | ||
1134 | 1130 | else if(pol.eq.-1)then | ||
1135 | 1131 | tmp=ewa_z_p_1m(y,z) | ||
1136 | 1132 | else | ||
1137 | 1133 | tmp=ewa_z_p_0(y,z) | ||
1138 | 1134 | endif | ||
1139 | 1135 | ewa_z_p=tmp/x*y*y | ||
1140 | 1136 | end | ||
1141 | 1137 | function ewa_z_p_1p(y,z) | ||
1142 | 1138 | implicit none | ||
1143 | 1139 | real*8 ewa_z_p_1p,y,z | ||
1144 | 1140 | integer narg,nny,nnz | ||
1145 | 1141 | parameter (narg=2) | ||
1146 | 1142 | parameter (nny=32) | ||
1147 | 1143 | parameter (nnz=8) | ||
1148 | 1144 | integer iny,inz,nent(narg) | ||
1149 | 1145 | real*8 tmp,dfint,ymap,zmap | ||
1150 | 1146 | real*8 arg(narg),ent(nny+nnz) | ||
1151 | 1147 | real*8 yv(nny),zv(nnz),gridv(nny,nnz) | ||
1152 | 1148 | logical firsttime | ||
1153 | 1149 | external dfint,ymap,zmap | ||
1154 | 1150 | data yv/ | ||
1155 | 1151 | # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, | ||
1156 | 1152 | # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, | ||
1157 | 1153 | # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, | ||
1158 | 1154 | # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, | ||
1159 | 1155 | # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, | ||
1160 | 1156 | # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, | ||
1161 | 1157 | # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, | ||
1162 | 1158 | # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ | ||
1163 | 1159 | data zv/ | ||
1164 | 1160 | # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, | ||
1165 | 1161 | # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ | ||
1166 | 1162 | data (gridv(iny, 1),iny=1,32)/ | ||
1167 | 1163 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1168 | 1164 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1169 | 1165 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1170 | 1166 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1171 | 1167 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1172 | 1168 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1173 | 1169 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1174 | 1170 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00/ | ||
1175 | 1171 | data (gridv(iny, 2),iny=1,32)/ | ||
1176 | 1172 | # 3.7303045e-03, 2.9227921e-03, 2.3141955e-03, 1.8493581e-03, | ||
1177 | 1173 | # 1.4933843e-03, 1.2162782e-03, 9.9810630e-04, 8.2501787e-04, | ||
1178 | 1174 | # 6.8659282e-04, 5.7544120e-04, 4.8609674e-04, 4.1418784e-04, | ||
1179 | 1175 | # 3.5626496e-04, 3.0973606e-04, 2.7244727e-04, 2.4257706e-04, | ||
1180 | 1176 | # 2.1854792e-04, 1.9876081e-04, 1.8151373e-04, 1.6480475e-04, | ||
1181 | 1177 | # 1.4652391e-04, 1.2495404e-04, 9.9767621e-05, 7.2413235e-05, | ||
1182 | 1178 | # 4.6189116e-05, 2.4986033e-05, 1.0981613e-05, 3.6318686e-06, | ||
1183 | 1179 | # 8.2837802e-07, 1.0232602e-07, 4.9850666e-09, 1.2419766e-08/ | ||
1184 | 1180 | data (gridv(iny, 3),iny=1,32)/ | ||
1185 | 1181 | # 1.0860874e-02, 8.3686491e-03, 6.5072730e-03, 5.1000356e-03, | ||
1186 | 1182 | # 4.0344753e-03, 3.2163074e-03, 2.5819036e-03, 2.0867745e-03, | ||
1187 | 1183 | # 1.6975997e-03, 1.3904974e-03, 1.1478197e-03, 9.5566048e-04, | ||
1188 | 1184 | # 8.0324203e-04, 6.8259459e-04, 5.8722232e-04, 5.1178459e-04, | ||
1189 | 1185 | # 4.5182361e-04, 4.0308935e-04, 3.6137523e-04, 3.2211460e-04, | ||
1190 | 1186 | # 2.8093250e-04, 2.3463440e-04, 1.8303741e-04, 1.2940501e-04, | ||
1191 | 1187 | # 8.0128195e-05, 4.1902153e-05, 1.7698447e-05, 5.5786779e-06, | ||
1192 | 1188 | # 1.1982518e-06, 1.3567906e-07, 5.1862975e-09, 1.4921624e-08/ | ||
1193 | 1189 | data (gridv(iny, 4),iny=1,32)/ | ||
1194 | 1190 | # 2.1582709e-02, 1.6384815e-02, 1.2542453e-02, 9.6686760e-03, | ||
1195 | 1191 | # 7.5174482e-03, 5.8869725e-03, 4.6402349e-03, 3.6814614e-03, | ||
1196 | 1192 | # 2.9392736e-03, 2.3625196e-03, 1.9136197e-03, 1.5633551e-03, | ||
1197 | 1193 | # 1.2894368e-03, 1.0755569e-03, 9.0867962e-04, 7.7828223e-04, | ||
1198 | 1194 | # 6.7581905e-04, 5.9350250e-04, 5.2402918e-04, 4.5996420e-04, | ||
1199 | 1195 | # 3.9470912e-04, 3.2387169e-04, 2.4768512e-04, 1.7121604e-04, | ||
1200 | 1196 | # 1.0335642e-04, 5.2501923e-05, 2.1430744e-05, 6.4822592e-06, | ||
1201 | 1197 | # 1.3222258e-06, 1.3895999e-07, 4.1233808e-09, 1.3983723e-08/ | ||
1202 | 1198 | data (gridv(iny, 5),iny=1,32)/ | ||
1203 | 1199 | # 3.6225205e-02, 2.7139223e-02, 2.0491247e-02, 1.5570792e-02, | ||
1204 | 1200 | # 1.1927494e-02, 9.1990020e-03, 7.1389947e-03, 5.5752406e-03, | ||
1205 | 1201 | # 4.3810786e-03, 3.4655687e-03, 2.7625306e-03, 2.2211128e-03, | ||
1206 | 1202 | # 1.8030325e-03, 1.4806433e-03, 1.2320561e-03, 1.0399620e-03, | ||
1207 | 1203 | # 8.9058578e-04, 7.7179147e-04, 6.7267988e-04, 5.8270496e-04, | ||
1208 | 1204 | # 4.9308080e-04, 3.9840200e-04, 2.9945131e-04, 2.0297089e-04, | ||
1209 | 1205 | # 1.1982930e-04, 5.9340172e-05, 2.3506889e-05, 6.8579981e-06, | ||
1210 | 1206 | # 1.3368364e-06, 1.3162902e-07, 2.9711215e-09, 1.2215759e-08/ | ||
1211 | 1207 | data (gridv(iny, 6),iny=1,32)/ | ||
1212 | 1208 | # 5.5154342e-02, 4.0827860e-02, 3.0449006e-02, 2.2843096e-02, | ||
1213 | 1209 | # 1.7269263e-02, 1.3140804e-02, 1.0059401e-02, 7.7483419e-03, | ||
1214 | 1210 | # 6.0046554e-03, 4.6839966e-03, 3.6820525e-03, 2.9195345e-03, | ||
1215 | 1211 | # 2.3374414e-03, 1.8936267e-03, 1.5550949e-03, 1.2961420e-03, | ||
1216 | 1212 | # 1.0966733e-03, 9.3947224e-04, 8.0960033e-04, 6.9320130e-04, | ||
1217 | 1213 | # 5.7933366e-04, 4.6170562e-04, 3.4169800e-04, 2.2756193e-04, | ||
1218 | 1214 | # 1.3169713e-04, 6.3745564e-05, 2.4577867e-05, 6.9293186e-06, | ||
1219 | 1215 | # 1.2930488e-06, 1.1992460e-07, 2.0948206e-09, 1.0413998e-08/ | ||
1220 | 1216 | data (gridv(iny, 7),iny=1,32)/ | ||
1221 | 1217 | # 7.9641332e-02, 5.8283390e-02, 4.2961224e-02, 3.1840880e-02, | ||
1222 | 1218 | # 2.3773251e-02, 1.7861019e-02, 1.3496990e-02, 1.0261222e-02, | ||
1223 | 1219 | # 7.8482212e-03, 6.0415388e-03, 4.6867971e-03, 3.6676358e-03, | ||
1224 | 1220 | # 2.8981380e-03, 2.3178462e-03, 1.8798546e-03, 1.5481330e-03, | ||
1225 | 1221 | # 1.2949777e-03, 1.0972312e-03, 9.3539626e-04, 7.9205439e-04, | ||
1226 | 1222 | # 6.5410473e-04, 5.1445082e-04, 3.7509234e-04, 2.4557633e-04, | ||
1227 | 1223 | # 1.3941666e-04, 6.6000870e-05, 2.4739779e-05, 6.6282306e-06, | ||
1228 | 1224 | # 1.1538853e-06, 9.8657074e-08, 1.5984130e-09, 8.2433190e-09/ | ||
1229 | 1225 | data (gridv(iny, 8),iny=1,32)/ | ||
1230 | 1226 | # 1.1184163e-01, 8.0917333e-02, 5.8950236e-02, 4.3164542e-02, | ||
1231 | 1227 | # 3.1828151e-02, 2.3609789e-02, 1.7611453e-02, 1.3215123e-02, | ||
1232 | 1228 | # 9.9748771e-03, 7.5776696e-03, 5.8010863e-03, 4.4800093e-03, | ||
1233 | 1229 | # 3.4937519e-03, 2.7582893e-03, 2.2091448e-03, 1.7974773e-03, | ||
1234 | 1230 | # 1.4863368e-03, 1.2455380e-03, 1.0503765e-03, 8.7953603e-04, | ||
1235 | 1231 | # 7.1769738e-04, 5.5700142e-04, 4.0005545e-04, 2.5742663e-04, | ||
1236 | 1232 | # 1.4335613e-04, 6.6352481e-05, 2.4061846e-05, 5.8581041e-06, | ||
1237 | 1233 | # 8.7686172e-07, 6.1694293e-08, 7.6078967e-10, 4.5762876e-09/ | ||
1238 | 1234 | data firsttime/.true./ | ||
1239 | 1235 | save | ||
1240 | 1236 | if(firsttime)then | ||
1241 | 1237 | firsttime=.false. | ||
1242 | 1238 | nent(1)=nny | ||
1243 | 1239 | nent(2)=nnz | ||
1244 | 1240 | do iny=1,nny | ||
1245 | 1241 | ent(iny)=(yv(iny)) | ||
1246 | 1242 | enddo | ||
1247 | 1243 | do inz=1,nnz | ||
1248 | 1244 | ent(nny+inz)=(zv(inz)) | ||
1249 | 1245 | enddo | ||
1250 | 1246 | endif | ||
1251 | 1247 | arg(1)=(y) | ||
1252 | 1248 | arg(2)=(z) | ||
1253 | 1249 | tmp=dfint(narg,arg,nent,ent,gridv) | ||
1254 | 1250 | ewa_z_p_1p=tmp | ||
1255 | 1251 | return | ||
1256 | 1252 | end | ||
1257 | 1253 | function ewa_z_p_1m(y,z) | ||
1258 | 1254 | implicit none | ||
1259 | 1255 | real*8 ewa_z_p_1m,y,z | ||
1260 | 1256 | integer narg,nny,nnz | ||
1261 | 1257 | parameter (narg=2) | ||
1262 | 1258 | parameter (nny=32) | ||
1263 | 1259 | parameter (nnz=8) | ||
1264 | 1260 | integer iny,inz,nent(narg) | ||
1265 | 1261 | real*8 tmp,dfint,ymap,zmap | ||
1266 | 1262 | real*8 arg(narg),ent(nny+nnz) | ||
1267 | 1263 | real*8 yv(nny),zv(nnz),gridv(nny,nnz) | ||
1268 | 1264 | logical firsttime | ||
1269 | 1265 | external dfint,ymap,zmap | ||
1270 | 1266 | data yv/ | ||
1271 | 1267 | # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, | ||
1272 | 1268 | # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, | ||
1273 | 1269 | # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, | ||
1274 | 1270 | # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, | ||
1275 | 1271 | # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, | ||
1276 | 1272 | # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, | ||
1277 | 1273 | # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, | ||
1278 | 1274 | # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ | ||
1279 | 1275 | data zv/ | ||
1280 | 1276 | # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, | ||
1281 | 1277 | # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ | ||
1282 | 1278 | data (gridv(iny, 1),iny=1,32)/ | ||
1283 | 1279 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1284 | 1280 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1285 | 1281 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1286 | 1282 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1287 | 1283 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1288 | 1284 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1289 | 1285 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1290 | 1286 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00/ | ||
1291 | 1287 | data (gridv(iny, 2),iny=1,32)/ | ||
1292 | 1288 | # 2.4722465e-03, 1.9238378e-03, 1.5105106e-03, 1.1960749e-03, | ||
1293 | 1289 | # 9.5450636e-04, 7.6644980e-04, 6.1891326e-04, 5.0238454e-04, | ||
1294 | 1290 | # 4.0993066e-04, 3.3642652e-04, 2.7788916e-04, 2.3119738e-04, | ||
1295 | 1291 | # 1.9389505e-04, 1.6397539e-04, 1.3974473e-04, 1.1973970e-04, | ||
1296 | 1292 | # 1.0268876e-04, 8.7531986e-05, 7.3507411e-05, 6.0200203e-05, | ||
1297 | 1293 | # 4.7561978e-05, 3.5825675e-05, 2.5363959e-05, 1.6554077e-05, | ||
1298 | 1294 | # 9.6919422e-06, 4.9066425e-06, 2.0356874e-06, 6.4136541e-07, | ||
1299 | 1295 | # 1.3870147e-07, 1.5934953e-08, 3.8134239e-10, 1.5583767e-09/ | ||
1300 | 1296 | data (gridv(iny, 3),iny=1,32)/ | ||
1301 | 1297 | # 7.0798337e-03, 5.4081649e-03, 4.1625029e-03, 3.2271346e-03, | ||
1302 | 1298 | # 2.5192925e-03, 1.9775657e-03, 1.5603254e-03, 1.2371174e-03, | ||
1303 | 1299 | # 9.8575176e-04, 7.8989545e-04, 6.3703740e-04, 5.1756292e-04, | ||
1304 | 1300 | # 4.2407586e-04, 3.5069124e-04, 2.9260099e-04, 2.4581210e-04, | ||
1305 | 1301 | # 2.0699146e-04, 1.7346123e-04, 1.4331114e-04, 1.1548538e-04, | ||
1306 | 1302 | # 8.9728440e-05, 6.6379120e-05, 4.6055769e-05, 2.9366897e-05, | ||
1307 | 1303 | # 1.6731521e-05, 8.2008648e-06, 3.2726090e-06, 9.8342622e-07, | ||
1308 | 1304 | # 2.0024596e-07, 2.1085367e-08, 3.1115922e-10, 1.8414779e-09/ | ||
1309 | 1305 | data (gridv(iny, 4),iny=1,32)/ | ||
1310 | 1306 | # 1.3868555e-02, 1.0425215e-02, 7.8892735e-03, 6.0089146e-03, | ||
1311 | 1307 | # 4.6057219e-03, 3.5480566e-03, 2.7464613e-03, 2.1359653e-03, | ||
1312 | 1308 | # 1.6689984e-03, 1.3114613e-03, 1.0371878e-03, 8.2648300e-04, | ||
1313 | 1309 | # 6.6446546e-04, 5.3953412e-04, 4.4244464e-04, 3.6574043e-04, | ||
1314 | 1310 | # 3.0339116e-04, 2.5068534e-04, 2.0431482e-04, 1.6241791e-04, | ||
1315 | 1311 | # 1.2441356e-04, 9.0628951e-05, 6.1799132e-05, 3.8623433e-05, | ||
1316 | 1312 | # 2.1495349e-05, 1.0246602e-05, 3.9545153e-06, 1.1410065e-06, | ||
1317 | 1313 | # 2.2060684e-07, 2.1556121e-08, 1.5852146e-10, 1.6987942e-09/ | ||
1318 | 1314 | data (gridv(iny, 5),iny=1,32)/ | ||
1319 | 1315 | # 2.2986936e-02, 1.7037927e-02, 1.2705430e-02, 9.5306823e-03, | ||
1320 | 1316 | # 7.1915567e-03, 5.4521722e-03, 4.1524897e-03, 3.1768102e-03, | ||
1321 | 1317 | # 2.4418608e-03, 1.8873270e-03, 1.4682359e-03, 1.1510039e-03, | ||
1322 | 1318 | # 9.1077042e-04, 7.2826552e-04, 5.8860114e-04, 4.7999193e-04, | ||
1323 | 1319 | # 3.9314928e-04, 3.2098035e-04, 2.5857717e-04, 2.0315066e-04, | ||
1324 | 1320 | # 1.5370454e-04, 1.1046511e-04, 7.4187115e-05, 4.5556559e-05, | ||
1325 | 1321 | # 2.4836768e-05, 1.1553471e-05, 4.3299295e-06, 1.2055759e-06, | ||
1326 | 1322 | # 2.2273199e-07, 2.0385221e-08, 2.5365287e-11, 1.4614457e-09/ | ||
1327 | 1323 | data (gridv(iny, 6),iny=1,32)/ | ||
1328 | 1324 | # 3.4607710e-02, 2.5329231e-02, 1.8643112e-02, 1.3797244e-02, | ||
1329 | 1325 | # 1.0268406e-02, 7.6763540e-03, 5.7640388e-03, 4.3470540e-03, | ||
1330 | 1326 | # 3.2936565e-03, 2.5093254e-03, 1.9243527e-03, 1.4874209e-03, | ||
1331 | 1327 | # 1.1607380e-03, 9.1588915e-04, 7.3097517e-04, 5.8910398e-04, | ||
1332 | 1328 | # 4.7722044e-04, 3.8555267e-04, 3.0742488e-04, 2.3902283e-04, | ||
1333 | 1329 | # 1.7886336e-04, 1.2700213e-04, 8.4135064e-05, 5.0853622e-05, | ||
1334 | 1330 | # 2.7216172e-05, 1.2384960e-05, 4.5198910e-06, 1.2164900e-06, | ||
1335 | 1331 | # 2.1505007e-07, 1.8520572e-08, -5.3697542e-11, 1.2296759e-09/ | ||
1336 | 1332 | data (gridv(iny, 7),iny=1,32)/ | ||
1337 | 1333 | # 4.9445135e-02, 3.5757010e-02, 2.5994493e-02, 1.8993674e-02, | ||
1338 | 1334 | # 1.3952679e-02, 1.0293089e-02, 7.6258392e-03, 5.6738387e-03, | ||
1339 | 1335 | # 4.2408262e-03, 3.1872474e-03, 2.4113098e-03, 1.8389250e-03, | ||
1340 | 1336 | # 1.4163575e-03, 1.1035738e-03, 8.7029523e-04, 6.9356210e-04, | ||
1341 | 1337 | # 5.5597102e-04, 4.4470895e-04, 3.5113742e-04, 2.7029621e-04, | ||
1342 | 1338 | # 2.0013417e-04, 1.4045648e-04, 9.1828197e-05, 5.4657353e-05, | ||
1343 | 1339 | # 2.8729898e-05, 1.2794546e-05, 4.5409281e-06, 1.1613608e-06, | ||
1344 | 1340 | # 1.9109911e-07, 1.5092145e-08, -5.2811872e-11, 9.5507973e-10/ | ||
1345 | 1341 | data (gridv(iny, 8),iny=1,32)/ | ||
1346 | 1342 | # 6.8709761e-02, 4.9096606e-02, 3.5253307e-02, 2.5432125e-02, | ||
1347 | 1343 | # 1.8440272e-02, 1.3424173e-02, 9.8127739e-03, 7.2026791e-03, | ||
1348 | 1344 | # 5.3106334e-03, 3.9371633e-03, 2.9384004e-03, 2.2109274e-03, | ||
1349 | 1345 | # 1.6805250e-03, 1.2928794e-03, 1.0073789e-03, 7.9380317e-04, | ||
1350 | 1346 | # 6.2964750e-04, 4.9861161e-04, 3.8984865e-04, 2.9710009e-04, | ||
1351 | 1347 | # 2.1764892e-04, 1.5095775e-04, 9.7391148e-05, 5.7072702e-05, | ||
1352 | 1348 | # 2.9454329e-05, 1.2827026e-05, 4.4049387e-06, 1.0235568e-06, | ||
1353 | 1349 | # 1.4395353e-07, 9.1928386e-09, -5.1047909e-11, 4.9741292e-10/ | ||
1354 | 1350 | data firsttime/.true./ | ||
1355 | 1351 | save | ||
1356 | 1352 | if(firsttime)then | ||
1357 | 1353 | firsttime=.false. | ||
1358 | 1354 | nent(1)=nny | ||
1359 | 1355 | nent(2)=nnz | ||
1360 | 1356 | do iny=1,nny | ||
1361 | 1357 | ent(iny)=(yv(iny)) | ||
1362 | 1358 | enddo | ||
1363 | 1359 | do inz=1,nnz | ||
1364 | 1360 | ent(nny+inz)=(zv(inz)) | ||
1365 | 1361 | enddo | ||
1366 | 1362 | endif | ||
1367 | 1363 | arg(1)=(y) | ||
1368 | 1364 | arg(2)=(z) | ||
1369 | 1365 | tmp=dfint(narg,arg,nent,ent,gridv) | ||
1370 | 1366 | ewa_z_p_1m=tmp | ||
1371 | 1367 | return | ||
1372 | 1368 | end | ||
1373 | 1369 | function ewa_z_p_0(y,z) | ||
1374 | 1370 | implicit none | ||
1375 | 1371 | real*8 ewa_z_p_0,y,z | ||
1376 | 1372 | integer narg,nny,nnz | ||
1377 | 1373 | parameter (narg=2) | ||
1378 | 1374 | parameter (nny=32) | ||
1379 | 1375 | parameter (nnz=8) | ||
1380 | 1376 | integer iny,inz,nent(narg) | ||
1381 | 1377 | real*8 tmp,dfint,ymap,zmap | ||
1382 | 1378 | real*8 arg(narg),ent(nny+nnz) | ||
1383 | 1379 | real*8 yv(nny),zv(nnz),gridv(nny,nnz) | ||
1384 | 1380 | logical firsttime | ||
1385 | 1381 | external dfint,ymap,zmap | ||
1386 | 1382 | data yv/ | ||
1387 | 1383 | # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, | ||
1388 | 1384 | # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, | ||
1389 | 1385 | # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, | ||
1390 | 1386 | # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, | ||
1391 | 1387 | # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, | ||
1392 | 1388 | # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, | ||
1393 | 1389 | # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, | ||
1394 | 1390 | # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ | ||
1395 | 1391 | data zv/ | ||
1396 | 1392 | # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, | ||
1397 | 1393 | # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ | ||
1398 | 1394 | data (gridv(iny, 1),iny=1,32)/ | ||
1399 | 1395 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1400 | 1396 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1401 | 1397 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1402 | 1398 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1403 | 1399 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1404 | 1400 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1405 | 1401 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1406 | 1402 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00/ | ||
1407 | 1403 | data (gridv(iny, 2),iny=1,32)/ | ||
1408 | 1404 | # 2.2972746e-03, 1.7917254e-03, 1.4105851e-03, 1.1202991e-03, | ||
1409 | 1405 | # 8.9758753e-04, 7.2401692e-04, 5.8765422e-04, 4.7973220e-04, | ||
1410 | 1406 | # 3.9382732e-04, 3.2529169e-04, 2.7051159e-04, 2.2663375e-04, | ||
1411 | 1407 | # 1.9144281e-04, 1.6313368e-04, 1.4017673e-04, 1.2123763e-04, | ||
1412 | 1408 | # 1.0509369e-04, 9.0611789e-05, 7.6817182e-05, 6.3022584e-05, | ||
1413 | 1409 | # 4.9058611e-05, 3.5418441e-05, 2.3106352e-05, 1.3215971e-05, | ||
1414 | 1410 | # 6.4045348e-06, 2.5232862e-06, 7.6274114e-07, 1.6120969e-07, | ||
1415 | 1411 | # 2.0920899e-08, 1.1554945e-09, 2.1846051e-11, 3.8164747e-16/ | ||
1416 | 1412 | data (gridv(iny, 3),iny=1,32)/ | ||
1417 | 1413 | # 3.1443709e-03, 2.4086938e-03, 1.8599149e-03, 1.4469692e-03, | ||
1418 | 1414 | # 1.1345306e-03, 8.9494004e-04, 7.0998827e-04, 5.6630210e-04, | ||
1419 | 1415 | # 4.5410728e-04, 3.6631536e-04, 2.9748449e-04, 2.4339831e-04, | ||
1420 | 1416 | # 2.0085187e-04, 1.6729924e-04, 1.4065172e-04, 1.1916159e-04, | ||
1421 | 1417 | # 1.0130455e-04, 8.5745522e-05, 7.1384433e-05, 5.7493734e-05, | ||
1422 | 1418 | # 4.3890462e-05, 3.1023010e-05, 1.9770186e-05, 1.1015777e-05, | ||
1423 | 1419 | # 5.1834875e-06, 1.9746473e-06, 5.7369065e-07, 1.1562072e-07, | ||
1424 | 1420 | # 1.4116885e-08, 7.1378361e-10, 1.0286193e-11, 2.1760568e-16/ | ||
1425 | 1421 | data (gridv(iny, 4),iny=1,32)/ | ||
1426 | 1422 | # 4.0583782e-03, 3.0604630e-03, 2.3243967e-03, 1.7771165e-03, | ||
1427 | 1423 | # 1.3685115e-03, 1.0596807e-03, 8.2496027e-04, 6.4554632e-04, | ||
1428 | 1424 | # 5.0775614e-04, 4.0172285e-04, 3.1996314e-04, 2.5677121e-04, | ||
1429 | 1425 | # 2.0788121e-04, 1.6996988e-04, 1.4037525e-04, 1.1693715e-04, | ||
1430 | 1426 | # 9.7839570e-05, 8.1555616e-05, 6.6877295e-05, 5.3032557e-05, | ||
1431 | 1427 | # 3.9820348e-05, 2.7642036e-05, 1.7265954e-05, 9.4071798e-06, | ||
1432 | 1428 | # 4.3162443e-06, 1.5974573e-06, 4.4856401e-07, 8.6784619e-08, | ||
1433 | 1429 | # 1.0054849e-08, 4.7125287e-10, 5.0055779e-12, 1.3353325e-16/ | ||
1434 | 1430 | data (gridv(iny, 5),iny=1,32)/ | ||
1435 | 1431 | # 5.0242808e-03, 3.7368538e-03, 2.7975112e-03, 2.1069870e-03, | ||
1436 | 1432 | # 1.5976618e-03, 1.2178011e-03, 9.3297051e-04, 7.1829351e-04, | ||
1437 | 1433 | # 5.5582318e-04, 4.3260555e-04, 3.3896481e-04, 2.6762365e-04, | ||
1438 | 1434 | # 2.1321911e-04, 1.7163549e-04, 1.3964927e-04, 1.1469329e-04, | ||
1439 | 1435 | # 9.4678118e-05, 7.7901482e-05, 6.3058870e-05, 4.9337909e-05, | ||
1440 | 1436 | # 3.6517503e-05, 2.4952978e-05, 1.5315618e-05, 8.1824913e-06, | ||
1441 | 1437 | # 3.6722130e-06, 1.3251079e-06, 3.6114078e-07, 6.7413213e-08, | ||
1442 | 1438 | # 7.4593247e-09, 3.2711613e-10, 2.4150815e-12, 8.6646158e-17/ | ||
1443 | 1439 | data (gridv(iny, 6),iny=1,32)/ | ||
1444 | 1440 | # 6.0434242e-03, 4.4393078e-03, 3.2809706e-03, 2.4384204e-03, | ||
1445 | 1441 | # 1.8240018e-03, 1.3711741e-03, 1.0357484e-03, 7.8624158e-04, | ||
1446 | 1442 | # 5.9978597e-04, 4.6020082e-04, 3.5548403e-04, 2.7671910e-04, | ||
1447 | 1443 | # 2.1741591e-04, 1.7266372e-04, 1.3867688e-04, 1.1250016e-04, | ||
1448 | 1444 | # 9.1784840e-05, 7.4666871e-05, 5.9754966e-05, 4.6199819e-05, | ||
1449 | 1445 | # 3.3759746e-05, 2.2745966e-05, 1.3743797e-05, 7.2147556e-06, | ||
1450 | 1446 | # 3.1743092e-06, 1.1196153e-06, 2.9689509e-07, 5.3518235e-08, | ||
1451 | 1447 | # 5.6721821e-09, 2.3409415e-10, 1.1787607e-12, 5.8729404e-17/ | ||
1452 | 1448 | data (gridv(iny, 7),iny=1,32)/ | ||
1453 | 1449 | # 7.1959867e-03, 5.2238170e-03, 3.8140515e-03, 2.7991324e-03, | ||
1454 | 1450 | # 2.0670251e-03, 1.5335081e-03, 1.1431466e-03, 8.5620909e-04, | ||
1455 | 1451 | # 6.4440376e-04, 4.8779317e-04, 3.7174709e-04, 2.8552072e-04, | ||
1456 | 1452 | # 2.2138742e-04, 1.7357728e-04, 1.3770573e-04, 1.1041226e-04, | ||
1457 | 1453 | # 8.9081969e-05, 7.1687010e-05, 5.6748485e-05, 4.3377928e-05, | ||
1458 | 1454 | # 3.1310191e-05, 2.0811054e-05, 1.2385981e-05, 6.3920772e-06, | ||
1459 | 1455 | # 2.7583999e-06, 9.5083600e-07, 2.4412955e-07, 4.1454456e-08, | ||
1460 | 1456 | # 4.1336315e-09, 1.5732057e-10, 7.2362906e-13, 3.8540532e-17/ | ||
1461 | 1457 | data (gridv(iny, 8),iny=1,32)/ | ||
1462 | 1458 | # 8.5794573e-03, 6.1549995e-03, 4.4395854e-03, 3.2173803e-03, | ||
1463 | 1459 | # 2.3455029e-03, 1.7173947e-03, 1.2632918e-03, 9.3357781e-04, | ||
1464 | 1460 | # 6.9319431e-04, 5.1766046e-04, 3.8920495e-04, 2.9492776e-04, | ||
1465 | 1461 | # 2.2566512e-04, 1.7466681e-04, 1.3686160e-04, 1.0845033e-04, | ||
1466 | 1462 | # 8.6522845e-05, 6.8873718e-05, 5.3928273e-05, 4.0752757e-05, | ||
1467 | 1463 | # 2.9053811e-05, 1.9048548e-05, 1.1165828e-05, 5.6636607e-06, | ||
1468 | 1464 | # 2.3959922e-06, 8.0553030e-07, 1.9753531e-07, 2.9524070e-08, | ||
1469 | 1465 | # 2.5899490e-09, 8.0207162e-11, 2.5018623e-13, 1.8180313e-17/ | ||
1470 | 1466 | data firsttime/.true./ | ||
1471 | 1467 | save | ||
1472 | 1468 | if(firsttime)then | ||
1473 | 1469 | firsttime=.false. | ||
1474 | 1470 | nent(1)=nny | ||
1475 | 1471 | nent(2)=nnz | ||
1476 | 1472 | do iny=1,nny | ||
1477 | 1473 | ent(iny)=(yv(iny)) | ||
1478 | 1474 | enddo | ||
1479 | 1475 | do inz=1,nnz | ||
1480 | 1476 | ent(nny+inz)=(zv(inz)) | ||
1481 | 1477 | enddo | ||
1482 | 1478 | endif | ||
1483 | 1479 | arg(1)=(y) | ||
1484 | 1480 | arg(2)=(z) | ||
1485 | 1481 | tmp=dfint(narg,arg,nent,ent,gridv) | ||
1486 | 1482 | ewa_z_p_0=tmp | ||
1487 | 1483 | return | ||
1488 | 1484 | end | ||
1489 | 0 | 1485 | ||
1490 | === added file 'Template/LO/Source/PDF/ElectroweakFlux.inc' | |||
1491 | --- Template/LO/Source/PDF/ElectroweakFlux.inc 1970-01-01 00:00:00 +0000 | |||
1492 | +++ Template/LO/Source/PDF/ElectroweakFlux.inc 2021-02-05 11:45:49 +0000 | |||
1493 | @@ -0,0 +1,38 @@ | |||
1494 | 1 | double precision pi, pi2, sqrt2, eps | ||
1495 | 2 | double precision ewa_mw2, ewa_mz2, ewa_gf | ||
1496 | 3 | double precision ewa_qu,ewa_qd,ewa_qv,ewa_ql,ewa_t3u,ewa_t3d | ||
1497 | 4 | double precision ewa_cw2,ewa_sw2,ewa_gW2 | ||
1498 | 5 | double precision ewa_gV,ewa_gVu,ewa_gVd,ewa_gVv,ewa_gVl | ||
1499 | 6 | double precision ewa_gA,ewa_gAu,ewa_gAd,ewa_gAv,ewa_gAl | ||
1500 | 7 | c Math | ||
1501 | 8 | parameter (pi=3.141592653589793d0) | ||
1502 | 9 | parameter (pi2=9.869604401089358d0) | ||
1503 | 10 | parameter (sqrt2=1.4142135623730951d0) | ||
1504 | 11 | parameter (eps=1d-16) | ||
1505 | 12 | c Input EW parameters | ||
1506 | 13 | parameter (ewa_mw2 = 80.379d0**2) ! [GeV]^2 PDG 2018 | ||
1507 | 14 | parameter (ewa_mz2 = 91.1876d0**2) ! [GeV]^2 PDG 2018 | ||
1508 | 15 | parameter (ewa_gf = 1.1663787d-5) ! [GeV]^-2 PDG 2018 | ||
1509 | 16 | parameter (ewa_qu = 2d0/3d0) | ||
1510 | 17 | parameter (ewa_qd = -1d0/3d0) | ||
1511 | 18 | parameter (ewa_qv = 0d0) | ||
1512 | 19 | parameter (ewa_ql = -1d0) | ||
1513 | 20 | parameter (ewa_t3u = 0.5d0) | ||
1514 | 21 | parameter (ewa_t3d = -0.5d0) | ||
1515 | 22 | c Derived EW parameters | ||
1516 | 23 | parameter (ewa_cw2 = ewa_mw2/ewa_mz2) | ||
1517 | 24 | parameter (ewa_sw2 = 1d0 - ewa_mw2/ewa_mz2) | ||
1518 | 25 | parameter (ewa_gW2 = sqrt2*4d0*ewa_gf*ewa_mw2) | ||
1519 | 26 | c Weak Vector Couplings | ||
1520 | 27 | parameter (ewa_gV = 1d0) | ||
1521 | 28 | parameter (ewa_gVu = 0.5d0*ewa_t3u - ewa_qu*ewa_sw2) | ||
1522 | 29 | parameter (ewa_gVd = 0.5d0*ewa_t3d - ewa_qd*ewa_sw2) | ||
1523 | 30 | parameter (ewa_gVv = 0.5d0*ewa_t3u) | ||
1524 | 31 | parameter (ewa_gVl = 0.5d0*ewa_t3d - ewa_ql*ewa_sw2) | ||
1525 | 32 | c Weak Axialvector Couplings | ||
1526 | 33 | parameter (ewa_gA = -1d0) | ||
1527 | 34 | parameter (ewa_gAu = -0.5d0*ewa_t3u) | ||
1528 | 35 | parameter (ewa_gAd = -0.5d0*ewa_t3d) | ||
1529 | 36 | parameter (ewa_gAv = -0.5d0*ewa_t3u) | ||
1530 | 37 | parameter (ewa_gAl = -0.5d0*ewa_t3d) | ||
1531 | 38 | c | ||
1532 | 0 | \ No newline at end of file | 39 | \ No newline at end of file |
1533 | 1 | 40 | ||
1534 | === modified file 'Template/LO/Source/PDF/PhotonFlux.f' | |||
1535 | --- Template/LO/Source/PDF/PhotonFlux.f 2020-08-07 14:49:25 +0000 | |||
1536 | +++ Template/LO/Source/PDF/PhotonFlux.f 2021-02-05 11:45:49 +0000 | |||
1537 | @@ -1,8 +1,10 @@ | |||
1538 | 1 | c/* ********************************************************* */ | 1 | c/* ********************************************************* */ |
1543 | 2 | c/* Equivalent photon approximation structure function. * */ | 2 | c/* Equivalent photon approximation structure function. * */ |
1544 | 3 | c/* V.M.Budnev et al., Phys.Rep. 15C (1975) 181 * */ | 3 | c/* V.M.Budnev et al., Phys.Rep. 15C (1975) 181 * */ |
1545 | 4 | c/* Improved Weizsaecker-Williams formula * */ | 4 | c/* * */ |
1546 | 5 | c/* http://inspirehep.net/record/359425 * */ | 5 | c/* Improved Weizsaecker-Williams formula * */ |
1547 | 6 | c/* S. Frixione et al. hep-ph/9310350 * */ | ||
1548 | 7 | c/* * */ | ||
1549 | 6 | c/* ********************************************************* */ | 8 | c/* ********************************************************* */ |
1550 | 7 | c provided by Tomasz Pierzchala - UCL | 9 | c provided by Tomasz Pierzchala - UCL |
1551 | 8 | 10 | ||
1552 | 9 | 11 | ||
1553 | === modified file 'Template/LO/Source/PDF/makefile' | |||
1554 | --- Template/LO/Source/PDF/makefile 2020-04-08 19:22:14 +0000 | |||
1555 | +++ Template/LO/Source/PDF/makefile 2021-02-05 11:45:49 +0000 | |||
1556 | @@ -14,15 +14,16 @@ | |||
1557 | 14 | ifeq ($(lhapdfversion),5) | 14 | ifeq ($(lhapdfversion),5) |
1558 | 15 | $(error Bad lhadpfversion version 6 is now required) | 15 | $(error Bad lhadpfversion version 6 is now required) |
1559 | 16 | else | 16 | else |
1560 | 17 | PDF = pdfwrap_lhapdf.o pdf_lhapdf6.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o ElectroweakFlux.o | ||
1561 | 17 | ifeq ($(lhapdfsubversion),1) # 6.1.X | 18 | ifeq ($(lhapdfsubversion),1) # 6.1.X |
1563 | 18 | PDF = pdfwrap_lhapdf.o pdf_lhapdf6.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o | 19 | PDF = pdfwrap_lhapdf.o pdf_lhapdf6.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o ElectroweakFlux.o |
1564 | 19 | else # 6.2.X | 20 | else # 6.2.X |
1565 | 20 | CXXFLAGS+=-std=c++11 | 21 | CXXFLAGS+=-std=c++11 |
1567 | 21 | PDF = pdfwrap_lhapdf.o pdf_lhapdf62.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o | 22 | PDF = pdfwrap_lhapdf.o pdf_lhapdf62.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o ElectroweakFlux.o |
1568 | 22 | endif | 23 | endif |
1569 | 23 | endif | 24 | endif |
1570 | 24 | else | 25 | else |
1572 | 25 | PDF = Ctq6Pdf.o pdfwrap.o opendata.o pdf.o PhotonFlux.o pdg2pdf.o NNPDFDriver.o | 26 | PDF = Ctq6Pdf.o pdfwrap.o opendata.o pdf.o PhotonFlux.o pdg2pdf.o NNPDFDriver.o ElectroweakFlux.o |
1573 | 26 | endif | 27 | endif |
1574 | 27 | 28 | ||
1575 | 28 | all: $(LIBDIR)$(LIBRARY) | 29 | all: $(LIBDIR)$(LIBRARY) |
1576 | 29 | 30 | ||
1577 | === modified file 'Template/LO/Source/PDF/pdg2pdf.f' | |||
1578 | --- Template/LO/Source/PDF/pdg2pdf.f 2020-08-07 14:49:25 +0000 | |||
1579 | +++ Template/LO/Source/PDF/pdg2pdf.f 2021-02-05 11:45:49 +0000 | |||
1580 | @@ -32,7 +32,29 @@ | |||
1581 | 32 | data pdflast/30*-99d9/ | 32 | data pdflast/30*-99d9/ |
1582 | 33 | data pdlabellast/2*'abcdefg'/ | 33 | data pdlabellast/2*'abcdefg'/ |
1583 | 34 | data ihlast/2*-99/ | 34 | data ihlast/2*-99/ |
1585 | 35 | 35 | c | |
1586 | 36 | c Special for EWA (need to know current helicity) | ||
1587 | 37 | c | ||
1588 | 38 | double precision ewa_wX_ByPID, ewa_zX_ByPID | ||
1589 | 39 | external ewa_wX_ByPID, ewa_zX_ByPID | ||
1590 | 40 | integer hel, ppid | ||
1591 | 41 | double precision hel_jacobian | ||
1592 | 42 | INTEGER HEL_PICKED | ||
1593 | 43 | COMMON/HEL_PICKED/HEL_PICKED,hel_jacobian | ||
1594 | 44 | integer get_nhel | ||
1595 | 45 | external get_nhel | ||
1596 | 46 | REAL*8 POL(2) | ||
1597 | 47 | common/to_polarization/ POL | ||
1598 | 48 | c | ||
1599 | 49 | c Collider | ||
1600 | 50 | c | ||
1601 | 51 | integer lpp(2) | ||
1602 | 52 | double precision ebeam(2), xbk(2),q2fact(2) | ||
1603 | 53 | common/to_collider/ ebeam , xbk ,q2fact, lpp | ||
1604 | 54 | c | ||
1605 | 55 | c | ||
1606 | 56 | c | ||
1607 | 57 | double precision factor | ||
1608 | 36 | if (ih.eq.9) then | 58 | if (ih.eq.9) then |
1609 | 37 | pdg2pdf = 1d0 | 59 | pdg2pdf = 1d0 |
1610 | 38 | return | 60 | return |
1611 | @@ -66,12 +88,14 @@ | |||
1612 | 66 | ipart=7 | 88 | ipart=7 |
1613 | 67 | c This will be called for any PDG code, but we only support up to 7 | 89 | c This will be called for any PDG code, but we only support up to 7 |
1614 | 68 | else if(iabs(ipart).gt.7)then | 90 | else if(iabs(ipart).gt.7)then |
1621 | 69 | write(*,*) 'PDF not supported for pdg ',ipdg | 91 | if(iabs(ih).lt.2)then |
1622 | 70 | write(*,*) 'For lepton colliders, please set the lpp* '// | 92 | write(*,*) 'PDF not supported for pdg ',ipdg |
1623 | 71 | $ 'variables to 0 in the run_card' | 93 | write(*,*) 'For lepton colliders, please set the lpp* '// |
1624 | 72 | open(unit=26,file='../../../error',status='unknown') | 94 | $ 'variables to 0 in the run_card current is' , ih |
1625 | 73 | write(26,*) 'Error: PDF not supported for pdg ',ipdg | 95 | open(unit=26,file='../../../error',status='unknown') |
1626 | 74 | stop 1 | 96 | write(26,*) 'Error: PDF not supported for pdg ',ipdg |
1627 | 97 | stop 1 | ||
1628 | 98 | endif | ||
1629 | 75 | endif | 99 | endif |
1630 | 76 | 100 | ||
1631 | 77 | iporg=ipart | 101 | iporg=ipart |
1632 | @@ -85,7 +109,7 @@ | |||
1633 | 85 | enddo | 109 | enddo |
1634 | 86 | 110 | ||
1635 | 87 | c Reuse previous result, if possible | 111 | c Reuse previous result, if possible |
1637 | 88 | if (ireuse.gt.0.)then | 112 | if (ireuse.gt.0.and.iabs(iporg).lt.8)then |
1638 | 89 | if (pdflast(iporg,ireuse).ne.-99d9) then | 113 | if (pdflast(iporg,ireuse).ne.-99d9) then |
1639 | 90 | pdg2pdf = get_ion_pdf(pdflast(-7, ireuse), iporg, nb_proton(beamid), | 114 | pdg2pdf = get_ion_pdf(pdflast(-7, ireuse), iporg, nb_proton(beamid), |
1640 | 91 | $ nb_neutron(beamid)) | 115 | $ nb_neutron(beamid)) |
1641 | @@ -129,15 +153,85 @@ | |||
1642 | 129 | pdlabellast(ireuse)=pdlabel | 153 | pdlabellast(ireuse)=pdlabel |
1643 | 130 | ihlast(ireuse)=ih | 154 | ihlast(ireuse)=ih |
1644 | 131 | 155 | ||
1646 | 132 | if(iabs(ipart).eq.7.and.ih.gt.1) then | 156 | c |
1647 | 157 | c Special mode for Improved Weizsacker-Williams, | ||
1648 | 158 | c Equivalent photon, and Effective W/Z Approximations | ||
1649 | 159 | c | ||
1650 | 160 | if (ih.gt.1.and.ih.ne.9) then | ||
1651 | 161 | c Effective photon approximation | ||
1652 | 133 | q2max=xmu*xmu | 162 | q2max=xmu*xmu |
1660 | 134 | if(abs(ih).eq.3.or.abs(ih).eq.4) then !from the electron or muonn | 163 | if (iabs(ipart).eq.7) then |
1661 | 135 | pdg2pdf=epa_lepton(x,q2max, ih) | 164 | if(abs(ih).eq.3.or.abs(ih).eq.4) then !from the electron or muonn |
1662 | 136 | elseif(ih .eq. 2) then !from a proton without breaking | 165 | pdg2pdf=epa_lepton(x,q2max, ih) |
1663 | 137 | pdg2pdf=epa_proton(x,q2max,beamid) | 166 | elseif(ih .eq. 2) then !from a proton without breaking |
1664 | 138 | endif | 167 | pdg2pdf=epa_proton(x,q2max,beamid) |
1665 | 139 | pdflast(iporg,ireuse)=pdg2pdf | 168 | endif |
1666 | 140 | return | 169 | pdflast(iporg,ireuse)=pdg2pdf |
1667 | 170 | return | ||
1668 | 171 | elseif(iabs(ipart).eq.23) then ! z boson | ||
1669 | 172 | factor = 3d0 ! 3 to cancel the average over W helicities´ | ||
1670 | 173 | if (ABS(ih).eq.3) then | ||
1671 | 174 | ppid = 11 | ||
1672 | 175 | elseif(ABS(ih).eq.4) then | ||
1673 | 176 | ppid = 13 | ||
1674 | 177 | elseif(ABS(ih).eq.2) then | ||
1675 | 178 | ppid = 2212 | ||
1676 | 179 | else | ||
1677 | 180 | write(*,*) "type of beam not yet supported for EWA" | ||
1678 | 181 | stop 4 | ||
1679 | 182 | endif | ||
1680 | 183 | hel = GET_NHEL(HEL_PICKED, beamid) | ||
1681 | 184 | pdg2pdf = factor * ewa_zX_ByPID(x,q2max,hel,ppid) | ||
1682 | 185 | if (ABS(POL(beamid)).ne.1d0) then | ||
1683 | 186 | write(*,*) 'beam polarization not supported for EWA with Z' | ||
1684 | 187 | stop 33 | ||
1685 | 188 | endif | ||
1686 | 189 | |||
1687 | 190 | return | ||
1688 | 191 | elseif(ipart.eq.24) then ! w+ boson | ||
1689 | 192 | factor = 3d0 ! 3 to cancel the average over W helicities´ | ||
1690 | 193 | if (ih.eq.-3) then ! from e+ | ||
1691 | 194 | ppid = -11 | ||
1692 | 195 | elseif(ih.eq.-4) then ! from mu+ | ||
1693 | 196 | ppid = -13 | ||
1694 | 197 | elseif(ih.eq.2) then | ||
1695 | 198 | ppid = 2212 | ||
1696 | 199 | else | ||
1697 | 200 | write(*,*) "type of beam not yet supported for EWA" | ||
1698 | 201 | stop 4 | ||
1699 | 202 | endif | ||
1700 | 203 | hel = GET_NHEL(HEL_PICKED, beamid) | ||
1701 | 204 | pdg2pdf = factor*ewa_wX_ByPID(x,q2max,hel,ppid) | ||
1702 | 205 | if(pol(beamid).lt.0d0)then | ||
1703 | 206 | pdg2pdf = pdg2pdf * (2-ABS(POL(beamid)))/2d0 ! couple only to right handed componenta | ||
1704 | 207 | else | ||
1705 | 208 | pdg2pdf = pdg2pdf * ABS(POL(beamid))/2d0 ! couple only to right handed componenta | ||
1706 | 209 | endif | ||
1707 | 210 | return | ||
1708 | 211 | elseif(ipart.eq.-24) then ! w- boson | ||
1709 | 212 | factor = 3d0 ! 3 to cancel the average over W helicities´ | ||
1710 | 213 | if (ih.eq.3) then ! from e- | ||
1711 | 214 | ppid = 11 | ||
1712 | 215 | elseif(ih.eq.4) then ! from mu- | ||
1713 | 216 | ppid = 13 | ||
1714 | 217 | elseif(ih.eq.2) then | ||
1715 | 218 | ppid = -2212 | ||
1716 | 219 | else | ||
1717 | 220 | write(*,*) "type of beam not yet supported for EWA" | ||
1718 | 221 | stop 4 | ||
1719 | 222 | endif | ||
1720 | 223 | |||
1721 | 224 | hel = GET_NHEL(HEL_PICKED, beamid) | ||
1722 | 225 | pdg2pdf = factor*ewa_wX_ByPID(x,q2max,hel,ppid) | ||
1723 | 226 | if(pol(beamid)*lpp(beamid).lt.0d0)then | ||
1724 | 227 | pdg2pdf = pdg2pdf * ABS(POL(beamid))/2d0 ! couple only to left handed componenta | ||
1725 | 228 | else | ||
1726 | 229 | pdg2pdf = pdg2pdf * (2-ABS(POL(beamid)))/2d0 ! couple only to left handed componenta | ||
1727 | 230 | endif | ||
1728 | 231 | |||
1729 | 232 | |||
1730 | 233 | return | ||
1731 | 234 | endif | ||
1732 | 141 | endif | 235 | endif |
1733 | 142 | 236 | ||
1734 | 143 | if (pdlabel(1:5) .eq. 'cteq6') then | 237 | if (pdlabel(1:5) .eq. 'cteq6') then |
1735 | 144 | 238 | ||
1736 | === modified file 'Template/LO/Source/PDF/pdg2pdf_lhapdf6.f' | |||
1737 | --- Template/LO/Source/PDF/pdg2pdf_lhapdf6.f 2020-08-07 14:49:25 +0000 | |||
1738 | +++ Template/LO/Source/PDF/pdg2pdf_lhapdf6.f 2021-02-05 11:45:49 +0000 | |||
1739 | @@ -33,6 +33,37 @@ | |||
1740 | 33 | data pdflast/300*-99d9/ | 33 | data pdflast/300*-99d9/ |
1741 | 34 | data imemlast/20*-99/ | 34 | data imemlast/20*-99/ |
1742 | 35 | data i_replace/20/ | 35 | data i_replace/20/ |
1743 | 36 | c | ||
1744 | 37 | c Special for EWA (need to know current helicity) | ||
1745 | 38 | c | ||
1746 | 39 | double precision ewa_wX_ByPID, ewa_zX_ByPID | ||
1747 | 40 | external ewa_wX_ByPID, ewa_zX_ByPID | ||
1748 | 41 | integer hel, ppid | ||
1749 | 42 | double precision hel_jacobian | ||
1750 | 43 | INTEGER HEL_PICKED | ||
1751 | 44 | COMMON/HEL_PICKED/HEL_PICKED,hel_jacobian | ||
1752 | 45 | integer get_nhel | ||
1753 | 46 | external get_nhel | ||
1754 | 47 | REAL*8 POL(2) | ||
1755 | 48 | common/to_polarization/ POL | ||
1756 | 49 | double precision q2max | ||
1757 | 50 | double precision epa_electron | ||
1758 | 51 | c | ||
1759 | 52 | c Collider | ||
1760 | 53 | c | ||
1761 | 54 | integer lpp(2) | ||
1762 | 55 | double precision ebeam(2), xbk(2),q2fact(2) | ||
1763 | 56 | common/to_collider/ ebeam , xbk ,q2fact, lpp | ||
1764 | 57 | c | ||
1765 | 58 | c | ||
1766 | 59 | c | ||
1767 | 60 | double precision factor | ||
1768 | 61 | |||
1769 | 62 | if (ih.eq.9) then | ||
1770 | 63 | pdg2pdf = 1d0 | ||
1771 | 64 | return | ||
1772 | 65 | endif | ||
1773 | 66 | |||
1774 | 36 | 67 | ||
1775 | 37 | nb_hadron = (nb_proton(beamid)+nb_neutron(beamid)) | 68 | nb_hadron = (nb_proton(beamid)+nb_neutron(beamid)) |
1776 | 38 | c Make sure we have a reasonable Bjorken x. Note that even though | 69 | c Make sure we have a reasonable Bjorken x. Note that even though |
1777 | @@ -62,12 +93,14 @@ | |||
1778 | 62 | ipart=7 | 93 | ipart=7 |
1779 | 63 | c This will be called for any PDG code, but we only support up to 7 | 94 | c This will be called for any PDG code, but we only support up to 7 |
1780 | 64 | else if(iabs(ipart).gt.7)then | 95 | else if(iabs(ipart).gt.7)then |
1787 | 65 | write(*,*) 'PDF not supported for pdg ',ipdg | 96 | if(iabs(ih).lt.2)then |
1788 | 66 | write(*,*) 'For lepton colliders, please set the lpp* '// | 97 | write(*,*) 'PDF not supported for pdg ',ipdg |
1789 | 67 | $ 'variables to 0 in the run_card' | 98 | write(*,*) 'For lepton colliders, please set the lpp* '// |
1790 | 68 | open(unit=26,file='../../../error',status='unknown') | 99 | $ 'variables to 0 in the run_card' |
1791 | 69 | write(26,*) 'Error: PDF not supported for pdg ',ipdg | 100 | open(unit=26,file='../../../error',status='unknown') |
1792 | 70 | stop 1 | 101 | write(26,*) 'Error: PDF not supported for pdg ',ipdg |
1793 | 102 | stop 1 | ||
1794 | 103 | endif | ||
1795 | 71 | endif | 104 | endif |
1796 | 72 | 105 | ||
1797 | 73 | iporg=ipart | 106 | iporg=ipart |
1798 | @@ -139,10 +172,77 @@ | |||
1799 | 139 | pdg2pdf = get_ion_pdf(pdflast(-7, i_replace), ipart, nb_proton(beamid), nb_neutron(beamid)) | 172 | pdg2pdf = get_ion_pdf(pdflast(-7, i_replace), ipart, nb_proton(beamid), nb_neutron(beamid)) |
1800 | 140 | endif | 173 | endif |
1801 | 141 | pdg2pdf=pdg2pdf/x | 174 | pdg2pdf=pdg2pdf/x |
1806 | 142 | else if(abs(ih).eq.3.or.abs(ih).eq.4) then !from the electron | 175 | else if(ih.gt.1.and.ih.ne.9) then ! photon from a proton without breaking |
1807 | 143 | pdg2pdf=epa_lepton(x,xmu*xmu, ih) | 176 | c Effective photon approximation |
1808 | 144 | else if(ih.eq.2) then ! photon from a proton without breaking | 177 | q2max=xmu*xmu |
1809 | 145 | pdg2pdf = epa_proton(x,xmu*xmu) | 178 | if (iabs(ipart).eq.7) then |
1810 | 179 | if(abs(ih).eq.3.or.abs(ih).eq.4) then !from the electron | ||
1811 | 180 | pdg2pdf=epa_lepton(x,xmu*xmu, ih) | ||
1812 | 181 | elseif(ih .eq. 2) then !from a proton without breaking | ||
1813 | 182 | pdg2pdf=epa_proton(x,q2max,beamid) | ||
1814 | 183 | endif | ||
1815 | 184 | pdflast(iporg,ireuse)=pdg2pdf | ||
1816 | 185 | return | ||
1817 | 186 | elseif(iabs(ipart).eq.23) then ! z boson | ||
1818 | 187 | if (ih.eq.3) then | ||
1819 | 188 | ppid = 11 | ||
1820 | 189 | elseif(ih.eq.4) then | ||
1821 | 190 | ppid = 13 | ||
1822 | 191 | elseif(ih.eq.2) then | ||
1823 | 192 | ppid = 2212 | ||
1824 | 193 | else | ||
1825 | 194 | write(*,*) "type of beam not yet supported for EWA" | ||
1826 | 195 | stop 4 | ||
1827 | 196 | endif | ||
1828 | 197 | hel = GET_NHEL(HEL_PICKED, beamid) | ||
1829 | 198 | pdg2pdf = ewa_zX_ByPID(x,q2max,hel,ppid) | ||
1830 | 199 | if (ABS(POL(beamid)).ne.1d0) then | ||
1831 | 200 | write(*,*) | ||
1832 | 201 | & 'beam polarization not supported for EWA with Z' | ||
1833 | 202 | stop 33 | ||
1834 | 203 | endif | ||
1835 | 204 | return | ||
1836 | 205 | elseif(ipart.eq.24) then ! w+ boson | ||
1837 | 206 | factor = 3d0 ! 3 to cancel the average over W helicities´ | ||
1838 | 207 | if (ih.eq.-3) then ! from e+ | ||
1839 | 208 | ppid = -11 | ||
1840 | 209 | elseif(ih.eq.-4) then ! from mu+ | ||
1841 | 210 | ppid = -13 | ||
1842 | 211 | elseif(ih.eq.2) then | ||
1843 | 212 | ppid = 2212 | ||
1844 | 213 | else | ||
1845 | 214 | write(*,*) "type of beam not yet supported for EWA" | ||
1846 | 215 | stop 4 | ||
1847 | 216 | endif | ||
1848 | 217 | hel = GET_NHEL(HEL_PICKED, beamid) | ||
1849 | 218 | pdg2pdf = factor*ewa_wX_ByPID(x,q2max,hel,ppid) | ||
1850 | 219 | if(pol(beamid).lt.0d0)then | ||
1851 | 220 | pdg2pdf = pdg2pdf * (2-ABS(POL(beamid)))/2d0 ! couple only to right handed componenta | ||
1852 | 221 | else | ||
1853 | 222 | pdg2pdf = pdg2pdf * ABS(POL(beamid))/2d0 ! couple only to right handed componenta | ||
1854 | 223 | endif | ||
1855 | 224 | return | ||
1856 | 225 | elseif(ipart.eq.-24) then ! w- boson | ||
1857 | 226 | factor = 3d0 ! 3 to cancel the average over W helicities´ | ||
1858 | 227 | if (ih.eq.3) then ! from e- | ||
1859 | 228 | ppid = 11 | ||
1860 | 229 | elseif(ih.eq.4) then ! from mu- | ||
1861 | 230 | ppid = 13 | ||
1862 | 231 | elseif(ih.eq.2) then | ||
1863 | 232 | ppid = -2212 | ||
1864 | 233 | else | ||
1865 | 234 | write(*,*) "type of beam not yet supported for EWA" | ||
1866 | 235 | stop 4 | ||
1867 | 236 | endif | ||
1868 | 237 | |||
1869 | 238 | hel = GET_NHEL(HEL_PICKED, beamid) | ||
1870 | 239 | pdg2pdf = factor*ewa_wX_ByPID(x,q2max,hel,ppid) | ||
1871 | 240 | if(pol(beamid)*lpp(beamid).lt.0d0)then | ||
1872 | 241 | pdg2pdf = pdg2pdf * ABS(POL(beamid))/2d0 ! couple only to left handed componenta | ||
1873 | 242 | else | ||
1874 | 243 | pdg2pdf = pdg2pdf * (2-ABS(POL(beamid)))/2d0 ! couple only to left handed componenta | ||
1875 | 244 | endif | ||
1876 | 245 | endif | ||
1877 | 146 | else | 246 | else |
1878 | 147 | write (*,*) 'beam type not supported in lhadpf' | 247 | write (*,*) 'beam type not supported in lhadpf' |
1879 | 148 | stop 1 | 248 | stop 1 |
1880 | 149 | 249 | ||
1881 | === modified file 'Template/LO/Source/setrun.f' | |||
1882 | --- Template/LO/Source/setrun.f 2020-08-07 14:49:25 +0000 | |||
1883 | +++ Template/LO/Source/setrun.f 2021-02-05 11:45:49 +0000 | |||
1884 | @@ -97,14 +97,13 @@ | |||
1885 | 97 | endif | 97 | endif |
1886 | 98 | pol(2)=sign(1+abs(pb2)/100d0,pb2) | 98 | pol(2)=sign(1+abs(pb2)/100d0,pb2) |
1887 | 99 | endif | 99 | endif |
1888 | 100 | |||
1889 | 101 | 100 | ||
1890 | 102 | if(pb1.ne.0d0.and.lpp(1).eq.0) pol(1)=sign(1+abs(pb1)/100d0,pb1) | 101 | if(pb1.ne.0d0.and.lpp(1).eq.0) pol(1)=sign(1+abs(pb1)/100d0,pb1) |
1891 | 103 | if(pb2.ne.0d0.and.lpp(2).eq.0) pol(2)=sign(1+abs(pb2)/100d0,pb2) | 102 | if(pb2.ne.0d0.and.lpp(2).eq.0) pol(2)=sign(1+abs(pb2)/100d0,pb2) |
1892 | 104 | 103 | ||
1893 | 105 | if(pb1.ne.0.or.pb2.ne.0) write(*,*) 'Setting beam polarization ', | 104 | if(pb1.ne.0.or.pb2.ne.0) write(*,*) 'Setting beam polarization ', |
1896 | 106 | $ sign((abs(pol(1))-1)*100,pol(1)), | 105 | $ pol(1), pol(2) |
1897 | 107 | $ sign((abs(pol(2))-1)*100,pol(2)) | 106 | |
1898 | 108 | 107 | ||
1899 | 109 | c !!! Default behavior changed (MH, Aug. 07) !!! | 108 | c !!! Default behavior changed (MH, Aug. 07) !!! |
1900 | 110 | c If no pdf, read the param_card and use the value from there and | 109 | c If no pdf, read the param_card and use the value from there and |
1901 | 111 | 110 | ||
1902 | === modified file 'Template/LO/SubProcesses/genps.f' | |||
1903 | --- Template/LO/SubProcesses/genps.f 2020-08-10 19:06:52 +0000 | |||
1904 | +++ Template/LO/SubProcesses/genps.f 2021-02-05 11:45:49 +0000 | |||
1905 | @@ -572,6 +572,7 @@ | |||
1906 | 572 | if (abs(lpp(2)) .eq. 1 .or. abs(lpp(2)) .eq. 2) m2 = 0.938d0 | 572 | if (abs(lpp(2)) .eq. 1 .or. abs(lpp(2)) .eq. 2) m2 = 0.938d0 |
1907 | 573 | if (abs(lpp(1)) .eq. 3) m1 = 0.000511d0 | 573 | if (abs(lpp(1)) .eq. 3) m1 = 0.000511d0 |
1908 | 574 | if (abs(lpp(2)) .eq. 3) m2 = 0.000511d0 | 574 | if (abs(lpp(2)) .eq. 3) m2 = 0.000511d0 |
1909 | 575 | if (abs(lpp(1)) .eq. 4) m1 = 0.000511d0 | ||
1910 | 575 | if (abs(lpp(1)) .eq. 4) m1 = 0.105658d0 | 576 | if (abs(lpp(1)) .eq. 4) m1 = 0.105658d0 |
1911 | 576 | if (abs(lpp(2)) .eq. 4) m2 = 0.105658d0 | 577 | if (abs(lpp(2)) .eq. 4) m2 = 0.105658d0 |
1912 | 577 | if (mass_ion(1).ge.0d0) m1 = mass_ion(1) | 578 | if (mass_ion(1).ge.0d0) m1 = mass_ion(1) |
1913 | 578 | 579 | ||
1914 | === modified file 'Template/MadWeight/src/setrun.f' | |||
1915 | --- Template/MadWeight/src/setrun.f 2018-04-27 21:01:37 +0000 | |||
1916 | +++ Template/MadWeight/src/setrun.f 2021-02-05 11:45:49 +0000 | |||
1917 | @@ -536,3 +536,11 @@ | |||
1918 | 536 | 536 | ||
1919 | 537 | return | 537 | return |
1920 | 538 | end | 538 | end |
1921 | 539 | |||
1922 | 540 | INTEGER FUNCTION GET_NHEL(HEL, IPART) | ||
1923 | 541 | implicit none | ||
1924 | 542 | integer hel | ||
1925 | 543 | integer ipart | ||
1926 | 544 | get_nhel = 99 | ||
1927 | 545 | return | ||
1928 | 546 | end | ||
1929 | 539 | 547 | ||
1930 | === modified file 'madgraph/core/base_objects.py' | |||
1931 | --- madgraph/core/base_objects.py 2020-08-20 15:12:34 +0000 | |||
1932 | +++ madgraph/core/base_objects.py 2021-02-05 11:45:49 +0000 | |||
1933 | @@ -1222,7 +1222,8 @@ | |||
1934 | 1222 | 1222 | ||
1935 | 1223 | if name == 'particles': | 1223 | if name == 'particles': |
1936 | 1224 | # Ensure no doublets in particle list | 1224 | # Ensure no doublets in particle list |
1938 | 1225 | make_unique(value) | 1225 | if value: |
1939 | 1226 | make_unique(value) | ||
1940 | 1226 | # Reset dictionaries | 1227 | # Reset dictionaries |
1941 | 1227 | self['particle_dict'] = {} | 1228 | self['particle_dict'] = {} |
1942 | 1228 | self['ref_dict_to0'] = {} | 1229 | self['ref_dict_to0'] = {} |
1943 | @@ -4068,7 +4069,7 @@ | |||
1944 | 4068 | is needed""" | 4069 | is needed""" |
1945 | 4069 | 4070 | ||
1946 | 4070 | assert isinstance(doubletlist, list), \ | 4071 | assert isinstance(doubletlist, list), \ |
1948 | 4071 | "Argument to make_unique must be list" | 4072 | "Argument to make_unique must be list not %s" % type(doubletlist) |
1949 | 4072 | 4073 | ||
1950 | 4073 | 4074 | ||
1951 | 4074 | uniquelist = [] | 4075 | uniquelist = [] |
1952 | 4075 | 4076 | ||
1953 | === modified file 'madgraph/interface/common_run_interface.py' | |||
1954 | --- madgraph/interface/common_run_interface.py 2020-08-17 22:31:42 +0000 | |||
1955 | +++ madgraph/interface/common_run_interface.py 2021-02-05 11:45:49 +0000 | |||
1956 | @@ -5839,6 +5839,21 @@ | |||
1957 | 5839 | self.run_card['mass_ion1'] != self.run_card['mass_ion2']): | 5839 | self.run_card['mass_ion1'] != self.run_card['mass_ion2']): |
1958 | 5840 | 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\"." | 5840 | 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\"." |
1959 | 5841 | 5841 | ||
1960 | 5842 | # EWA mode should use MC over polarization and no systematics (due to pdf call inreweight) | ||
1961 | 5843 | if self.run_card['lpp1'] in [2,3,4,-3,-4] or self.run_card['lpp2'] in [2,3,4,-3,-4]: | ||
1962 | 5844 | if any(pdg in proc_charac['pdg_initial1']+ proc_charac['pdg_initial2'] | ||
1963 | 5845 | for pdg in [24, -24, 23]): | ||
1964 | 5846 | if self.run_card['nhel'] == 0: | ||
1965 | 5847 | logger.warning("only MC over polarization supported for EWA mode") | ||
1966 | 5848 | self.do_set('run_card nhel 1') | ||
1967 | 5849 | if self.run_card['use_syst']: | ||
1968 | 5850 | logger.warning("evaluation of systematics not allowed in EWA mode. set use_syst to False") | ||
1969 | 5851 | self.do_set('run_card use_syst False') | ||
1970 | 5852 | |||
1971 | 5853 | if self.run_card['lpp1'] in [4,-4] or self.run_card['lpp2'] in [4,-4]: | ||
1972 | 5854 | if 22 in proc_charac['pdg_initial1']+ proc_charac['pdg_initial2']: | ||
1973 | 5855 | raise Exception, "EPA not implemented from muon beam. (please open a ticket and we will do it)" | ||
1974 | 5856 | |||
1975 | 5842 | # check the status of small width status from LO | 5857 | # check the status of small width status from LO |
1976 | 5843 | for param in self.param_card['decay']: | 5858 | for param in self.param_card['decay']: |
1977 | 5844 | width = param.value | 5859 | width = param.value |
1978 | 5845 | 5860 | ||
1979 | === modified file 'madgraph/interface/madevent_interface.py' | |||
1980 | --- madgraph/interface/madevent_interface.py 2020-06-18 20:23:25 +0000 | |||
1981 | +++ madgraph/interface/madevent_interface.py 2021-02-05 11:45:49 +0000 | |||
1982 | @@ -5414,6 +5414,7 @@ | |||
1983 | 5414 | elif mode in [1,2]: | 5414 | elif mode in [1,2]: |
1984 | 5415 | exename = os.path.basename(exe) | 5415 | exename = os.path.basename(exe) |
1985 | 5416 | # For condor cluster, create the input/output files | 5416 | # For condor cluster, create the input/output files |
1986 | 5417 | misc.sprint(exename) | ||
1987 | 5417 | if 'ajob' in exename: | 5418 | if 'ajob' in exename: |
1988 | 5418 | input_files = ['madevent','input_app.txt','symfact.dat','iproc.dat','dname.mg', | 5419 | input_files = ['madevent','input_app.txt','symfact.dat','iproc.dat','dname.mg', |
1989 | 5419 | pjoin(self.me_dir, 'SubProcesses','randinit')] | 5420 | pjoin(self.me_dir, 'SubProcesses','randinit')] |
1990 | @@ -5509,7 +5510,7 @@ | |||
1991 | 5509 | #submitting | 5510 | #submitting |
1992 | 5510 | self.cluster.cluster_submit(exe, stdout=stdout, cwd=cwd, argument=argument, | 5511 | self.cluster.cluster_submit(exe, stdout=stdout, cwd=cwd, argument=argument, |
1993 | 5511 | input_files=input_files, output_files=output_files, | 5512 | input_files=input_files, output_files=output_files, |
1995 | 5512 | required_output=required_output, **opt) | 5513 | required_output=required_output, allow_array=True, **opt) |
1996 | 5513 | elif "refine_splitted.sh" in exename: | 5514 | elif "refine_splitted.sh" in exename: |
1997 | 5514 | input_files = ['madevent','symfact.dat','iproc.dat', 'dname.mg', | 5515 | input_files = ['madevent','symfact.dat','iproc.dat', 'dname.mg', |
1998 | 5515 | pjoin(self.me_dir, 'SubProcesses','randinit')] | 5516 | pjoin(self.me_dir, 'SubProcesses','randinit')] |
1999 | @@ -5533,7 +5534,7 @@ | |||
2000 | 5533 | #submitting | 5534 | #submitting |
2001 | 5534 | self.cluster.cluster_submit(exe, stdout=stdout, cwd=cwd, argument=argument, | 5535 | self.cluster.cluster_submit(exe, stdout=stdout, cwd=cwd, argument=argument, |
2002 | 5535 | input_files=input_files, output_files=output_files, | 5536 | input_files=input_files, output_files=output_files, |
2004 | 5536 | required_output=required_output, **opt) | 5537 | required_output=required_output,allow_array=True, **opt) |
2005 | 5537 | 5538 | ||
2006 | 5538 | 5539 | ||
2007 | 5539 | 5540 | ||
2008 | 5540 | 5541 | ||
2009 | === modified file 'madgraph/iolibs/export_v4.py' | |||
2010 | --- madgraph/iolibs/export_v4.py 2020-08-20 13:17:30 +0000 | |||
2011 | +++ madgraph/iolibs/export_v4.py 2021-02-05 11:45:49 +0000 | |||
2012 | @@ -166,6 +166,7 @@ | |||
2013 | 166 | self.mgme_dir = MG5DIR | 166 | self.mgme_dir = MG5DIR |
2014 | 167 | self.dir_path = dir_path | 167 | self.dir_path = dir_path |
2015 | 168 | self.model = None | 168 | self.model = None |
2016 | 169 | self.beam_polarization = True | ||
2017 | 169 | 170 | ||
2018 | 170 | self.opt = dict(self.default_opt) | 171 | self.opt = dict(self.default_opt) |
2019 | 171 | if opt: | 172 | if opt: |
2020 | @@ -185,12 +186,48 @@ | |||
2021 | 185 | def export_processes(self, matrix_elements, fortran_model): | 186 | def export_processes(self, matrix_elements, fortran_model): |
2022 | 186 | """Make the switch between grouped and not grouped output""" | 187 | """Make the switch between grouped and not grouped output""" |
2023 | 187 | 188 | ||
2024 | 189 | |||
2025 | 188 | calls = 0 | 190 | calls = 0 |
2026 | 189 | if isinstance(matrix_elements, group_subprocs.SubProcessGroupList): | 191 | if isinstance(matrix_elements, group_subprocs.SubProcessGroupList): |
2027 | 192 | # check handling for the polarization | ||
2028 | 193 | for m in matrix_elements: | ||
2029 | 194 | for me in m.get('matrix_elements'): | ||
2030 | 195 | for p in me.get('processes'): | ||
2031 | 196 | for pid in p.get_initial_ids(): | ||
2032 | 197 | spin = p.get('model').get_particle(pid).get('spin') | ||
2033 | 198 | if spin != 2: | ||
2034 | 199 | self.beam_polarization = False | ||
2035 | 200 | break | ||
2036 | 201 | else: | ||
2037 | 202 | continue | ||
2038 | 203 | break | ||
2039 | 204 | else: | ||
2040 | 205 | continue | ||
2041 | 206 | break | ||
2042 | 207 | else: | ||
2043 | 208 | continue | ||
2044 | 209 | break | ||
2045 | 210 | |||
2046 | 190 | for (group_number, me_group) in enumerate(matrix_elements): | 211 | for (group_number, me_group) in enumerate(matrix_elements): |
2047 | 191 | calls = calls + self.generate_subprocess_directory(\ | 212 | calls = calls + self.generate_subprocess_directory(\ |
2048 | 192 | me_group, fortran_model, group_number) | 213 | me_group, fortran_model, group_number) |
2049 | 193 | else: | 214 | else: |
2050 | 215 | # check handling for the polarization | ||
2051 | 216 | self.beam_polarization = True | ||
2052 | 217 | for me in matrix_elements.get_matrix_elements(): | ||
2053 | 218 | for p in me.get('processes'): | ||
2054 | 219 | for pid in p.get_initial_ids(): | ||
2055 | 220 | spin = p.get('model').get_particle(pid).get('spin') | ||
2056 | 221 | if spin != 2: | ||
2057 | 222 | self.beam_polarization = False | ||
2058 | 223 | break | ||
2059 | 224 | else: | ||
2060 | 225 | continue | ||
2061 | 226 | break | ||
2062 | 227 | else: | ||
2063 | 228 | continue | ||
2064 | 229 | break | ||
2065 | 230 | |||
2066 | 194 | for me_number, me in enumerate(matrix_elements.get_matrix_elements()): | 231 | for me_number, me in enumerate(matrix_elements.get_matrix_elements()): |
2067 | 195 | calls = calls + self.generate_subprocess_directory(\ | 232 | calls = calls + self.generate_subprocess_directory(\ |
2068 | 196 | me, fortran_model, me_number) | 233 | me, fortran_model, me_number) |
2069 | @@ -4197,11 +4234,24 @@ | |||
2070 | 4197 | split_orders if len(split_orders)>0 else ['ALL_ORDERS']) | 4234 | split_orders if len(split_orders)>0 else ['ALL_ORDERS']) |
2071 | 4198 | replace_dict['jamp_lines'] = '\n'.join(jamp_lines) | 4235 | replace_dict['jamp_lines'] = '\n'.join(jamp_lines) |
2072 | 4199 | 4236 | ||
2073 | 4237 | if self.beam_polarization: | ||
2074 | 4238 | replace_dict['beam_polarization'] = """ | ||
2075 | 4239 | DO JJ=1,nincoming | ||
2076 | 4240 | IF(POL(JJ).NE.1d0.AND.NHEL(JJ,I).EQ.INT(SIGN(1d0,POL(JJ)))) THEN | ||
2077 | 4241 | T=T*ABS(POL(JJ)) | ||
2078 | 4242 | ELSE IF(POL(JJ).NE.1d0)THEN | ||
2079 | 4243 | T=T*(2d0-ABS(POL(JJ))) | ||
2080 | 4244 | ENDIF | ||
2081 | 4245 | ENDDO | ||
2082 | 4246 | """ | ||
2083 | 4247 | else: | ||
2084 | 4248 | replace_dict['beam_polarization'] = "" | ||
2085 | 4249 | |||
2086 | 4250 | |||
2087 | 4200 | replace_dict['template_file'] = pjoin(_file_path, \ | 4251 | replace_dict['template_file'] = pjoin(_file_path, \ |
2088 | 4201 | 'iolibs/template_files/%s' % self.matrix_file) | 4252 | 'iolibs/template_files/%s' % self.matrix_file) |
2089 | 4202 | replace_dict['template_file2'] = pjoin(_file_path, \ | 4253 | replace_dict['template_file2'] = pjoin(_file_path, \ |
2092 | 4203 | 'iolibs/template_files/split_orders_helping_functions.inc') | 4254 | 'iolibs/template_files/split_orders_helping_functions.inc') |
2091 | 4204 | |||
2093 | 4205 | s1,s2 = matrix_element.get_spin_state_initial() | 4255 | s1,s2 = matrix_element.get_spin_state_initial() |
2094 | 4206 | replace_dict['nb_spin_state1'] = s1 | 4256 | replace_dict['nb_spin_state1'] = s1 |
2095 | 4207 | replace_dict['nb_spin_state2'] = s2 | 4257 | replace_dict['nb_spin_state2'] = s2 |
2096 | @@ -4308,14 +4358,21 @@ | |||
2097 | 4308 | replace_dict['define_subdiag_lines'] = "" | 4358 | replace_dict['define_subdiag_lines'] = "" |
2098 | 4309 | replace_dict['cutsdone'] = " cutsdone=.false.\n cutspassed=.false." | 4359 | replace_dict['cutsdone'] = " cutsdone=.false.\n cutspassed=.false." |
2099 | 4310 | 4360 | ||
2100 | 4361 | ncomb=matrix_element.get_helicity_combinations() | ||
2101 | 4362 | |||
2102 | 4363 | replace_dict['ncomb']= ncomb | ||
2103 | 4364 | helicity_lines = self.get_helicity_lines(matrix_element) | ||
2104 | 4365 | replace_dict['helicity_lines'] = helicity_lines | ||
2105 | 4366 | |||
2106 | 4311 | if not isinstance(self, ProcessExporterFortranMEGroup): | 4367 | if not isinstance(self, ProcessExporterFortranMEGroup): |
2107 | 4312 | ncomb=matrix_element.get_helicity_combinations() | ||
2108 | 4313 | replace_dict['read_write_good_hel'] = self.read_write_good_hel(ncomb) | 4368 | replace_dict['read_write_good_hel'] = self.read_write_good_hel(ncomb) |
2109 | 4314 | else: | 4369 | else: |
2110 | 4315 | replace_dict['read_write_good_hel'] = "" | 4370 | replace_dict['read_write_good_hel'] = "" |
2111 | 4371 | # Extract helicity lines | ||
2112 | 4316 | 4372 | ||
2113 | 4317 | context = {'read_write_good_hel':True} | 4373 | context = {'read_write_good_hel':True} |
2114 | 4318 | 4374 | ||
2115 | 4375 | |||
2116 | 4319 | if writer: | 4376 | if writer: |
2117 | 4320 | file = open(pjoin(_file_path, \ | 4377 | file = open(pjoin(_file_path, \ |
2118 | 4321 | 'iolibs/template_files/auto_dsig_v4.inc')).read() | 4378 | 'iolibs/template_files/auto_dsig_v4.inc')).read() |
2119 | 4322 | 4379 | ||
2120 | === modified file 'madgraph/iolibs/template_files/auto_dsig_v4.inc' | |||
2121 | --- madgraph/iolibs/template_files/auto_dsig_v4.inc 2019-06-10 19:05:58 +0000 | |||
2122 | +++ madgraph/iolibs/template_files/auto_dsig_v4.inc 2021-02-05 11:45:49 +0000 | |||
2123 | @@ -156,3 +156,18 @@ | |||
2124 | 156 | %(read_write_good_hel)s | 156 | %(read_write_good_hel)s |
2125 | 157 | 157 | ||
2126 | 158 | ## } | 158 | ## } |
2127 | 159 | |||
2128 | 160 | |||
2129 | 161 | integer FUNCTION GET_NHEL%(proc_id)s(hel, ipart) | ||
2130 | 162 | implicit none | ||
2131 | 163 | integer hel,i, ipart | ||
2132 | 164 | Include 'nexternal.inc' | ||
2133 | 165 | integer one_nhel(nexternal) | ||
2134 | 166 | INTEGER NCOMB | ||
2135 | 167 | PARAMETER ( NCOMB=%(ncomb)d) | ||
2136 | 168 | INTEGER NHEL(NEXTERNAL,NCOMB) | ||
2137 | 169 | %(helicity_lines)s | ||
2138 | 170 | |||
2139 | 171 | get_nhel%(proc_id)s = nhel(ipart, hel) | ||
2140 | 172 | return | ||
2141 | 173 | end | ||
2142 | 159 | 174 | ||
2143 | === modified file 'madgraph/iolibs/template_files/matrix_madevent_group_v4.inc' | |||
2144 | --- madgraph/iolibs/template_files/matrix_madevent_group_v4.inc 2020-05-18 19:26:16 +0000 | |||
2145 | +++ madgraph/iolibs/template_files/matrix_madevent_group_v4.inc 2021-02-05 11:45:49 +0000 | |||
2146 | @@ -127,13 +127,7 @@ | |||
2147 | 127 | DO I=1,NCOMB | 127 | DO I=1,NCOMB |
2148 | 128 | IF (GOODHEL(I,IMIRROR) .OR. NTRY(IMIRROR).LE.MAXTRIES.or.(ISUM_HEL.NE.0).or.THIS_NTRY(IMIRROR).le.2) THEN | 128 | IF (GOODHEL(I,IMIRROR) .OR. NTRY(IMIRROR).LE.MAXTRIES.or.(ISUM_HEL.NE.0).or.THIS_NTRY(IMIRROR).le.2) THEN |
2149 | 129 | T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) | 129 | T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) |
2157 | 130 | DO JJ=1,nincoming | 130 | %(beam_polarization)s |
2151 | 131 | IF(POL(JJ).NE.1d0.AND.NHEL(JJ,I).EQ.INT(SIGN(1d0,POL(JJ)))) THEN | ||
2152 | 132 | T=T*ABS(POL(JJ))*NB_SPIN_STATE_IN(JJ)/2d0 ! NB_SPIN_STATE(JJ)/2d0 is added for polarised beam | ||
2153 | 133 | ELSE IF(POL(JJ).NE.1d0)THEN | ||
2154 | 134 | T=T*(2d0-ABS(POL(JJ)))*NB_SPIN_STATE_IN(JJ)/2d0 | ||
2155 | 135 | ENDIF | ||
2156 | 136 | ENDDO | ||
2158 | 137 | IF (ISUM_HEL.NE.0.and.DS_get_dim_status('Helicity').eq.0.and.ALLOW_HELICITY_GRID_ENTRIES) then | 131 | IF (ISUM_HEL.NE.0.and.DS_get_dim_status('Helicity').eq.0.and.ALLOW_HELICITY_GRID_ENTRIES) then |
2159 | 138 | call DS_add_entry('Helicity',I,T) | 132 | call DS_add_entry('Helicity',I,T) |
2160 | 139 | endif | 133 | endif |
2161 | @@ -178,14 +172,7 @@ | |||
2162 | 178 | I = HEL_PICKED | 172 | I = HEL_PICKED |
2163 | 179 | 173 | ||
2164 | 180 | T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) | 174 | T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) |
2173 | 181 | 175 | %(beam_polarization)s | |
2166 | 182 | DO JJ=1,nincoming | ||
2167 | 183 | IF(POL(JJ).NE.1d0.AND.NHEL(JJ,I).EQ.INT(SIGN(1d0,POL(JJ)))) THEN | ||
2168 | 184 | T=T*ABS(POL(JJ)) | ||
2169 | 185 | ELSE IF(POL(JJ).NE.1d0)THEN | ||
2170 | 186 | T=T*(2d0-ABS(POL(JJ))) | ||
2171 | 187 | ENDIF | ||
2172 | 188 | ENDDO | ||
2174 | 189 | c Always one helicity at a time | 176 | c Always one helicity at a time |
2175 | 190 | ANS = T | 177 | ANS = T |
2176 | 191 | c Include the Jacobian from helicity sampling | 178 | c Include the Jacobian from helicity sampling |
2177 | 192 | 179 | ||
2178 | === modified file 'madgraph/iolibs/template_files/matrix_madevent_v4.inc' | |||
2179 | --- madgraph/iolibs/template_files/matrix_madevent_v4.inc 2019-09-26 11:09:58 +0000 | |||
2180 | +++ madgraph/iolibs/template_files/matrix_madevent_v4.inc 2021-02-05 11:45:49 +0000 | |||
2181 | @@ -103,13 +103,7 @@ | |||
2182 | 103 | DO I=1,NCOMB | 103 | DO I=1,NCOMB |
2183 | 104 | IF (GOODHEL(I) .OR. NTRY .LE. MAXTRIES.OR.(ISUM_HEL.NE.0)) THEN | 104 | IF (GOODHEL(I) .OR. NTRY .LE. MAXTRIES.OR.(ISUM_HEL.NE.0)) THEN |
2184 | 105 | T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) | 105 | T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) |
2192 | 106 | DO JJ=1,nincoming | 106 | %(beam_polarization)s |
2186 | 107 | IF(POL(JJ).NE.1d0.AND.NHEL(JJ,I).EQ.INT(SIGN(1d0,POL(JJ)))) THEN | ||
2187 | 108 | T=T*ABS(POL(JJ))*NB_SPIN_STATE(JJ)/2d0 ! NB_SPIN_STATE(JJ)/2d0 is added for polarised beam | ||
2188 | 109 | ELSE IF(POL(JJ).NE.1d0)THEN | ||
2189 | 110 | T=T*(2d0-ABS(POL(JJ)))*NB_SPIN_STATE(JJ)/2d0 | ||
2190 | 111 | ENDIF | ||
2191 | 112 | ENDDO | ||
2193 | 113 | IF (ISUM_HEL.NE.0) then | 107 | IF (ISUM_HEL.NE.0) then |
2194 | 114 | call DS_add_entry('Helicity',I,T) | 108 | call DS_add_entry('Helicity',I,T) |
2195 | 115 | endif | 109 | endif |
2196 | @@ -153,13 +147,7 @@ | |||
2197 | 153 | I = HEL_PICKED | 147 | I = HEL_PICKED |
2198 | 154 | 148 | ||
2199 | 155 | T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) | 149 | T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) |
2207 | 156 | DO JJ=1,nincoming | 150 | %(beam_polarization)s |
2201 | 157 | IF(POL(JJ).NE.1d0.AND.NHEL(JJ,I).EQ.INT(SIGN(1d0,POL(JJ)))) THEN | ||
2202 | 158 | T=T*ABS(POL(JJ)) | ||
2203 | 159 | ELSE IF(POL(JJ).NE.1d0)THEN | ||
2204 | 160 | T=T*(2d0-ABS(POL(JJ))) | ||
2205 | 161 | ENDIF | ||
2206 | 162 | ENDDO | ||
2208 | 163 | c Always one helicity at a time | 151 | c Always one helicity at a time |
2209 | 164 | ANS = T | 152 | ANS = T |
2210 | 165 | c Include the Jacobian from helicity sampling | 153 | c Include the Jacobian from helicity sampling |
2211 | 166 | 154 | ||
2212 | === modified file 'madgraph/iolibs/template_files/super_auto_dsig_group_v4.inc' | |||
2213 | --- madgraph/iolibs/template_files/super_auto_dsig_group_v4.inc 2020-01-16 07:19:30 +0000 | |||
2214 | +++ madgraph/iolibs/template_files/super_auto_dsig_group_v4.inc 2021-02-05 11:45:49 +0000 | |||
2215 | @@ -506,5 +506,10 @@ | |||
2216 | 506 | C | 506 | C |
2217 | 507 | %(read_write_good_hel)s | 507 | %(read_write_good_hel)s |
2218 | 508 | 508 | ||
2221 | 509 | 509 | integer function get_nhel(hel, partid) | |
2222 | 510 | 510 | implicit none | |
2223 | 511 | integer hel, partid | ||
2224 | 512 | write(*,*) "do not support this type of pdf with group_subprocess=True" | ||
2225 | 513 | stop 1 | ||
2226 | 514 | return | ||
2227 | 515 | end | ||
2228 | 511 | 516 | ||
2229 | === modified file 'madgraph/various/banner.py' | |||
2230 | --- madgraph/various/banner.py 2020-08-21 07:00:01 +0000 | |||
2231 | +++ madgraph/various/banner.py 2021-02-05 11:45:49 +0000 | |||
2232 | @@ -2897,10 +2897,10 @@ | |||
2233 | 2897 | self.add_param("nevents", 10000) | 2897 | self.add_param("nevents", 10000) |
2234 | 2898 | self.add_param("iseed", 0) | 2898 | self.add_param("iseed", 0) |
2235 | 2899 | self.add_param("python_seed", -2, include=False, hidden=True, comment="controlling python seed [handling in particular the final unweighting].\n -1 means use default from random module.\n -2 means set to same value as iseed") | 2899 | self.add_param("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") |
2240 | 2900 | self.add_param("lpp1", 1, fortran_name="lpp(1)", allowed=[-1,1,0,2,3,9, -2,-3,4,-4], | 2900 | self.add_param("lpp1", 1, fortran_name="lpp(1)", allowed=[-1,1,0,2,3,4,9,-2,-3,-4], |
2241 | 2901 | comment='first beam energy distribution:\n 0: fixed energy\n 1: PDF from proton\n -1: PDF from anti-proton\n 2:photon from proton, 3:photon from electron, 4: photon from muon, 9: PLUGIN MODE') | 2901 | comment='first beam energy distribution:\n 0: fixed energy\n 1: PDF from proton\n -1: PDF from anti-proton\n 2:photon from proton, 3:photon/W/Z from electron, 4:photon/W/Z from muon,\n 9: PLUGIN MODE') |
2242 | 2902 | self.add_param("lpp2", 1, fortran_name="lpp(2)", allowed=[-1,1,0,2,3,9,4,-4], | 2902 | self.add_param("lpp2", 1, fortran_name="lpp(2)", allowed=[-1,1,0,2,3,4,9,-3,-4], |
2243 | 2903 | comment='first beam energy distribution:\n 0: fixed energy\n 1: PDF from proton\n -1: PDF from anti-proton\n 2:photon from proton, 3:photon from electron, 4: photon from muon, 9: PLUGIN MODE') | 2903 | comment='first beam energy distribution:\n 0: fixed energy\n 1: PDF from proton\n -1: PDF from anti-proton\n 2:photon from proton, 3:photon/W/Z from electron, 4:photon/W/Z from muon,\n 9: PLUGIN MODE') |
2244 | 2904 | self.add_param("ebeam1", 6500.0, fortran_name="ebeam(1)") | 2904 | self.add_param("ebeam1", 6500.0, fortran_name="ebeam(1)") |
2245 | 2905 | self.add_param("ebeam2", 6500.0, fortran_name="ebeam(2)") | 2905 | self.add_param("ebeam2", 6500.0, fortran_name="ebeam(2)") |
2246 | 2906 | self.add_param("polbeam1", 0.0, fortran_name="pb1", hidden=True, | 2906 | self.add_param("polbeam1", 0.0, fortran_name="pb1", hidden=True, |
2247 | @@ -3296,8 +3296,11 @@ | |||
2248 | 3296 | process 1->N all cut set on off. | 3296 | process 1->N all cut set on off. |
2249 | 3297 | loop_induced -> MC over helicity | 3297 | loop_induced -> MC over helicity |
2250 | 3298 | e+ e- beam -> lpp:0 ebeam:500 | 3298 | e+ e- beam -> lpp:0 ebeam:500 |
2251 | 3299 | P X beam (X: neutrino, lepton, EWA) | ||
2252 | 3300 | support of EWA beam [ZW] (from proton by default -> 100TeV) | ||
2253 | 3299 | p p beam -> set maxjetflavor automatically | 3301 | p p beam -> set maxjetflavor automatically |
2254 | 3300 | more than one multiplicity: ickkw=1 xqcut=30 use_syst=F | 3302 | more than one multiplicity: ickkw=1 xqcut=30 use_syst=F |
2255 | 3303 | interference module -> no systematics | ||
2256 | 3301 | """ | 3304 | """ |
2257 | 3302 | 3305 | ||
2258 | 3303 | if proc_characteristic['loop_induced']: | 3306 | if proc_characteristic['loop_induced']: |
2259 | @@ -3321,11 +3324,87 @@ | |||
2260 | 3321 | beam_id.add(leg['id']) | 3324 | beam_id.add(leg['id']) |
2261 | 3322 | 3325 | ||
2262 | 3323 | if any(i in beam_id for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21,22]): | 3326 | if any(i in beam_id for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21,22]): |
2264 | 3324 | maxjetflavor = max([4]+[abs(i) for i in beam_id if -7< i < 7]) | 3327 | maxjetflavor = max([3]+[abs(i) for i in beam_id if -7< i < 7]) |
2265 | 3325 | self['maxjetflavor'] = maxjetflavor | 3328 | self['maxjetflavor'] = maxjetflavor |
2266 | 3326 | self['asrwgtflavor'] = maxjetflavor | 3329 | self['asrwgtflavor'] = maxjetflavor |
2267 | 3327 | 3330 | ||
2269 | 3328 | if any(i in beam_id for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21,22]): | 3331 | # check EWA case -> for pp at 100TeV or EWA-lepton (1+1 TeV) |
2270 | 3332 | if any(i in beam_id for i in [23,24,-24]): | ||
2271 | 3333 | |||
2272 | 3334 | self['use_syst'] = False | ||
2273 | 3335 | self['nhel'] = 1 | ||
2274 | 3336 | |||
2275 | 3337 | # check where the W/Z are (on which beam) | ||
2276 | 3338 | EWA_in1 = any(i in beam_id_split[0] for i in [23,24,-24]) | ||
2277 | 3339 | EWA_in2 = any(i in beam_id_split[1] for i in [23,24,-24]) | ||
2278 | 3340 | p_in1 = any(i in beam_id_split[0] for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21]) | ||
2279 | 3341 | p_in2 = any(i in beam_id_split[1] for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21]) | ||
2280 | 3342 | |||
2281 | 3343 | |||
2282 | 3344 | # case1 W W collision | ||
2283 | 3345 | if EWA_in1 and EWA_in2: | ||
2284 | 3346 | self['lpp1'] = 2 | ||
2285 | 3347 | self['lpp2'] = 2 | ||
2286 | 3348 | self['ebeam1'] = '50k' | ||
2287 | 3349 | self['ebeam2'] = '50k' | ||
2288 | 3350 | # case2 p W collision | ||
2289 | 3351 | elif p_in1 and EWA_in2: | ||
2290 | 3352 | self['lpp1'] = 1 | ||
2291 | 3353 | self['lpp2'] = 2 | ||
2292 | 3354 | self['ebeam1'] = '50k' | ||
2293 | 3355 | self['ebeam2'] = '50k' | ||
2294 | 3356 | # case3 W p collision | ||
2295 | 3357 | elif p_in2 and EWA_in1: | ||
2296 | 3358 | self['lpp1'] = 2 | ||
2297 | 3359 | self['lpp2'] = 1 | ||
2298 | 3360 | self['ebeam1'] = '50k' | ||
2299 | 3361 | self['ebeam2'] = '50k' | ||
2300 | 3362 | # case3 W X collision (mainly for X=lepton) | ||
2301 | 3363 | elif EWA_in1: | ||
2302 | 3364 | self['ebeam1'] = '1k' | ||
2303 | 3365 | self['ebeam2'] = '1k' | ||
2304 | 3366 | if 11 in beam_id_split[1]: | ||
2305 | 3367 | self['lpp1'] = -3 | ||
2306 | 3368 | self['lpp2'] = 0 | ||
2307 | 3369 | elif -11 in beam_id_split[1]: | ||
2308 | 3370 | self['lpp1'] = 3 | ||
2309 | 3371 | self['lpp2'] = 0 | ||
2310 | 3372 | elif 13 in beam_id_split[1]: | ||
2311 | 3373 | self['lpp1'] = -4 | ||
2312 | 3374 | self['lpp2'] = 0 | ||
2313 | 3375 | elif -13 in beam_id_split[1]: | ||
2314 | 3376 | self['lpp1'] = 4 | ||
2315 | 3377 | self['lpp2'] = 0 | ||
2316 | 3378 | else: | ||
2317 | 3379 | self['lpp1'] = 0 | ||
2318 | 3380 | self['lpp2'] = 0 | ||
2319 | 3381 | # case3 X W collision (mainly for X=lepton) | ||
2320 | 3382 | elif EWA_in2: | ||
2321 | 3383 | self['ebeam1'] = '1k' | ||
2322 | 3384 | self['ebeam2'] = '1k' | ||
2323 | 3385 | if 11 in beam_id_split[0]: | ||
2324 | 3386 | self['lpp1'] = 0 | ||
2325 | 3387 | self['lpp2'] = -3 | ||
2326 | 3388 | elif -11 in beam_id_split[0]: | ||
2327 | 3389 | self['lpp1'] = 0 | ||
2328 | 3390 | self['lpp2'] = 3 | ||
2329 | 3391 | elif 13 in beam_id_split[0]: | ||
2330 | 3392 | self['lpp1'] = 0 | ||
2331 | 3393 | self['lpp2'] = -4 | ||
2332 | 3394 | elif -13 in beam_id_split[0]: | ||
2333 | 3395 | self['lpp1'] = 0 | ||
2334 | 3396 | self['lpp2'] = 4 | ||
2335 | 3397 | else: | ||
2336 | 3398 | self['lpp1'] = 0 | ||
2337 | 3399 | self['lpp2'] = 0 | ||
2338 | 3400 | # anything else should it happen? | ||
2339 | 3401 | else: | ||
2340 | 3402 | self['nhel'] = 1 | ||
2341 | 3403 | self['lpp1'] = 0 | ||
2342 | 3404 | self['lpp2'] = 0 | ||
2343 | 3405 | self['ebeam1'] = '1k' | ||
2344 | 3406 | self['ebeam2'] = '1k' | ||
2345 | 3407 | elif any(i in beam_id for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21,22]): | ||
2346 | 3329 | # check for e p collision | 3408 | # check for e p collision |
2347 | 3330 | if any(id in beam_id for id in [11,-11,13,-13]): | 3409 | if any(id in beam_id for id in [11,-11,13,-13]): |
2348 | 3331 | self.display_block.append('beam_pol') | 3410 | self.display_block.append('beam_pol') |
2349 | @@ -3339,7 +3418,7 @@ | |||
2350 | 3339 | self['lpp2'] = 0 | 3418 | self['lpp2'] = 0 |
2351 | 3340 | self['ebeam1'] = '6500' | 3419 | self['ebeam1'] = '6500' |
2352 | 3341 | self['ebeam2'] = '1k' | 3420 | self['ebeam2'] = '1k' |
2354 | 3342 | 3421 | ||
2355 | 3343 | elif any(id in beam_id for id in [11,-11,13,-13]): | 3422 | elif any(id in beam_id for id in [11,-11,13,-13]): |
2356 | 3344 | self['lpp1'] = 0 | 3423 | self['lpp1'] = 0 |
2357 | 3345 | self['lpp2'] = 0 | 3424 | self['lpp2'] = 0 |
2358 | @@ -3349,6 +3428,9 @@ | |||
2359 | 3349 | if set([ abs(i) for i in beam_id_split[0]]) == set([ abs(i) for i in beam_id_split[1]]): | 3428 | if set([ abs(i) for i in beam_id_split[0]]) == set([ abs(i) for i in beam_id_split[1]]): |
2360 | 3350 | self.display_block.append('ecut') | 3429 | self.display_block.append('ecut') |
2361 | 3351 | self.display_block.append('beam_pol') | 3430 | self.display_block.append('beam_pol') |
2362 | 3431 | |||
2363 | 3432 | if beam_id_split[0] == beam_id_split[1]: | ||
2364 | 3433 | self.display_block.append('ecut') | ||
2365 | 3352 | else: | 3434 | else: |
2366 | 3353 | self['lpp1'] = 0 | 3435 | self['lpp1'] = 0 |
2367 | 3354 | self['lpp2'] = 0 | 3436 | self['lpp2'] = 0 |
2368 | 3355 | 3437 | ||
2369 | === modified file 'madgraph/various/cluster.py' | |||
2370 | --- madgraph/various/cluster.py 2017-11-17 14:15:01 +0000 | |||
2371 | +++ madgraph/various/cluster.py 2021-02-05 11:45:49 +0000 | |||
2372 | @@ -87,6 +87,7 @@ | |||
2373 | 87 | """Basic Class for all cluster type submission""" | 87 | """Basic Class for all cluster type submission""" |
2374 | 88 | name = 'mother class' | 88 | name = 'mother class' |
2375 | 89 | identifier_length = 14 | 89 | identifier_length = 14 |
2376 | 90 | allow_arrays = False | ||
2377 | 90 | 91 | ||
2378 | 91 | def __init__(self,*args, **opts): | 92 | def __init__(self,*args, **opts): |
2379 | 92 | """Init the cluster""" | 93 | """Init the cluster""" |
2380 | @@ -97,6 +98,8 @@ | |||
2381 | 97 | self.submitted_dirs = [] #HTCaaS | 98 | self.submitted_dirs = [] #HTCaaS |
2382 | 98 | self.submitted_exes = [] #HTCaaS | 99 | self.submitted_exes = [] #HTCaaS |
2383 | 99 | self.submitted_args = [] #HTCaaS | 100 | self.submitted_args = [] #HTCaaS |
2384 | 101 | self.waiting_array_job = [] # for job array submission | ||
2385 | 102 | |||
2386 | 100 | 103 | ||
2387 | 101 | if 'cluster_queue' in opts: | 104 | if 'cluster_queue' in opts: |
2388 | 102 | self.cluster_queue = opts['cluster_queue'] | 105 | self.cluster_queue = opts['cluster_queue'] |
2389 | @@ -122,7 +125,6 @@ | |||
2390 | 122 | """How to make one submission. Return status id on the cluster.""" | 125 | """How to make one submission. Return status id on the cluster.""" |
2391 | 123 | raise NotImplemented, 'No implementation of how to submit a job to cluster \'%s\'' % self.name | 126 | raise NotImplemented, 'No implementation of how to submit a job to cluster \'%s\'' % self.name |
2392 | 124 | 127 | ||
2393 | 125 | |||
2394 | 126 | @store_input() | 128 | @store_input() |
2395 | 127 | def submit2(self, prog, argument=[], cwd=None, stdout=None, stderr=None, | 129 | def submit2(self, prog, argument=[], cwd=None, stdout=None, stderr=None, |
2396 | 128 | log=None, input_files=[], output_files=[], required_output=[], | 130 | log=None, input_files=[], output_files=[], required_output=[], |
2397 | @@ -199,10 +201,15 @@ | |||
2398 | 199 | 201 | ||
2399 | 200 | def cluster_submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, | 202 | def cluster_submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, |
2400 | 201 | log=None, input_files=[], output_files=[], required_output=[], | 203 | log=None, input_files=[], output_files=[], required_output=[], |
2402 | 202 | nb_submit=0, packet_member=None): | 204 | nb_submit=0, packet_member=None, allow_array=False): |
2403 | 203 | """This function wrap the cluster submition with cluster independant | 205 | """This function wrap the cluster submition with cluster independant |
2404 | 204 | method should not be overwritten (but for DAG type submission)""" | 206 | method should not be overwritten (but for DAG type submission)""" |
2406 | 205 | 207 | ||
2407 | 208 | if allow_array and self.allow_array: | ||
2408 | 209 | self.add_into_array(prog, argument, cwd, stdout, stderr, log, input_files, | ||
2409 | 210 | output_files, required_output, nb_submit) | ||
2410 | 211 | return None | ||
2411 | 212 | |||
2412 | 206 | id = self.submit2(prog, argument, cwd, stdout, stderr, log, input_files, | 213 | id = self.submit2(prog, argument, cwd, stdout, stderr, log, input_files, |
2413 | 207 | output_files, required_output, nb_submit) | 214 | output_files, required_output, nb_submit) |
2414 | 208 | 215 | ||
2415 | @@ -458,7 +465,27 @@ | |||
2416 | 458 | self.submit2(**args) | 465 | self.submit2(**args) |
2417 | 459 | return 'resubmit' | 466 | return 'resubmit' |
2418 | 460 | return 'done' | 467 | return 'done' |
2420 | 461 | 468 | ||
2421 | 469 | def add_into_array(self,*args, **opts): | ||
2422 | 470 | """ """ | ||
2423 | 471 | raise NotImplemented, 'No implementation of how to submit with a job array to cluster \'%s\'' % self.name | ||
2424 | 472 | |||
2425 | 473 | def submit_array(self, list_of_args): | ||
2426 | 474 | """ """ | ||
2427 | 475 | raise NotImplemented, 'No implementation of how to submit with a job array to cluster \'%s\'' % self.name | ||
2428 | 476 | |||
2429 | 477 | |||
2430 | 478 | def release_array(self): | ||
2431 | 479 | |||
2432 | 480 | if not self.allow_arrays: | ||
2433 | 481 | if self.waiting_array_jobs: | ||
2434 | 482 | raise NotImplemented, 'No implementation of how to submit with a job array to cluster \'%s\'' % self.name | ||
2435 | 483 | return None | ||
2436 | 484 | elif self.waiting_array_jobs: | ||
2437 | 485 | return self.submit_array(self.waiting_array_jobs) | ||
2438 | 486 | else: | ||
2439 | 487 | return None | ||
2440 | 488 | |||
2441 | 462 | @check_interupt() | 489 | @check_interupt() |
2442 | 463 | def launch_and_wait(self, prog, argument=[], cwd=None, stdout=None, | 490 | def launch_and_wait(self, prog, argument=[], cwd=None, stdout=None, |
2443 | 464 | stderr=None, log=None, required_output=[], nb_submit=0, | 491 | stderr=None, log=None, required_output=[], nb_submit=0, |
2444 | @@ -1648,6 +1675,7 @@ | |||
2445 | 1648 | running_tag = ['R', 'CG'] | 1675 | running_tag = ['R', 'CG'] |
2446 | 1649 | complete_tag = ['C'] | 1676 | complete_tag = ['C'] |
2447 | 1650 | identifier_length = 8 | 1677 | identifier_length = 8 |
2448 | 1678 | allow_arrays = True | ||
2449 | 1651 | 1679 | ||
2450 | 1652 | @multiple_try() | 1680 | @multiple_try() |
2451 | 1653 | def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None, | 1681 | def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None, |
2452 | @@ -1692,6 +1720,42 @@ | |||
2453 | 1692 | self.submitted_ids.append(id) | 1720 | self.submitted_ids.append(id) |
2454 | 1693 | return id | 1721 | return id |
2455 | 1694 | 1722 | ||
2456 | 1723 | def add_into_array(prog, argument, cwd, stdout, stderr, log, input_files, | ||
2457 | 1724 | output_files, required_output, nb_submit): | ||
2458 | 1725 | |||
2459 | 1726 | self.waiting_array_job.append((prog, argument, cwd, stdout, stderr, log, input_files, | ||
2460 | 1727 | output_files, required_output, nb_submit)) | ||
2461 | 1728 | |||
2462 | 1729 | |||
2463 | 1730 | def submit_array(self, waiting_array_jobs): | ||
2464 | 1731 | """write a temporary file in order to submit an array of jobs""" | ||
2465 | 1732 | |||
2466 | 1733 | for arg in waiting_array_jobs): | ||
2467 | 1734 | print( arg) | ||
2468 | 1735 | misc.sprint(waiting_array_jobs) | ||
2469 | 1736 | template= """ | ||
2470 | 1737 | #SBATCH --job-name=%(job_name)s # Job name | ||
2471 | 1738 | #SBATCH --mail-type=NONE # Mail events (NONE, BEGIN, END, FAIL, ALL) | ||
2472 | 1739 | #SBATCH --mail-user=gatorlink@ufl.edu # Where to send mail | ||
2473 | 1740 | #SBATCH --nodes=1 # Use one node | ||
2474 | 1741 | #SBATCH --ntasks=1 # Run a single task | ||
2475 | 1742 | #SBATCH --output=array_%A-%a.out # Standard output and error log | ||
2476 | 1743 | #SBATCH --array=1-5 # Array range | ||
2477 | 1744 | """ | ||
2478 | 1745 | |||
2479 | 1746 | import os | ||
2480 | 1747 | import tempfile | ||
2481 | 1748 | |||
2482 | 1749 | fd, path = tempfile.mkstemp() | ||
2483 | 1750 | try: | ||
2484 | 1751 | with os.fdopen(fd, 'w') as tmp: | ||
2485 | 1752 | # do stuff with temp file | ||
2486 | 1753 | tmp.write('stuff') | ||
2487 | 1754 | finally: | ||
2488 | 1755 | os.remove(path) | ||
2489 | 1756 | |||
2490 | 1757 | |||
2491 | 1758 | |||
2492 | 1695 | @multiple_try() | 1759 | @multiple_try() |
2493 | 1696 | def control_one_job(self, id): | 1760 | def control_one_job(self, id): |
2494 | 1697 | """ control the status of a single job with it's cluster id """ | 1761 | """ control the status of a single job with it's cluster id """ |
2495 | 1698 | 1762 | ||
2496 | === modified file 'tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/auto_dsig.f' | |||
2497 | --- tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/auto_dsig.f 2019-06-17 21:29:56 +0000 | |||
2498 | +++ tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/auto_dsig.f 2021-02-05 11:45:49 +0000 | |||
2499 | @@ -174,3 +174,33 @@ | |||
2500 | 174 | 174 | ||
2501 | 175 | 175 | ||
2502 | 176 | 176 | ||
2503 | 177 | |||
2504 | 178 | INTEGER FUNCTION GET_NHEL1(HEL, IPART) | ||
2505 | 179 | IMPLICIT NONE | ||
2506 | 180 | INTEGER HEL,I, IPART | ||
2507 | 181 | INCLUDE 'nexternal.inc' | ||
2508 | 182 | INTEGER ONE_NHEL(NEXTERNAL) | ||
2509 | 183 | INTEGER NCOMB | ||
2510 | 184 | PARAMETER ( NCOMB=16) | ||
2511 | 185 | INTEGER NHEL(NEXTERNAL,NCOMB) | ||
2512 | 186 | DATA (NHEL(I, 1),I=1,4) / 1,-1,-1, 1/ | ||
2513 | 187 | DATA (NHEL(I, 2),I=1,4) / 1,-1,-1,-1/ | ||
2514 | 188 | DATA (NHEL(I, 3),I=1,4) / 1,-1, 1, 1/ | ||
2515 | 189 | DATA (NHEL(I, 4),I=1,4) / 1,-1, 1,-1/ | ||
2516 | 190 | DATA (NHEL(I, 5),I=1,4) / 1, 1,-1, 1/ | ||
2517 | 191 | DATA (NHEL(I, 6),I=1,4) / 1, 1,-1,-1/ | ||
2518 | 192 | DATA (NHEL(I, 7),I=1,4) / 1, 1, 1, 1/ | ||
2519 | 193 | DATA (NHEL(I, 8),I=1,4) / 1, 1, 1,-1/ | ||
2520 | 194 | DATA (NHEL(I, 9),I=1,4) /-1,-1,-1, 1/ | ||
2521 | 195 | DATA (NHEL(I, 10),I=1,4) /-1,-1,-1,-1/ | ||
2522 | 196 | DATA (NHEL(I, 11),I=1,4) /-1,-1, 1, 1/ | ||
2523 | 197 | DATA (NHEL(I, 12),I=1,4) /-1,-1, 1,-1/ | ||
2524 | 198 | DATA (NHEL(I, 13),I=1,4) /-1, 1,-1, 1/ | ||
2525 | 199 | DATA (NHEL(I, 14),I=1,4) /-1, 1,-1,-1/ | ||
2526 | 200 | DATA (NHEL(I, 15),I=1,4) /-1, 1, 1, 1/ | ||
2527 | 201 | DATA (NHEL(I, 16),I=1,4) /-1, 1, 1,-1/ | ||
2528 | 202 | |||
2529 | 203 | GET_NHEL1 = NHEL(IPART, HEL) | ||
2530 | 204 | RETURN | ||
2531 | 205 | END | ||
2532 | 206 | |||
2533 | 177 | 207 | ||
2534 | === modified file 'tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/matrix1.f' | |||
2535 | --- tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/matrix1.f 2020-08-20 15:12:34 +0000 | |||
2536 | +++ tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/matrix1.f 2021-02-05 11:45:49 +0000 | |||
2537 | @@ -154,6 +154,7 @@ | |||
2538 | 154 | $ .LE.MAXTRIES.OR.(ISUM_HEL.NE.0).OR.THIS_NTRY(IMIRROR).LE.2) | 154 | $ .LE.MAXTRIES.OR.(ISUM_HEL.NE.0).OR.THIS_NTRY(IMIRROR).LE.2) |
2539 | 155 | $ THEN | 155 | $ THEN |
2540 | 156 | T=MATRIX1(P ,NHEL(1,I),JC(1)) | 156 | T=MATRIX1(P ,NHEL(1,I),JC(1)) |
2541 | 157 | |||
2542 | 157 | DO JJ=1,NINCOMING | 158 | DO JJ=1,NINCOMING |
2543 | 158 | IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ)) | 159 | IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ)) |
2544 | 159 | $ )) THEN | 160 | $ )) THEN |
2545 | @@ -162,6 +163,7 @@ | |||
2546 | 162 | T=T*(2D0-ABS(POL(JJ)))*NB_SPIN_STATE_IN(JJ)/2D0 | 163 | T=T*(2D0-ABS(POL(JJ)))*NB_SPIN_STATE_IN(JJ)/2D0 |
2547 | 163 | ENDIF | 164 | ENDIF |
2548 | 164 | ENDDO | 165 | ENDDO |
2549 | 166 | |||
2550 | 165 | IF (ISUM_HEL.NE.0.AND.DS_GET_DIM_STATUS('Helicity') | 167 | IF (ISUM_HEL.NE.0.AND.DS_GET_DIM_STATUS('Helicity') |
2551 | 166 | $ .EQ.0.AND.ALLOW_HELICITY_GRID_ENTRIES) THEN | 168 | $ .EQ.0.AND.ALLOW_HELICITY_GRID_ENTRIES) THEN |
2552 | 167 | CALL DS_ADD_ENTRY('Helicity',I,T) | 169 | CALL DS_ADD_ENTRY('Helicity',I,T) |
2553 | @@ -220,6 +222,7 @@ | |||
2554 | 220 | T=T*(2D0-ABS(POL(JJ))) | 222 | T=T*(2D0-ABS(POL(JJ))) |
2555 | 221 | ENDIF | 223 | ENDIF |
2556 | 222 | ENDDO | 224 | ENDDO |
2557 | 225 | |||
2558 | 223 | C Always one helicity at a time | 226 | C Always one helicity at a time |
2559 | 224 | ANS = T | 227 | ANS = T |
2560 | 225 | C Include the Jacobian from helicity sampling | 228 | C Include the Jacobian from helicity sampling |
2561 | 226 | 229 | ||
2562 | === modified file 'tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/super_auto_dsig.f' | |||
2563 | --- tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/super_auto_dsig.f 2020-01-19 16:22:42 +0000 | |||
2564 | +++ tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/super_auto_dsig.f 2021-02-05 11:45:49 +0000 | |||
2565 | @@ -595,6 +595,12 @@ | |||
2566 | 595 | 595 | ||
2567 | 596 | 596 | ||
2568 | 597 | 597 | ||
2571 | 598 | 598 | INTEGER FUNCTION GET_NHEL(HEL, PARTID) | |
2572 | 599 | 599 | IMPLICIT NONE | |
2573 | 600 | INTEGER HEL, PARTID | ||
2574 | 601 | WRITE(*,*) 'do not support this type of pdf with' | ||
2575 | 602 | $ //' group_subprocess=True' | ||
2576 | 603 | STOP 1 | ||
2577 | 604 | RETURN | ||
2578 | 605 | END | ||
2579 | 600 | 606 | ||
2580 | 601 | 607 | ||
2581 | === modified file 'tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/auto_dsig.f' | |||
2582 | --- tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/auto_dsig.f 2019-06-17 21:29:56 +0000 | |||
2583 | +++ tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/auto_dsig.f 2021-02-05 11:45:49 +0000 | |||
2584 | @@ -221,3 +221,33 @@ | |||
2585 | 221 | 221 | ||
2586 | 222 | 222 | ||
2587 | 223 | 223 | ||
2588 | 224 | |||
2589 | 225 | INTEGER FUNCTION GET_NHEL(HEL, IPART) | ||
2590 | 226 | IMPLICIT NONE | ||
2591 | 227 | INTEGER HEL,I, IPART | ||
2592 | 228 | INCLUDE 'nexternal.inc' | ||
2593 | 229 | INTEGER ONE_NHEL(NEXTERNAL) | ||
2594 | 230 | INTEGER NCOMB | ||
2595 | 231 | PARAMETER ( NCOMB=16) | ||
2596 | 232 | INTEGER NHEL(NEXTERNAL,NCOMB) | ||
2597 | 233 | DATA (NHEL(I, 1),I=1,4) / 1,-1,-1,-1/ | ||
2598 | 234 | DATA (NHEL(I, 2),I=1,4) / 1,-1,-1, 1/ | ||
2599 | 235 | DATA (NHEL(I, 3),I=1,4) / 1,-1, 1,-1/ | ||
2600 | 236 | DATA (NHEL(I, 4),I=1,4) / 1,-1, 1, 1/ | ||
2601 | 237 | DATA (NHEL(I, 5),I=1,4) / 1, 1,-1,-1/ | ||
2602 | 238 | DATA (NHEL(I, 6),I=1,4) / 1, 1,-1, 1/ | ||
2603 | 239 | DATA (NHEL(I, 7),I=1,4) / 1, 1, 1,-1/ | ||
2604 | 240 | DATA (NHEL(I, 8),I=1,4) / 1, 1, 1, 1/ | ||
2605 | 241 | DATA (NHEL(I, 9),I=1,4) /-1,-1,-1,-1/ | ||
2606 | 242 | DATA (NHEL(I, 10),I=1,4) /-1,-1,-1, 1/ | ||
2607 | 243 | DATA (NHEL(I, 11),I=1,4) /-1,-1, 1,-1/ | ||
2608 | 244 | DATA (NHEL(I, 12),I=1,4) /-1,-1, 1, 1/ | ||
2609 | 245 | DATA (NHEL(I, 13),I=1,4) /-1, 1,-1,-1/ | ||
2610 | 246 | DATA (NHEL(I, 14),I=1,4) /-1, 1,-1, 1/ | ||
2611 | 247 | DATA (NHEL(I, 15),I=1,4) /-1, 1, 1,-1/ | ||
2612 | 248 | DATA (NHEL(I, 16),I=1,4) /-1, 1, 1, 1/ | ||
2613 | 249 | |||
2614 | 250 | GET_NHEL = NHEL(IPART, HEL) | ||
2615 | 251 | RETURN | ||
2616 | 252 | END | ||
2617 | 253 | |||
2618 | 224 | 254 | ||
2619 | === modified file 'tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/matrix.f' | |||
2620 | --- tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/matrix.f 2020-06-20 21:10:10 +0000 | |||
2621 | +++ tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/matrix.f 2021-02-05 11:45:49 +0000 | |||
2622 | @@ -122,6 +122,7 @@ | |||
2623 | 122 | IF (GOODHEL(I) .OR. NTRY .LE. MAXTRIES.OR.(ISUM_HEL.NE.0)) | 122 | IF (GOODHEL(I) .OR. NTRY .LE. MAXTRIES.OR.(ISUM_HEL.NE.0)) |
2624 | 123 | $ THEN | 123 | $ THEN |
2625 | 124 | T=MATRIX(P ,NHEL(1,I),JC(1)) | 124 | T=MATRIX(P ,NHEL(1,I),JC(1)) |
2626 | 125 | |||
2627 | 125 | DO JJ=1,NINCOMING | 126 | DO JJ=1,NINCOMING |
2628 | 126 | IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ)) | 127 | IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ)) |
2629 | 127 | $ )) THEN | 128 | $ )) THEN |
2630 | @@ -130,6 +131,7 @@ | |||
2631 | 130 | T=T*(2D0-ABS(POL(JJ)))*NB_SPIN_STATE(JJ)/2D0 | 131 | T=T*(2D0-ABS(POL(JJ)))*NB_SPIN_STATE(JJ)/2D0 |
2632 | 131 | ENDIF | 132 | ENDIF |
2633 | 132 | ENDDO | 133 | ENDDO |
2634 | 134 | |||
2635 | 133 | IF (ISUM_HEL.NE.0) THEN | 135 | IF (ISUM_HEL.NE.0) THEN |
2636 | 134 | CALL DS_ADD_ENTRY('Helicity',I,T) | 136 | CALL DS_ADD_ENTRY('Helicity',I,T) |
2637 | 135 | ENDIF | 137 | ENDIF |
2638 | @@ -175,6 +177,7 @@ | |||
2639 | 175 | I = HEL_PICKED | 177 | I = HEL_PICKED |
2640 | 176 | 178 | ||
2641 | 177 | T=MATRIX(P ,NHEL(1,I),JC(1)) | 179 | T=MATRIX(P ,NHEL(1,I),JC(1)) |
2642 | 180 | |||
2643 | 178 | DO JJ=1,NINCOMING | 181 | DO JJ=1,NINCOMING |
2644 | 179 | IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ)))) | 182 | IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ)))) |
2645 | 180 | $ THEN | 183 | $ THEN |
2646 | @@ -183,6 +186,7 @@ | |||
2647 | 183 | T=T*(2D0-ABS(POL(JJ))) | 186 | T=T*(2D0-ABS(POL(JJ))) |
2648 | 184 | ENDIF | 187 | ENDIF |
2649 | 185 | ENDDO | 188 | ENDDO |
2650 | 189 | |||
2651 | 186 | C Always one helicity at a time | 190 | C Always one helicity at a time |
2652 | 187 | ANS = T | 191 | ANS = T |
2653 | 188 | C Include the Jacobian from helicity sampling | 192 | C Include the Jacobian from helicity sampling |
put comment for richard