Opened 15 years ago
Closed 9 years ago
#259 closed enhancement (fixed)
Handling of negative weight events
Reported by: | Juergen Reuter | Owned by: | kilian |
---|---|---|---|
Priority: | P3 | Milestone: | v2.2.8 |
Component: | core | Version: | 2.0.0rc3 |
Severity: | major | Keywords: | NLO support |
Cc: |
Description
In W1 this was possible with several workarounds, in W2 it should be much, much cleaner.
Change History (16)
comment:1 Changed 15 years ago by
Milestone: | v2.0-rc4 → v2.0.0final |
---|---|
Status: | new → assigned |
comment:2 Changed 15 years ago by
Milestone: | v2.0.0final → v2.0.1 |
---|
comment:3 Changed 15 years ago by
The function value of sample_function is negative, but WHIZARD spits out only cross sections that are identically zero.
comment:4 Changed 15 years ago by
Milestone: | v2.0.1 → v2.0.2 |
---|
There are two issues: first of all, the subroutine vamp_sample_grids0 (which produces the first grid in the adaption) vetoes against negative g%mu(1) and sets integrals, efficiencies and all that identically zero. For the NLO applications I used the same procedures as for the g%mu(1) > 0 case (getting perfectly reflected results at the x axis). This should be triggered by a conditional, such that this is possible only if a flag ?allow_negative_weights or something similar is set by the user. Furthermore we have to catch all the things (avoiding negative efficiencies, negative relative errors, negative accuracies and all that). Secondly, event generation right now is vetoed. But that is the second step. For NLO, all this is MANDATORY but as I have no time now, I move it at least to 2.0.2. De acuerdo?
comment:5 Changed 15 years ago by
Milestone: | v2.0.2 → v2.0.3 |
---|
comment:6 follow-up: 7 Changed 15 years ago by
For the efficiency treatment I need the help of ThO to look for the specifics inside VAMP.
comment:7 Changed 14 years ago by
Milestone: | v2.0.3 → v2.1 |
---|---|
Owner: | changed from Juergen Reuter to ohl |
Severity: | normal → major |
Status: | assigned → new |
Replying to jr_reuter:
For the efficiency treatment I need the help of ThO to look for the specifics inside VAMP.
Augment VAMP's grid datatype by
real(kind=default), dimension(2) :: mu_plus, mu_minus
to record positive and negative weight separately, so that we can estimmate the efficiency for reweighting from indefinite weights to {+1,-1}.
comment:8 Changed 13 years ago by
Component: | core → vamp |
---|---|
Type: | defect → enhancement |
comment:9 Changed 10 years ago by
Component: | vamp → core |
---|---|
Milestone: | v2.3.1 → v2.2.6 |
Owner: | changed from ohl to kilian |
Old comment from #670 (which was closed as a duplicate):
Agree on a way to compute efficiency values if negative weights are involved in the integration, as might be the case for the real and virtual part of the NLO-cross section.
comment:10 Changed 10 years ago by
Milestone: | v2.2.6 → v2.2.7 |
---|
comment:11 Changed 10 years ago by
This also includes the addition of negative weights in the HepMC events, as BACN found, here are examples: (http://www.star.bnl.gov/webdata/dox/html/main88_8cc_source.html):
00280 Set hepmc event weight. 00281 hepmcevt->weights().push_back(weightNLO*normhepmc);
comment:12 Changed 9 years ago by
Milestone: | v2.2.7 → v2.2.8 |
---|
comment:14 Changed 9 years ago by
The efficiency calculation (after integration) should be fixed both for midpoint and for vamp integration, in r7359. I didn't do a reality check yet, whether the actual simulation is consistent with this efficiency estimate. VAMP now works with the amendments suggested above (mu_plus
, mu_minus
. Those values are recorded and can be extracted by the caller, they are not used by VAMP internal calculations.
comment:15 Changed 9 years ago by
The issue should be settled with r7363, which adapts VAMP's unweighting procedure to the case of negative-weight (or indefinite-weight) events. The reported unweighting efficiency coincides, within statistics, with the estimate from the integration run. The test is event_eff_1.sin
. The new diagnostics message also allows for validating the estimate in ordinary (positive weight) cases.
The master switch ?negative_weights
is required, otherwise negative weights will trigger an error.
There might be some .ref files to be updated, those which were not tested on my system. If all works well, I will close this ticket.
comment:16 Changed 9 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
All reference seem to be updated now. There is one subtle point, as BACN and CW remarked, that this clearly is not the full handling for NLO events where one has Bprn, real terms plus subtraction terms, and virtuals, either in separate or combined integration. But that might be a point for another, separate ticket.
With #280 overshadowing everything this is no longer doable in 2.0.0.