Biased NLO event generation in MG5 2.6.0

Asked by Sung Hak Lim

Dear MG5 team,

I'm just checking newly introduced biased NLO event generation in MG5 2.6.0.

It seems cuts.f has relevant control part for this biasing and I've checked

      subroutine bias_weight_function(p,ipdg,bias_wgt)
c This is a user-defined function to which to bias the event generation.
c A non-flat distribution will generate events with a certain weight
c inversely proportinal to the bias_wgt. This is particularly useful to
c generate more events (with smaller weight) in tails of distributions.
c It computes the bias_wgt factor from the momenta and multiplies the
c weight that goes into MINT (or vegas) with this factor. Before
c writing out the events (or making the plots), this factor is again
c divided out. A value different from 1 makes that MINT (or vegas) does
c not list the correct cross section, but the cross section can still be
c computed from summing all the weights of the events (and dividing by
c the number of events). Since the weights of the events are no longer
c identical for all events, the statistical uncertainty on this total
c cross section can be much larger than without including the bias.
c
c The 'bias_wgt' should be a IR-safe function of the momenta.
c
c For this to be used, the 'event_norm' option in the run_card should be
c set to
c 'bias' = event_norm
c
      implicit none
      include 'nexternal.inc'
      double precision bias_wgt,p(0:3,nexternal),H_T
      integer ipdg(nexternal),i

      bias_wgt=1d0

c How to enhance the tails is very process dependent. For example for
c top quark production one could use:
c do i=1,nexternal
c if (ipdg(i).eq.6) then
c bias_wgt=sqrt(p(1,i)**2+p(2,i)**2)**3
c endif
c enddo
c Or to use H_T^2 one does
c H_T=0d0
c do i=3,nexternal
c H_T=H_T+sqrt(max(0d0,(p(0,i)+p(3,i))*(p(0,i)-p(3,i))))
c enddo
c bias_wgt=H_T**2
      return
      end

If I change this bias_wgt into other value, which should be IR safe in order to keep perturbativity, then is it generated weighted events like bias module in LO case?

It seems there is not much documentation for this new feature yet so I'm leaving a question here instead.

Have a nice day!

Best wishes,
Sung Hak Lim

Question information

Language:
English Edit question
Status:
Solved
For:
MadGraph5_aMC@NLO Edit question
Assignee:
No assignee Edit question
Solved by:
Sung Hak Lim
Solved:
Last query:
Last reply:
Revision history for this message
Olivier Mattelaer (olivier-mattelaer) said :
#1

Dear Sung Hak Lim,

Some developper wants to keep this feature relatively hidden: (quoting a developper:
" keep it somewhat hidden for normal users." full message here
https://code.launchpad.net/~maddevelopers/mg5amcnlo/bias_function/+merge/328265)

So I guess it is normal that you do not find that much documentation on it.
Now the function itself contains all the informations that you need. (especially the change that you need to include in the run_card to have this working)

For your question concerning the output, yes, the final sample will have weight different of -1 and 1 in that case.

Cheers,

Olivier

Revision history for this message
Sung Hak Lim (sunghak-lim) said :
#2

Hi Olivier,

I understand that user should be more responsible when using the NLO biasing module since it has *lots* of caveats to be understood before generating physically reasonable MC generated samples.

I also experience similar things in Sherpa's weight event generation with enhancers (I guess it's similar to NLO biasing module here), such as IR safety issue and statistical precision loss in inclusive cross section due to low statistics in phase space region with high probability. I guess same experience may apply for this also.

It seems that I can reuse my fNLO calculation code for NLO biasing according to the discussion then.

Thanks a lot for the answers, and I'll leave here feedback when I got any problems!

Best wishes,
Sung Hak