whizard is hosted by Hepforge, IPPP Durham

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 Juergen Reuter

Milestone: v2.0-rc4v2.0.0final
Status: newassigned

comment:2 Changed 15 years ago by Juergen Reuter

Milestone: v2.0.0finalv2.0.1

With #280 overshadowing everything this is no longer doable in 2.0.0.

comment:3 Changed 15 years ago by Juergen Reuter

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 Juergen Reuter

Milestone: v2.0.1v2.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 Juergen Reuter

Milestone: v2.0.2v2.0.3

comment:6 Changed 15 years ago by Juergen Reuter

For the efficiency treatment I need the help of ThO to look for the specifics inside VAMP.

comment:7 in reply to:  6 Changed 14 years ago by ohl

Milestone: v2.0.3v2.1
Owner: changed from Juergen Reuter to ohl
Severity: normalmajor
Status: assignednew

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 ohl

Component: corevamp
Type: defectenhancement

comment:9 Changed 10 years ago by Juergen Reuter

Component: vampcore
Milestone: v2.3.1v2.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 Juergen Reuter

Milestone: v2.2.6v2.2.7

comment:11 Changed 10 years ago by Juergen Reuter

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 Juergen Reuter

Milestone: v2.2.7v2.2.8

comment:13 Changed 9 years ago by kilian

Status: newassigned

It's about time ...

comment:14 Changed 9 years ago by kilian

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 kilian

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 Juergen Reuter

Resolution: fixed
Status: assignedclosed

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.

Note: See TracTickets for help on using tickets.