Merge lp:~maddevelopers/mg5amcnlo/improved_survey into lp:~madteam/mg5amcnlo/trunk
- improved_survey
- Merge into trunk
Status: | Merged |
---|---|
Merged at revision: | 164 |
Proposed branch: | lp:~maddevelopers/mg5amcnlo/improved_survey |
Merge into: | lp:~madteam/mg5amcnlo/trunk |
Diff against target: |
690 lines (+147/-93) (has conflicts) 14 files modified
Template/Source/dsample.f (+12/-10) Template/Source/gen_ximprove.f (+6/-6) Template/Source/run_config.inc (+1/-1) Template/SubProcesses/addmothers.f (+12/-6) Template/SubProcesses/cuts.f (+4/-5) Template/SubProcesses/myamp.f (+47/-34) Template/SubProcesses/symmetry.f (+12/-11) Template/SubProcesses/unwgt.f (+5/-4) Template/bin/generate_events (+15/-9) Template/bin/refine (+4/-2) Template/bin/survey (+4/-2) UpdateNotes.txt (+17/-0) madgraph/VERSION (+5/-0) tests/acceptance_tests/test_cmd.py (+3/-3) Text conflict in UpdateNotes.txt Text conflict in madgraph/VERSION |
To merge this branch: | bzr merge lp:~maddevelopers/mg5amcnlo/improved_survey |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Olivier Mattelaer | Approve | ||
Tim Stelzer | Pending | ||
Review via email: mp+70688@code.launchpad.net |
Commit message
Description of the change
- Improved precision of "survey" by allowing 4th iteration if accuracy after 3 iterations < 10%
- Subdivide BW in phase space integration for conflicting BWs also for forced decays, to improve generation with large bwcutoff in e.g. W+ W- production with decays.
- 166. By Johan Alwall
-
Take into account BW also when there is no minimum, and modify transpole to allow shat below xo. Doesn't seem to work very well however, so will remove this commit.
- 167. By Johan Alwall
-
Reverted the setting based on BW also in general case, since it doesn't seem to work well
- 168. By Johan Alwall
-
Use luminocity instead of number of events for refine (to allow for changing cross sections during run). Don't allow using stored events from previous iteration. Allow up to 5 iterations in survey.
- 169. By Johan Alwall
-
Fixed some typos in myamp.f (xe->xm) and added some printouts in scripts
- 170. By Johan Alwall
-
Improve treatment of heavy resonances >> s, so that BW is used only if peak available
- 171. By Johan Alwall
-
Simplified expression for shat BW check, updated UpdateNotes.
- 172. By Johan Alwall
-
Fixed insertion of colors for octet resonances decaying to octet+singlet
- 173. By Johan Alwall
-
Updated UpdateNotes and VERSION since Olivier has an intermediate version 1.3.10
Preview Diff
1 | === modified file 'Template/Source/dsample.f' |
2 | --- Template/Source/dsample.f 2011-05-29 17:34:09 +0000 |
3 | +++ Template/Source/dsample.f 2011-08-26 14:32:33 +0000 |
4 | @@ -227,9 +227,9 @@ |
5 | if (accur .ge. 0d0 .or. cur_it .gt. itmax+3) then |
6 | return |
7 | endif |
8 | -c Check for neventswritten and chi2 |
9 | - if (neventswritten .gt. -accur .and. chi2 .lt. 10d0) then |
10 | - write(*,*) "We found enough events",neventswritten, -accur*1000*tmean |
11 | +c Check for neventswritten and chi2 (JA 8/17/11 lumi*mean xsec) |
12 | + if (neventswritten .gt. -accur*tmean .and. chi2 .lt. 10d0) then |
13 | + write(*,*) "We found enough events",neventswritten, -accur*tmean |
14 | return |
15 | endif |
16 | |
17 | @@ -1888,18 +1888,19 @@ |
18 | c Update weights in dsig (needed for subprocess group mode) |
19 | xdum=dsig(0,0,2) |
20 | c |
21 | -c Add test to see if we have achieved desired accuracy |
22 | +c Add test to see if we have achieved desired accuracy |
23 | +c JA 8/17/2011 allow minimum 3 iterations instead of 5 |
24 | c |
25 | - if (tsigma .gt. 0d0 .and. cur_it .gt. 5 .and. accur .gt. 0d0) then |
26 | + if (tsigma .gt. 0d0 .and. cur_it .gt. 3 .and. accur .gt. 0d0) then |
27 | |
28 | xmean = tmean/tsigma |
29 | xchi2 = (chi2/xmean/xmean-tsigma)/dble(cur_it-2) |
30 | - write(*,'(a,4f8.3)') 'We got it',sqrt(xchi2/tsigma), |
31 | + write(*,'(a,4f8.3)') ' Accuracy: ',sqrt(xchi2/tsigma), |
32 | & accur,1/sqrt(tsigma),xchi2 |
33 | c write(*,*) 'We got it',1d0/sqrt(tsigma), accur |
34 | c if (1d0/sqrt(tsigma) .lt. accur) then |
35 | if (sqrt(xchi2/tsigma) .lt. accur) then |
36 | - write(*,*) 'Finished due to accuracy',sqrt(xchi2/tsigma), accur |
37 | + write(*,*) 'Finished due to accuracy ',sqrt(xchi2/tsigma), accur |
38 | tmean = tmean / tsigma |
39 | if (cur_it .gt. 2) then |
40 | chi2 = (chi2/tmean/tmean-tsigma)/dble(cur_it-2) |
41 | @@ -1929,7 +1930,7 @@ |
42 | c |
43 | c New check to see if we need to keep integrating this one or not. |
44 | c |
45 | - if (cur_it .gt. 3 .and. accur .lt. 0d0) then !Check # unweighted |
46 | + if (cur_it .gt. 3 .and. accur .lt. 0d0) then !Check luminocity |
47 | c |
48 | c Lets get the actual number instead |
49 | c tjs 5/22/2007 |
50 | @@ -1953,9 +1954,10 @@ |
51 | chi2tmp = chi2tmp+(ymean(i)-tmeant)**2/ysigma(i)**2 |
52 | enddo |
53 | chi2tmp = chi2tmp/2d0 !Since using only last 3, n-1=2 |
54 | - write(*,*) "Checking number of events",accur,nun,' chi2: ',chi2tmp |
55 | +c JA 8/17/2011 Redefined -accur as lumi, so nevents is -accur*cross section |
56 | + write(*,*) "Checking number of events",-accur*tmeant,nun,' chi2: ',chi2tmp |
57 | c Check nun and chi2 (ja 03/11) |
58 | - if (nun .gt. -accur .and. chi2tmp .lt. 10d0)then |
59 | + if (nun .gt. -accur*tmeant .and. chi2tmp .lt. 10d0)then |
60 | tmean = tmean / tsigma |
61 | if (cur_it .gt. 2) then |
62 | chi2 = (chi2/tmean/tmean-tsigma)/dble(cur_it-2) |
63 | |
64 | === modified file 'Template/Source/gen_ximprove.f' |
65 | --- Template/Source/gen_ximprove.f 2011-06-01 21:18:40 +0000 |
66 | +++ Template/Source/gen_ximprove.f 2011-08-26 14:32:33 +0000 |
67 | @@ -658,11 +658,11 @@ |
68 | write(26,'(9x,a,2i8,a)') 'echo "',npoints,max_iter, |
69 | $ '" >& input_sg.txt' |
70 | c |
71 | -c tjs 8/7/2007 Allow stop when have enough events |
72 | +c tjs 8/7/2007-JA 8/17/11 Allow stop when have enough luminocity |
73 | c |
74 | write(*,*) "Cross section",i,io(np),xsec(io(np)),mfact(io(np)) |
75 | - write(26,'(9x,a,f11.3,a)') 'echo "',-goal_lum*xsec(io(np))*1000/mjobs, |
76 | - $ '" >> input_sg.txt' !Accuracy |
77 | + write(26,'(9x,a,e13.5,a)') 'echo "',-goal_lum*1000/mjobs, |
78 | + $ '" >> input_sg.txt' !Luminocity |
79 | write(26,'(9x,a)') 'echo "2" >> input_sg.txt' !Grid Adjustment |
80 | write(26,'(9x,a)') 'echo "1" >> input_sg.txt' !Suppression |
81 | write(26,'(9x,a,i4,a)') 'echo "',nhel_refine, |
82 | @@ -681,10 +681,10 @@ |
83 | write(26,'(9x,a,2i8,a)') 'echo "',npoints,max_iter, |
84 | $ '" >& input_sg.txt' |
85 | c |
86 | -c tjs 8/7/2007 Change to request events not accuracy |
87 | +c tjs 8/7/2007-JA 8/17/11 Change to request luminocity not accuracy |
88 | c |
89 | - write(26,'(9x,a,f11.3,a)') 'echo "',-goal_lum*xsec(io(np))*1000/mjobs, |
90 | - $ '" >> input_sg.txt' !Accuracy |
91 | + write(26,'(9x,a,e13.5,a)') 'echo "',-goal_lum*1000/mjobs, |
92 | + $ '" >> input_sg.txt' !Luminocity |
93 | c write(26,'(9x,a,e12.3,a)') 'echo "',-goal_lum*mfact(io(np)), |
94 | c $ '" >> input_sg.txt' |
95 | write(26,'(9x,a)') 'echo "0" >> input_sg.txt' |
96 | |
97 | === modified file 'Template/Source/run_config.inc' |
98 | --- Template/Source/run_config.inc 2011-05-27 23:49:50 +0000 |
99 | +++ Template/Source/run_config.inc 2011-08-26 14:32:33 +0000 |
100 | @@ -13,7 +13,7 @@ |
101 | integer min_events_channel !Minimum number of events |
102 | parameter (min_events_channel = 1000) !per iteration in each channel |
103 | integer iter_survey !Number of iterations for survey |
104 | - parameter (iter_survey=3) |
105 | + parameter (iter_survey=5) ! JA 8/17/11 |
106 | c The following sets the maximum number of parameters in the run_card.dat |
107 | integer maxpara |
108 | parameter (maxpara=1000) |
109 | |
110 | === modified file 'Template/SubProcesses/addmothers.f' |
111 | --- Template/SubProcesses/addmothers.f 2011-04-03 22:06:00 +0000 |
112 | +++ Template/SubProcesses/addmothers.f 2011-08-26 14:32:33 +0000 |
113 | @@ -214,12 +214,18 @@ |
114 | $ icolalt(2,ida(1))-icolalt(2,ida(2)).eq.0) then ! color singlet |
115 | icolalt(1,i) = 0 |
116 | icolalt(2,i) = 0 |
117 | - elseif(icolalt(1,ida(1))-icolalt(2,ida(2)).eq.0) then |
118 | - icolalt(1,i) = icolalt(1,ida(2)) |
119 | - icolalt(2,i) = icolalt(2,ida(1)) |
120 | - else if(icolalt(1,ida(2))-icolalt(2,ida(1)).eq.0) then |
121 | - icolalt(1,i) = icolalt(1,ida(1)) |
122 | - icolalt(2,i) = icolalt(2,ida(2)) |
123 | + elseif(icolalt(1,ida(1))-icolalt(2,ida(2)).eq.0) then ! 3bar 3 -> 8 or 8 8 -> 8 |
124 | + icolalt(1,i) = icolalt(1,ida(2)) |
125 | + icolalt(2,i) = icolalt(2,ida(1)) |
126 | + else if(icolalt(1,ida(2))-icolalt(2,ida(1)).eq.0) then ! 3 3bar -> 8 or 8 8 -> 8 |
127 | + icolalt(1,i) = icolalt(1,ida(1)) |
128 | + icolalt(2,i) = icolalt(2,ida(2)) |
129 | + else if(icolalt(1,ida(1)).eq.0.and.icolalt(2,ida(1)).eq.0) then ! 1 3/8 -> 3/8 |
130 | + icolalt(1,i) = icolalt(1,ida(2)) |
131 | + icolalt(2,i) = icolalt(2,ida(2)) |
132 | + else if(icolalt(1,ida(2)).eq.0.and.icolalt(2,ida(2)).eq.0) then ! 3/8 1 -> 3/8 |
133 | + icolalt(1,i) = icolalt(1,ida(1)) |
134 | + icolalt(2,i) = icolalt(2,ida(1)) |
135 | else if(icolalt(1,ida(2)).gt.0.and.icolalt(1,ida(1)).gt.0.and. |
136 | $ icolalt(2,ida(2)).le.0.and.icolalt(2,ida(1)).le.0) then ! sextet |
137 | maxcolor=maxcolor+1 |
138 | |
139 | === modified file 'Template/SubProcesses/cuts.f' |
140 | --- Template/SubProcesses/cuts.f 2011-06-29 09:34:40 +0000 |
141 | +++ Template/SubProcesses/cuts.f 2011-08-26 14:32:33 +0000 |
142 | @@ -402,11 +402,10 @@ |
143 | c B.W. phase space cuts |
144 | c |
145 | pass_bw=cut_bw(p) |
146 | - if (lbw(0) .eq. 1) then |
147 | - if ( pass_bw ) then |
148 | - passcuts=.false. |
149 | - return |
150 | - endif |
151 | +c JA 4/8/11 always check pass_bw |
152 | + if ( pass_bw ) then |
153 | + passcuts=.false. |
154 | + return |
155 | endif |
156 | C $E$DESACTIVATE_BW_CUT$E$ This is a Tag for MadWeight |
157 | |
158 | |
159 | === modified file 'Template/SubProcesses/myamp.f' |
160 | --- Template/SubProcesses/myamp.f 2011-05-29 07:23:58 +0000 |
161 | +++ Template/SubProcesses/myamp.f 2011-08-26 14:32:33 +0000 |
162 | @@ -203,12 +203,11 @@ |
163 | c write(*,*) 'Checking BW',nbw |
164 | xmass = sqrt(dot(xp(0,i),xp(0,i))) |
165 | c write(*,*) 'xmass',xmass,pmass(i,iconfig) |
166 | +c |
167 | +c Here we set if the BW is "on-shell" for LesHouches |
168 | +c |
169 | onshell = (abs(xmass - pmass(i,iconfig)) .lt. |
170 | $ bwcutoff*pwidth(i,iconfig)) |
171 | - |
172 | -c |
173 | -c Here we set if the BW is "on-shell" for LesHouches |
174 | -c |
175 | if(onshell)then |
176 | c Only allow onshell if no "decay" to identical particle |
177 | OnBW(i) = .true. |
178 | @@ -244,9 +243,25 @@ |
179 | endif |
180 | endif |
181 | endif |
182 | - if (onshell .and. (lbw(nbw).eq. 2) ) cut_bw=.true. |
183 | - if (.not. onshell .and. (lbw(nbw).eq. 1)) cut_bw=.true. |
184 | +c |
185 | +c Check if we are supposed to cut forced bw (JA 4/8/11) |
186 | +c |
187 | + if (gForceBW(i, iconfig) .and. .not. onshell)then |
188 | + cut_bw = .true. |
189 | + return |
190 | + endif |
191 | +c |
192 | +c Here we set onshell for phase space integration (JA 4/8/11) |
193 | +c |
194 | + onshell = (abs(xmass - pmass(i,iconfig)) .lt. |
195 | + $ 5d0*pwidth(i,iconfig)) |
196 | + |
197 | + if (onshell .and. (lbw(nbw).eq. 2) .or. |
198 | + $ .not. onshell .and. (lbw(nbw).eq. 1)) then |
199 | + cut_bw=.true. |
200 | c write(*,*) 'cut_bw: ',nbw,xmass,onshell,lbw(nbw),cut_bw |
201 | + return |
202 | + endif |
203 | endif |
204 | |
205 | enddo |
206 | @@ -292,9 +307,6 @@ |
207 | |
208 | logical gForceBW(-max_branch:-1,lmaxconfigs) ! Forced BW |
209 | include 'decayBW.inc' |
210 | - |
211 | - double precision forced_mass |
212 | - data forced_mass/0d0/ |
213 | c |
214 | c Global |
215 | c |
216 | @@ -407,11 +419,19 @@ |
217 | & sqrt(max(etmin(l2),0d0)*max(etmin(l1),0d0)*dr)) |
218 | c-JA 1/2009: Set grid also based on xqcut |
219 | xm(i)=max(xm(i),max(xqcutij(l1,l2),0d0)) |
220 | - xe(i)=max(xe(i),xm(i)) |
221 | endif |
222 | c write(*,*) 'iconfig,i',iconfig,i |
223 | c write(*,*) pwidth(i,iconfig),pmass(i,iconfig) |
224 | - if (pwidth(i,iconfig) .gt. 0 ) nbw=nbw+1 |
225 | + if (pwidth(i,iconfig) .gt. 0 ) then |
226 | + nbw=nbw+1 |
227 | +c JA 6/8/2011 Set xe(i) for resonances |
228 | + if (lbw(nbw).eq.1) then |
229 | + xm(i) = max(xm(i), pmass(i,iconfig)-5d0*pwidth(i,iconfig)) |
230 | + else if (gforcebw(i,iconfig)) then |
231 | + xm(i) = max(xm(i), pmass(i,iconfig)-bwcutoff*pwidth(i,iconfig)) |
232 | + endif |
233 | + endif |
234 | + xe(i)=max(xe(i),xm(i)) |
235 | if (pwidth(i,iconfig) .gt. 0 .and. lbw(nbw) .le. 1) then !B.W. |
236 | c nbw = nbw +1 |
237 | |
238 | @@ -419,8 +439,10 @@ |
239 | j = 3*(nexternal-2)-4+1 !set i to ndim+1 |
240 | c----- |
241 | c tjs 11/2008 if require BW then force even if worried about energy |
242 | +c JA 8/2011 don't use BW if mass is > CM energy |
243 | c---- |
244 | - if(pmass(i,iconfig).ge.xe(i).and.iden_part(i).eq.0 |
245 | + if(pmass(i,iconfig).ge.xm(i).and.iden_part(i).eq.0.and. |
246 | + $ pmass(i,iconfig).lt.sqrt(stot) |
247 | $ .or. lbw(nbw).eq.1) then |
248 | write(*,*) 'Setting PDF BW',j,nbw,pmass(i,iconfig) |
249 | spole(j)=pmass(i,iconfig)*pmass(i,iconfig)/stot |
250 | @@ -433,23 +455,18 @@ |
251 | spole(-i)=pmass(i,iconfig)*pmass(i,iconfig)/stot |
252 | swidth(-i) = pwidth(i,iconfig)*pmass(i,iconfig)/stot |
253 | xm(i) = pmass(i,iconfig) |
254 | -c Remember largest BW mass for better grid setting |
255 | - forced_mass = max(forced_mass, |
256 | - $ pmass(i,iconfig)-bwcutoff*pwidth(i,iconfig)) |
257 | -c RF & TJS, should start from final state particle masses, not only at resonance. |
258 | -c Therefore remove the next line. |
259 | -c xe(i) = max(xe(i),xm(i)) |
260 | endif |
261 | c JA 4/1/2011 Set grid in case there is no BW (radiation process) |
262 | - if (swidth(-i) .eq. 0d0)then |
263 | + if (swidth(-i) .eq. 0d0 .and. |
264 | + $ i.ne.-(nexternal-(nincoming+1)))then |
265 | a=pmass(i,iconfig)**2/stot |
266 | - xo = xm(i)**2/stot |
267 | + xo = max(min(xm(i)**2/stot, 1-1d-8), 1d0/stot) |
268 | call setgrid(-i,xo,a,1) |
269 | endif |
270 | else !1/x^pow |
271 | a=pmass(i,iconfig)**2/stot |
272 | c JA 4/1/2011 always set grid |
273 | - xo = max(xm(i)**2/stot, 1d-8) |
274 | + xo = max(min(xm(i)**2/stot, 1-1d-8), 1d0/stot) |
275 | c if (pwidth(i, iconfig) .eq. 0d0.or.iden_part(i).gt.0) then |
276 | call setgrid(-i,xo,a,1) |
277 | c else |
278 | @@ -458,7 +475,7 @@ |
279 | c endif |
280 | endif |
281 | etot = etot+xe(i) |
282 | - mtot=mtot+max(xm(i),xm(i)) |
283 | + mtot=mtot+xm(i) |
284 | c write(*,*) 'New mtot',i,mtot,xm(i) |
285 | else !t channel |
286 | c |
287 | @@ -492,10 +509,10 @@ |
288 | xo = min(x1,x2) |
289 | |
290 | c Use 1/10000 of sqrt(s) as minimum, to always get integration |
291 | - xo = max(xo*xo/stot,1e-8) |
292 | - if (xo.eq.1e-8)then |
293 | - write(*,*) 'Warning: No good cutoff for shat integration found' |
294 | - write(*,*) ' Minimum set to 1e-8*s' |
295 | + xo = max(xo*xo/stot,1d0/stot) |
296 | + if (xo.eq.1d0/stot)then |
297 | + write(*,*) 'Warning: No cutoff for shat integral found' |
298 | + write(*,*) ' Minimum set to ',1d0/stot |
299 | endif |
300 | a=-pmass(i,iconfig)**2/stot |
301 | c call setgrid(-i,xo,a,pow(i,iconfig)) |
302 | @@ -507,16 +524,12 @@ |
303 | enddo |
304 | if (abs(lpp(1)) .eq. 1 .or. abs(lpp(2)) .eq. 1) then |
305 | c Set minimum based on: 1) required energy 2) resonances 3) 1/10000 of sqrt(s) |
306 | - if(forced_mass**2.lt.stot) then |
307 | - xo = max(max(etot**2, forced_mass**2)/stot,1d-8) |
308 | - else |
309 | - xo = max(etot**2/stot,1d-8) |
310 | - endif |
311 | - if (xo.eq.1d-8) then |
312 | + i = 3*(nexternal-2) - 4 + 1 |
313 | + xo = max(min(etot**2/stot, 1d0-1d-8),1d0/stot) |
314 | + if (swidth(i).eq.0.and.xo.eq.1d0/stot) then |
315 | write(*,*) 'Warning: No minimum found for integration' |
316 | - write(*,*) ' Setting minimum to 1e-8*stot' |
317 | + write(*,*) ' Setting minimum to ',1d0/stot |
318 | endif |
319 | - i = 3*(nexternal-2) - 4 + 1 |
320 | c----------------------- |
321 | c tjs 4/29/2008 use analytic transform for s-hat |
322 | c----------------------- |
323 | |
324 | === modified file 'Template/SubProcesses/symmetry.f' |
325 | --- Template/SubProcesses/symmetry.f 2011-06-01 21:18:40 +0000 |
326 | +++ Template/SubProcesses/symmetry.f 2011-08-26 14:32:33 +0000 |
327 | @@ -135,7 +135,8 @@ |
328 | else |
329 | write(26,*) npoints,iter_survey, |
330 | & ' !Number of events and iterations' |
331 | - write(26,*) ' 0.0 !Accuracy' |
332 | +c JA 4/8/11 Set minimum accuracy 10%, to run 4th iteration if needed |
333 | + write(26,*) ' 0.1 !Accuracy' |
334 | write(26,*) ' 2 !Grid Adjustment 0=none, 2=adjust' |
335 | endif |
336 | write(26,*) ' 1 !Suppress Amplitude 1=yes' |
337 | @@ -254,9 +255,9 @@ |
338 | nbw=nbw+1 |
339 | if (pwidth(-j,i) .gt. 1d-20 .and. sprop(-j,i).ne.0) then |
340 | write(*,*) 'Got bw',-nbw,j |
341 | - if(lconflict(-j).or.gForceBW(-j,i)) then |
342 | - if(lconflict(-j)) write(*,*) 'Got conflict ',-nbw,j |
343 | - if(gForceBW(-j,i)) write(*,*) 'Got forced BW ',-nbw,j |
344 | +c JA 4/8/11 don't treat forced BW differently |
345 | + if(lconflict(-j)) then |
346 | + write(*,*) 'Got conflict ',-nbw,j |
347 | iarray(nbw)=1 !Cuts on BW |
348 | if (nbw .gt. imax) then |
349 | write(*,*) 'Too many BW w conflicts',nbw,imax |
350 | @@ -289,7 +290,7 @@ |
351 | write(26,formstr) dconfig |
352 | endif |
353 | write(26,'(a$)') ' ' |
354 | - call bw_increment_array(iarray,imax,ibase,gForceBW(-imax,i),done) |
355 | + call bw_increment_array(iarray,imax,ibase,done) |
356 | enddo |
357 | endif |
358 | enddo |
359 | @@ -318,7 +319,8 @@ |
360 | nbw=nbw+1 |
361 | if (pwidth(-j,i) .gt. 1d-20 .and. sprop(-j,i).ne.0) then |
362 | write(*,*) 'Got bw',nbw,j |
363 | - if(lconflict(-j).or.gForceBW(-j,i)) then |
364 | +c JA 4/8/11 don't treat forced BW differently |
365 | + if(lconflict(-j)) then |
366 | iarray(nbw)=1 !Cuts on BW |
367 | if (nbw .gt. imax) then |
368 | write(*,*) 'Too many BW w conflicts',nbw,imax |
369 | @@ -339,7 +341,7 @@ |
370 | else |
371 | write(26,'(2i6)') mapconfig(i),use_config(i) |
372 | endif |
373 | - call bw_increment_array(iarray,imax,ibase,gForceBW(-imax,i),done) |
374 | + call bw_increment_array(iarray,imax,ibase,done) |
375 | enddo |
376 | else |
377 | write(26,'(2i6)') mapconfig(i), use_config(i) |
378 | @@ -368,7 +370,7 @@ |
379 | integer itree(2,-max_branch:-1),iconfig |
380 | logical lconflict(-max_branch:nexternal) |
381 | integer sprop(-max_branch:-1) ! Propagator id |
382 | - logical forcebw(-max_branch:-1) ! Forced BW |
383 | + logical forcebw(-max_branch:-1) ! Forced BW, for identical particle conflicts |
384 | c |
385 | c local |
386 | c |
387 | @@ -533,7 +535,7 @@ |
388 | |
389 | |
390 | |
391 | - subroutine bw_increment_array(iarray,imax,ibase,force,done) |
392 | + subroutine bw_increment_array(iarray,imax,ibase,done) |
393 | c************************************************************************ |
394 | c Increments iarray |
395 | c************************************************************************ |
396 | @@ -543,7 +545,6 @@ |
397 | c |
398 | integer imax !Input, number of elements in iarray |
399 | integer ibase !Base for incrementing, 0 is skipped |
400 | - logical force(imax) !Force onshell BW, counting from -imax to -1 |
401 | integer iarray(imax) !Output:Array of values being incremented |
402 | logical done !Output:Set when no more incrementing |
403 | |
404 | @@ -566,7 +567,7 @@ |
405 | do while (i .le. imax .and. .not. found) |
406 | if (iarray(i) .eq. 0) then !don't increment this |
407 | i=i+1 |
408 | - elseif (iarray(i) .lt. ibase-1 .and. .not. force(imax+1-i)) then |
409 | + elseif (iarray(i) .lt. ibase-1) then |
410 | found = .true. |
411 | iarray(i)=iarray(i)+1 |
412 | else |
413 | |
414 | === modified file 'Template/SubProcesses/unwgt.f' |
415 | --- Template/SubProcesses/unwgt.f 2011-04-20 23:22:29 +0000 |
416 | +++ Template/SubProcesses/unwgt.f 2011-08-26 14:32:33 +0000 |
417 | @@ -311,10 +311,11 @@ |
418 | xscale = xsec/xsum |
419 | target_wgt = target_wgt*xscale |
420 | rewind(lun) |
421 | - if (nstore .le. neventswritten) then |
422 | - write(*,*) 'No improvement in events',nstore, neventswritten |
423 | - return |
424 | - endif |
425 | +c JA 8/17/2011 Don't check for previously stored events |
426 | +c if (nstore .le. neventswritten) then |
427 | +c write(*,*) 'No improvement in events',nstore, neventswritten |
428 | +c return |
429 | +c endif |
430 | lunw = 25 |
431 | open(unit = lunw, file='events.lhe', status='unknown') |
432 | done = .false. |
433 | |
434 | === modified file 'Template/bin/generate_events' |
435 | --- Template/bin/generate_events 2011-07-12 03:57:50 +0000 |
436 | +++ Template/bin/generate_events 2011-08-26 14:32:33 +0000 |
437 | @@ -136,7 +136,7 @@ |
438 | unset lhapdf |
439 | fi |
440 | # Compile everything in Source |
441 | -echo "Cleaning directories" > status |
442 | +echo "Compiling Source" > status |
443 | cat status |
444 | $dirbin/gen_crossxhtml-pl $t |
445 | $dirbin/compile_Source |
446 | @@ -188,6 +188,7 @@ |
447 | |
448 | touch survey |
449 | echo "Starting jobs" > status |
450 | +cat status |
451 | $dirbin/gen_crossxhtml-pl $t |
452 | $dirbin/survey $mode $n $t |
453 | error_exit |
454 | @@ -208,7 +209,7 @@ |
455 | # Now collect the events |
456 | # |
457 | echo "Combining Events" >& status |
458 | -echo "Combining Events" |
459 | +cat status |
460 | $dirbin/gen_crossxhtml-pl $t |
461 | pushd SubProcesses > /dev/null |
462 | $dirbin/run_combine $mode |
463 | @@ -241,6 +242,7 @@ |
464 | |
465 | if [[ (-x $ERAdir/ExRootLHEFConverter) && (-e unweighted_events.lhe) ]]; then |
466 | echo "Creating Root File" >& ../status |
467 | + cat ../status |
468 | $dirbin/gen_crossxhtml-pl $t |
469 | $ERAdir/ExRootLHEFConverter unweighted_events.lhe unweighted_events.root |
470 | fi |
471 | @@ -256,8 +258,8 @@ |
472 | # $dirbin/plot_page-pl $t |
473 | #endif |
474 | if [[ (-x $MAdir/plot_events) && (-e unweighted_events.lhe) && (-e ../Cards/plot_card.dat) ]]; then |
475 | - echo "Creating Plots" |
476 | echo "Creating Plots" >& ../status |
477 | + cat ../status |
478 | $dirbin/gen_crossxhtml-pl $t |
479 | mkdir $t |
480 | cd $t |
481 | @@ -299,9 +301,9 @@ |
482 | if [[ (-x $pydir/pythia) && (-e ../Cards/pythia_card.dat) ]]; then |
483 | gunzip -c ${t}_unweighted_events.lhe.gz > unweighted_events.lhe |
484 | echo "Running Pythia" >& ../status |
485 | + cat ../status |
486 | $dirbin/gen_crossxhtml-pl $t |
487 | # shower and hadronize event through Pythia |
488 | - echo "Running pythia..." |
489 | $dirbin/run_pythia $pydir $mode |
490 | fi |
491 | |
492 | @@ -314,12 +316,14 @@ |
493 | |
494 | if [[ (-x $pydir/hep2lhe) && (-e ../Cards/pythia_card.dat) && (-e pythia_events.hep) ]]; then |
495 | echo "Creating Pythia LHE File" >& ../status |
496 | + cat ../status |
497 | $dirbin/gen_crossxhtml-pl $t |
498 | $dirbin/run_hep2lhe $pydir $mode |
499 | fi |
500 | |
501 | if [[ (-x $ERAdir/ExRootLHEFConverter) && (-e pythia_events.lhe) ]]; then |
502 | echo "Creating Pythia LHE Root File" >& ../status |
503 | + cat ../status |
504 | $dirbin/gen_crossxhtml-pl $t |
505 | $ERAdir/ExRootLHEFConverter pythia_events.lhe pythia_lhe_events.root |
506 | fi |
507 | @@ -328,8 +332,8 @@ |
508 | $dirbin/create_matching_plots.sh $t |
509 | fi |
510 | if [[ (-x $MAdir/plot_events) && (-e pythia_events.lhe) && (-e ../Cards/plot_card.dat) ]]; then |
511 | - echo "Creating Plots for Pythia" |
512 | echo "Creating Plots for Pythia" >& ../status |
513 | + cat ../status |
514 | $dirbin/gen_crossxhtml-pl $t |
515 | mkdir ${t}_pythia |
516 | cd ${t}_pythia |
517 | @@ -353,15 +357,15 @@ |
518 | |
519 | if [[ (-x $pgsdir/pgs) && (-e ../Cards/pgs_card.dat) ]]; then |
520 | echo "Running PGS" >& ../status |
521 | + cat ../status |
522 | $dirbin/gen_crossxhtml-pl $t |
523 | # now pass the event to a detector simulator and reconstruct objects |
524 | - echo "Running PGS..." |
525 | # qsub -v pgsdir=$pgsdir $dirbin/run_pgs >> ../running_jobs |
526 | $dirbin/run_pgs $pgsdir $mode |
527 | else |
528 | if [[ (-x $delphesdir/Delphes) && (-e ../Cards/delphes_card.dat) ]]; then |
529 | echo "Running Delphes" >& ../status |
530 | - echo "Running Delphes..." |
531 | + cat ../status |
532 | $dirbin/run_delphes $delphesdir $mode |
533 | fi |
534 | fi |
535 | @@ -369,13 +373,14 @@ |
536 | |
537 | if [[ (-x $ERAdir/ExRootLHCOlympicsConverter) && (-e pgs_events.lhco) ]]; then |
538 | echo "Creating PGS Root File" >& ../status |
539 | + cat ../status |
540 | $dirbin/gen_crossxhtml-pl $t |
541 | $ERAdir/ExRootLHCOlympicsConverter pgs_events.lhco pgs_events.root |
542 | fi |
543 | |
544 | if [[ (-x $MAdir/plot_events) && (-e pgs_events.lhco) && (-e ../Cards/plot_card.dat) ]]; then |
545 | - echo "Creating Plots for PGS" |
546 | echo "Creating Plots for PGS" >& ../status |
547 | + cat ../status |
548 | $dirbin/gen_crossxhtml-pl $t |
549 | mkdir ${t}_pgs |
550 | cd ${t}_pgs |
551 | @@ -387,8 +392,8 @@ |
552 | fi |
553 | |
554 | if [[ (-x $MAdir/plot_events) && (-e delphes_events.lhco) && (-e ../Cards/plot_card.dat) ]]; then |
555 | - echo "Creating Plots for Delphes" |
556 | echo "Creating Plots for Delphes" >& ../status |
557 | + cat ../status |
558 | $dirbin/gen_crossxhtml-pl $t |
559 | mkdir ${t}_delphes |
560 | cd ${t}_delphes |
561 | @@ -404,6 +409,7 @@ |
562 | # Store Events |
563 | # |
564 | echo "Storing Events" >& status |
565 | +cat status |
566 | $dirbin/gen_crossxhtml-pl $t |
567 | $dirbin/store $t |
568 | rm -f RunWeb |
569 | |
570 | === modified file 'Template/bin/refine' |
571 | --- Template/bin/refine 2011-07-06 22:40:17 +0000 |
572 | +++ Template/bin/refine 2011-08-26 14:32:33 +0000 |
573 | @@ -72,11 +72,12 @@ |
574 | exit |
575 | fi |
576 | if [[ -d SubProcesses ]]; then |
577 | - if [[ $mode -gt 0 ]]; then |
578 | + if [[ $mode -eq 1 ]]; then |
579 | echo "Creating Jobs" >& status |
580 | else |
581 | - echo " " >& status |
582 | + echo "Running" >& status |
583 | fi |
584 | + $dirbin/gen_crossxhtml-pl $5 |
585 | cd SubProcesses |
586 | r=0 |
587 | if [[ -e randinit ]]; then |
588 | @@ -109,6 +110,7 @@ |
589 | ../../bin/multicore $n $job |
590 | sleep 1 |
591 | else |
592 | + echo "Launching job $job" |
593 | nice ./$job > /dev/null |
594 | ../../bin/sum_html >/dev/null |
595 | fi |
596 | |
597 | === modified file 'Template/bin/survey' |
598 | --- Template/bin/survey 2011-07-10 19:01:23 +0000 |
599 | +++ Template/bin/survey 2011-08-26 14:32:33 +0000 |
600 | @@ -64,11 +64,12 @@ |
601 | fi |
602 | |
603 | if [[ -d SubProcesses ]]; then |
604 | - if [[ $mode -gt 0 ]]; then |
605 | + if [[ $mode -eq 1 ]]; then |
606 | echo "Creating Jobs" >& status |
607 | else |
608 | - echo " " >& status |
609 | + echo "Running" >& status |
610 | fi |
611 | + $dirbin/gen_crossxhtml-pl $3 |
612 | cd SubProcesses |
613 | r=0 |
614 | if [[ -e randinit ]]; then |
615 | @@ -117,6 +118,7 @@ |
616 | ../../bin/multicore $n $job |
617 | sleep 1 |
618 | else |
619 | + echo "Launching job $job" |
620 | time nice ./$job >/dev/null |
621 | ../../bin/sum_html >/dev/null |
622 | fi |
623 | |
624 | === modified file 'UpdateNotes.txt' |
625 | --- UpdateNotes.txt 2011-08-23 12:34:44 +0000 |
626 | +++ UpdateNotes.txt 2011-08-26 14:32:33 +0000 |
627 | @@ -1,10 +1,27 @@ |
628 | Update notes for MadGraph 5 (in reverse time order) |
629 | |
630 | +<<<<<<< TREE |
631 | 1.3.10 (23/08/11) OM: Update ALOHA version |
632 | OM: increase waiting time for jobs to write physically the results on the disks. |
633 | (in ordre to reduce trouble on the cluster) |
634 | |
635 | 1.3.9 (01/08/11) OM: Add a new model DY_SM (arXiv:1107.5830). Thanks to Neil for the generation of the model |
636 | +======= |
637 | +1.3.11 (26/08/11) JA: Improved precision of "survey" by allowing 4th and 5th |
638 | + iteration if accuracy after 3 iterations < 10%. |
639 | + JA: Subdivide BW in phase space integration for conflicting BWs |
640 | + also for forced decays, to improve generation with large |
641 | + bwcutoff in e.g. W+ W- production with decays. |
642 | + JA: Do refine using luminocity instead of number of events, |
643 | + to work with badly determined channels. |
644 | + JA: Don't use BW for shat if mass > sqrt(s). |
645 | + JA: Fixed insertion of colors for octet resonances decaying to |
646 | + octet+singlet (thanks Bogdan for finding this) |
647 | + |
648 | + |
649 | +1.3.9 (01/08/11) OM: Add a new model DY_SM (arXiv:1107.5830). Thanks to Neil |
650 | + for the generation of the model |
651 | +>>>>>>> MERGE-SOURCE |
652 | |
653 | 1.3.8 (25/07/11) JA: Replace the SM and HEFT models with latest versions using |
654 | the Wolfenstein parameterization for the CKM matrix. |
655 | |
656 | === modified file 'madgraph/VERSION' |
657 | --- madgraph/VERSION 2011-08-23 12:41:03 +0000 |
658 | +++ madgraph/VERSION 2011-08-26 14:32:33 +0000 |
659 | @@ -1,3 +1,8 @@ |
660 | +<<<<<<< TREE |
661 | version = 1.3.10 |
662 | date = 2011-08-23 |
663 | +======= |
664 | +version = 1.3.11 |
665 | +date = 2011-08-26 |
666 | +>>>>>>> MERGE-SOURCE |
667 | |
668 | |
669 | === modified file 'tests/acceptance_tests/test_cmd.py' |
670 | --- tests/acceptance_tests/test_cmd.py 2011-07-10 22:43:49 +0000 |
671 | +++ tests/acceptance_tests/test_cmd.py 2011-08-26 14:32:33 +0000 |
672 | @@ -741,15 +741,15 @@ |
673 | 'SubProcesses', |
674 | 'P0_qq_gogo_go_qqn1_go_qqn1', |
675 | 'symfact.dat')).read(), |
676 | - """1.030 1 |
677 | + """ 1 1 |
678 | 2 -1 |
679 | 3 -1 |
680 | 4 -1 |
681 | -5.030 1 |
682 | + 5 1 |
683 | 6 -5 |
684 | 7 -5 |
685 | 8 -5 |
686 | -9.030 1 |
687 | + 9 1 |
688 | 10 -9 |
689 | 11 -9 |
690 | 12 -9 |
You can merge.
The only point that need to be change, is the parralel test which is not working anymore.
(I think that this is due to a previous version modification)