NLO reweighting crashes with zero division error

Asked by Hannes on 2020-09-25

Hi,

we have a problem with the reweighting module, using NLO reweighting in v2.7.3, where we get a zero-division error after processing a few events, for a fairly trivial reweighting.
I've pasted the printout and the content of the debug log below.
Any help debugging this would be greatly appreciated.

### Printout: ###

INFO: Running Reweighting
change mode NLO # Define type of Reweighting. For LO sample this command
launch
INFO: detected model: loop_sm. Loading...
INFO: generating the square matrix element for reweighting
INFO: generate p p > w+ --no_warning=duplicate;define pert_QCD = -4 -3 -2 -1 1 2 3 4 21;add process p p > w+ pert_QCD --no_warning=duplicate;
INFO: Done 4.937
INFO: generate p p > w+ [ virt=QCD] ;
compile OLP rw_mevirt
INFO: starts to compute weight for events with the following modification to the param_card:
INFO: set param_card sminputs 1 130.0 # orig: 132.3489
KEEP:
INFO: Event nb 0 current time: 11h11
INFO: Event nb 10 0.53s
Command "reweight /srv/PROCNLO_loop_sm_0/Events/run_01/events.lhe.gz_0.lhe -from_cards --multicore=create" interrupted with error:
ZeroDivisionError : float division by zero

### Debug log: ###

#************************************************************
#* MadGraph5_aMC@NLO *
#* *
#* * * *
#* * * * * *
#* * * * * 5 * * * * *
#* * * * * *
#* * * *
#* *
#* *
#* VERSION 2.7.3 2020-06-21 *
#* *
#* The MadGraph5_aMC@NLO Development Team - Find us at *
#* https://server06.fynu.ucl.ac.be/projects/madgraph *
#* and *
#* http://amcatnlo.cern.ch *
#* *
#************************************************************
#* *
#* Command File for aMCatNLO *
#* *
#* run as ./bin/aMCatNLO.py filename *
#* *
#************************************************************
reweight /srv/PROCNLO_loop_sm_0/Events/run_01/events.lhe.gz_0.lhe -from_cards --multicore=create
Traceback (most recent call last):
  File "/cvmfs/atlas.cern.ch/repo/sw/software/21.6/sw/lcg/releases/LCG_88b/MCGenerators/madgraph5amc/2.7.3p3.atlas6/x86_64-slc6-gcc62-opt/madgraph/interface/extended_cmd.py", line 1515, in onecmd
    return self.onecmd_orig(line, **opt)
  File "/cvmfs/atlas.cern.ch/repo/sw/software/21.6/sw/lcg/releases/LCG_88b/MCGenerators/madgraph5amc/2.7.3p3.atlas6/x86_64-slc6-gcc62-opt/madgraph/interface/extended_cmd.py", line 1464, in onecmd_orig
    return func(arg, **opt)
  File "/cvmfs/atlas.cern.ch/repo/sw/software/21.6/sw/lcg/releases/LCG_88b/MCGenerators/madgraph5amc/2.7.3p3.atlas6/x86_64-slc6-gcc62-opt/madgraph/interface/common_run_interface.py", line 2153, in do_reweight
    reweight_cmd.import_command_file(path)
  File "/cvmfs/atlas.cern.ch/repo/sw/software/21.6/sw/lcg/releases/LCG_88b/MCGenerators/madgraph5amc/2.7.3p3.atlas6/x86_64-slc6-gcc62-opt/madgraph/interface/extended_cmd.py", line 1661, in import_command_file
    self.exec_cmd(line, precmd=True)
  File "/cvmfs/atlas.cern.ch/repo/sw/software/21.6/sw/lcg/releases/LCG_88b/MCGenerators/madgraph5amc/2.7.3p3.atlas6/x86_64-slc6-gcc62-opt/madgraph/interface/extended_cmd.py", line 1544, in exec_cmd
    stop = Cmd.onecmd_orig(current_interface, line, **opt)
  File "/cvmfs/atlas.cern.ch/repo/sw/software/21.6/sw/lcg/releases/LCG_88b/MCGenerators/madgraph5amc/2.7.3p3.atlas6/x86_64-slc6-gcc62-opt/madgraph/interface/extended_cmd.py", line 1464, in onecmd_orig
    return func(arg, **opt)
  File "/cvmfs/atlas.cern.ch/repo/sw/software/21.6/sw/lcg/releases/LCG_88b/MCGenerators/madgraph5amc/2.7.3p3.atlas6/x86_64-slc6-gcc62-opt/madgraph/various/misc.py", line 100, in f_with_no_logger
    out = f(self, *args, **opt)
  File "/cvmfs/atlas.cern.ch/repo/sw/software/21.6/sw/lcg/releases/LCG_88b/MCGenerators/madgraph5amc/2.7.3p3.atlas6/x86_64-slc6-gcc62-opt/madgraph/interface/reweight_interface.py", line 556, in do_launch
    weight = self.calculate_weight(event)
  File "/cvmfs/atlas.cern.ch/repo/sw/software/21.6/sw/lcg/releases/LCG_88b/MCGenerators/madgraph5amc/2.7.3p3.atlas6/x86_64-slc6-gcc62-opt/madgraph/interface/reweight_interface.py", line 988, in calculate_weight
    return self.calculate_nlo_weight(event)
  File "/cvmfs/atlas.cern.ch/repo/sw/software/21.6/sw/lcg/releases/LCG_88b/MCGenerators/madgraph5amc/2.7.3p3.atlas6/x86_64-slc6-gcc62-opt/madgraph/interface/reweight_interface.py", line 1065, in calculate_nlo_weight
    ratio_V = w_newV/w_origV
ZeroDivisionError: float division by zero
Value of current Options:
              text_editor : None
              web_browser : None
        cluster_temp_path : None
                  timeout : 60
       cluster_local_path : None
            cluster_queue : None
         madanalysis_path : None
                   lhapdf : /cvmfs/atlas.cern.ch/repo/sw/software/21.6/sw/lcg/releases/MCGenerators/lhapdf/6.2.3-0ff65/x86_64-slc6-gcc62-opt/bin/lhapdf-config
      output_dependencies : internal
             cluster_size : 100
           cluster_memory : None
    cluster_status_update : (600, 30)
             cluster_time : None
            f2py_compiler : f2py2
                    ninja : /cvmfs/atlas.cern.ch/repo/sw/software/21.6/sw/lcg/releases/MCGenerators/gosam_contrib/2.0-779ba/x86_64-slc6-gcc62-opt/lib
               hepmc_path : None
             pythia8_path : None
                hwpp_path : None
   automatic_html_opening : False
       cluster_retry_wait : 300
             stdout_level : None
          pythia-pgs_path : None
                 mg5_path : /cvmfs/atlas.cern.ch/repo/sw/software/21.6/sw/lcg/releases/MCGenerators/madgraph5amc/2.7.3p3.atlas6-8a3ac/x86_64-slc6-gcc62-opt
                  td_path : None
             delphes_path : None
              thepeg_path : None
             cluster_type : condor
        madanalysis5_path : None
      exrootanalysis_path : None
         fortran_compiler : None
                  nb_core : 4
                  collier : /cvmfs/atlas.cern.ch/repo/sw/software/21.6/sw/lcg/releases/MCGenerators/collier/1.1-92381/x86_64-slc6-gcc62-opt
              auto_update : 7
         cluster_nb_retry : 1
               eps_viewer : None
             syscalc_path : /cvmfs/atlas.cern.ch/repo/sw/software/21.6/sw/lcg/releases/MCGenerators/syscalc/1.1.4p3-61111/x86_64-slc6-gcc62-opt
             cpp_compiler : None
      notification_center : True
                 run_mode : 2
#************************************************************
#* MadGraph5_aMC@NLO *
#* *
#* * * *
#* * * * * *
#* * * * * 5 * * * * *
#* * * * * *
#* * * *
#* *
#* *
#* VERSION 2.7.3 2020-06-21 *
#* *
#* The MadGraph5_aMC@NLO Development Team - Find us at *
#* https://server06.fynu.ucl.ac.be/projects/madgraph *
#* *
#************************************************************
#* *
#* Command File for MadGraph5_aMC@NLO *
#* *
#* run as ./bin/mg5_aMC filename *
#* *
#************************************************************
set default_unset_couplings 99
set group_subprocesses Auto
set ignore_six_quark_processes False
set loop_optimized_output True
set loop_color_flows False
set gauge unitary
set complex_mass_scheme False
set max_npoint_for_channel 0
import model sm
define p = g u c d s u~ c~ d~ s~
define j = g u c d s u~ c~ d~ s~
define l+ = e+ mu+
define l- = e- mu-
define vl = ve vm vt
define vl~ = ve~ vm~ vt~
import model loop_sm
generate p p > w+ [QCD]
output -f
######################################################################
## PARAM_CARD AUTOMATICALY GENERATED BY MG5 FOLLOWING UFO MODEL ####
######################################################################
## ##
## Width set on Auto will be computed following the information ##
## present in the decay.py files of the model. ##
## See arXiv:1402.1178 for more details. ##
## ##
######################################################################

###################################
## INFORMATION FOR LOOP
###################################
Block loop
    1 9.118800e+01 # MU_R

###################################
## INFORMATION FOR MASS
###################################
Block mass
    5 4.700000e+00 # MB
    6 1.725000e+02 # MT
   15 1.776820e+00 # MTA
   23 9.118760e+01 # MZ
   25 1.250000e+02 # MH
## Dependent parameters, given by model restrictions.
## Those values should be edited following the
## analytical expression. MG5 ignores those values
## but they are important for interfacing the output of MG5
## to external program such as Pythia.
  1 0.000000e+00 # d : 0.0
  2 0.000000e+00 # u : 0.0
  3 0.000000e+00 # s : 0.0
  4 0.000000e+00 # c : 0.0
  11 0.000000e+00 # e- : 0.0
  12 0.000000e+00 # ve : 0.0
  13 0.000000e+00 # mu- : 0.0
  14 0.000000e+00 # vm : 0.0
  16 0.000000e+00 # vt : 0.0
  21 0.000000e+00 # g : 0.0
  22 0.000000e+00 # a : 0.0
  24 8.039900e+01 # w+ : cmath.sqrt(MZ__exp__2/2. + cmath.sqrt(MZ__exp__4/4. - (aEW*cmath.pi*MZ__exp__2)/(Gf*sqrt__2)))

###################################
## INFORMATION FOR SMINPUTS
###################################
Block sminputs
    1 1.323489e+02 # aEWM1
    2 1.166370e-05 # Gf
    3 1.184000e-01 # aS

###################################
## INFORMATION FOR YUKAWA
###################################
Block yukawa
    5 4.700000e+00 # ymb
    6 1.725000e+02 # ymt
   15 1.777000e+00 # ymtau

###################################
## INFORMATION FOR DECAY
###################################
DECAY 6 1.320000e+00 # WT
DECAY 23 2.495200e+00 # WZ
DECAY 24 2.085000e+00 # WW
DECAY 25 6.382339e-03 # WH
## Dependent parameters, given by model restrictions.
## Those values should be edited following the
## analytical expression. MG5 ignores those values
## but they are important for interfacing the output of MG5
## to external program such as Pythia.
DECAY 1 0.000000e+00 # d : 0.0
DECAY 2 0.000000e+00 # u : 0.0
DECAY 3 0.000000e+00 # s : 0.0
DECAY 4 0.000000e+00 # c : 0.0
DECAY 5 0.000000e+00 # b : 0.0
DECAY 11 0.000000e+00 # e- : 0.0
DECAY 12 0.000000e+00 # ve : 0.0
DECAY 13 0.000000e+00 # mu- : 0.0
DECAY 14 0.000000e+00 # vm : 0.0
DECAY 15 0.000000e+00 # ta- : 0.0
DECAY 16 0.000000e+00 # vt : 0.0
DECAY 21 0.000000e+00 # g : 0.0
DECAY 22 0.000000e+00 # a : 0.0
#===========================================================
# QUANTUM NUMBERS OF NEW STATE(S) (NON SM PDG CODE)
#===========================================================

Block QNUMBERS 82 # gh
        1 0 # 3 times electric charge
        2 1 # number of spin states (2S+1)
        3 8 # colour rep (1: singlet, 3: triplet, 8: octet)
        4 1 # Particle/Antiparticle distinction (0=own anti)
#***********************************************************************
# MadGraph5_aMC@NLO *
# *
# run_card.dat aMC@NLO *
# *
# This file is used to set the parameters of the run. *
# *
# Some notation/conventions: *
# *
# Lines starting with a hash (#) are info or comments *
# *
# mind the format: value = variable ! comment *
# *
# Some of the values of variables can be list. These can either be *
# comma or space separated. *
# *
# To display additional parameter, you can use the command: *
# update to_full *
#***********************************************************************
#
#*******************
# Running parameters
#*******************
#
#***********************************************************************
# Tag name for the run (one word) *
#***********************************************************************
  tag_1 = run_tag ! name of the run
#***********************************************************************
# Number of LHE events (and their normalization) and the required *
# (relative) accuracy on the Xsec. *
# These values are ignored for fixed order runs *
#***********************************************************************
  10000 = nevents ! Number of unweighted events requested
  -1.0 = req_acc ! Required accuracy (-1=auto determined from nevents)
  -1 = nevt_job ! Max number of events per job in event generation.
                 ! (-1= no split).
#***********************************************************************
# Normalize the weights of LHE events such that they sum or average to *
# the total cross section *
#***********************************************************************
  average = event_norm ! valid settings: average, sum, bias
#***********************************************************************
# Number of points per itegration channel (ignored for aMC@NLO runs) *
#***********************************************************************
  0.01 = req_acc_fo ! Required accuracy (-1=ignored, and use the
                     ! number of points and iter. below)
# These numbers are ignored except if req_acc_FO is equal to -1
  5000 = npoints_fo_grid ! number of points to setup grids
  4 = niters_fo_grid ! number of iter. to setup grids
  10000 = npoints_fo ! number of points to compute Xsec
  6 = niters_fo ! number of iter. to compute Xsec
#***********************************************************************
# Random number seed *
#***********************************************************************
  0 = iseed ! rnd seed (0=assigned automatically=default))
#***********************************************************************
# Collider type and energy *
#***********************************************************************
  1 = lpp1 ! beam 1 type (0 = no PDF)
  1 = lpp2 ! beam 2 type (0 = no PDF)
  6500.0 = ebeam1 ! beam 1 energy in GeV
  6500.0 = ebeam2 ! beam 2 energy in GeV
#***********************************************************************
# PDF choice: this automatically fixes also alpha_s(MZ) and its evol. *
#***********************************************************************
  nn23nlo = pdlabel ! PDF set
  244600 = lhaid ! If pdlabel=lhapdf, this is the lhapdf number. Only
              ! numbers for central PDF sets are allowed. Can be a list;
              ! PDF sets beyond the first are included via reweighting.
#***********************************************************************
# Include the NLO Monte Carlo subtr. terms for the following parton *
# shower (HERWIG6 | HERWIGPP | PYTHIA6Q | PYTHIA6PT | PYTHIA8) *
# WARNING: PYTHIA6PT works only for processes without FSR!!!! *
#***********************************************************************
  HERWIG6 = parton_shower
  1.0 = shower_scale_factor ! multiply default shower starting
                                  ! scale by this factor
#***********************************************************************
# Renormalization and factorization scales *
# (Default functional form for the non-fixed scales is the sum of *
# the transverse masses divided by two of all final state particles *
# and partons. This can be changed in SubProcesses/set_scales.f or via *
# dynamical_scale_choice option) *
#***********************************************************************
  False = fixed_ren_scale ! if .true. use fixed ren scale
  False = fixed_fac_scale ! if .true. use fixed fac scale
  91.118 = mur_ref_fixed ! fixed ren reference scale
  91.118 = muf_ref_fixed ! fixed fact reference scale
  -1 = dynamical_scale_choice ! Choose one (or more) of the predefined
           ! dynamical choices. Can be a list; scale choices beyond the
           ! first are included via reweighting
  1.0 = mur_over_ref ! ratio of current muR over reference muR
  1.0 = muf_over_ref ! ratio of current muF over reference muF
#***********************************************************************
# Reweight variables for scale dependence and PDF uncertainty *
#***********************************************************************
  1.0, 2.0, 0.5 = rw_rscale ! muR factors to be included by reweighting
  1.0, 2.0, 0.5 = rw_fscale ! muF factors to be included by reweighting
  True = reweight_scale ! Reweight to get scale variation using the
            ! rw_rscale and rw_fscale factors. Should be a list of
            ! booleans of equal length to dynamical_scale_choice to
            ! specify for which choice to include scale dependence.
  False = reweight_pdf ! Reweight to get PDF uncertainty. Should be a
            ! list booleans of equal length to lhaid to specify for
            ! which PDF set to include the uncertainties.
#***********************************************************************
# Store reweight information in the LHE file for off-line model- *
# parameter reweighting at NLO+PS accuracy *
#***********************************************************************
  True = store_rwgt_info ! Store info for reweighting in LHE file
#***********************************************************************
# ickkw parameter: *
# 0: No merging *
# 3: FxFx Merging - WARNING! Applies merging only at the hard-event *
# level. After showering an MLM-type merging should be applied as *
# well. See http://amcatnlo.cern.ch/FxFx_merging.htm for details. *
# 4: UNLOPS merging (with pythia8 only). No interface from within *
# MG5_aMC available, but available in Pythia8. *
# -1: NNLL+NLO jet-veto computation. See arxiv:1412.8408 [hep-ph]. *
#***********************************************************************
  0 = ickkw
#***********************************************************************
#
#***********************************************************************
# BW cutoff (M+/-bwcutoff*Gamma). Determines which resonances are *
# written in the LHE event file *
#***********************************************************************
  15.0 = bwcutoff
#***********************************************************************
# Cuts on the jets. Jet clustering is performed by FastJet. *
# - When matching to a parton shower, these generation cuts should be *
# considerably softer than the analysis cuts. *
# - More specific cuts can be specified in SubProcesses/cuts.f *
#***********************************************************************
  1.0 = jetalgo ! FastJet jet algorithm (1=kT, 0=C/A, -1=anti-kT)
  0.7 = jetradius ! The radius parameter for the jet algorithm
  10.0 = ptj ! Min jet transverse momentum
  -1.0 = etaj ! Max jet abs(pseudo-rap) (a value .lt.0 means no cut)
#***********************************************************************
# Cuts on the charged leptons (e+, e-, mu+, mu-, tau+ and tau-) *
# More specific cuts can be specified in SubProcesses/cuts.f *
#***********************************************************************
  0.0 = ptl ! Min lepton transverse momentum
  -1.0 = etal ! Max lepton abs(pseudo-rap) (a value .lt.0 means no cut)
  0.0 = drll ! Min distance between opposite sign lepton pairs
  0.0 = drll_sf ! Min distance between opp. sign same-flavor lepton pairs
  0.0 = mll ! Min inv. mass of all opposite sign lepton pairs
  30.0 = mll_sf ! Min inv. mass of all opp. sign same-flavor lepton pairs
#***********************************************************************
# Photon-isolation cuts, according to hep-ph/9801442. When ptgmin=0, *
# all the other parameters are ignored. *
# More specific cuts can be specified in SubProcesses/cuts.f *
#***********************************************************************
  20.0 = ptgmin ! Min photon transverse momentum
  -1.0 = etagamma ! Max photon abs(pseudo-rap)
  0.4 = r0gamma ! Radius of isolation code
  1.0 = xn ! n parameter of eq.(3.4) in hep-ph/9801442
  1.0 = epsgamma ! epsilon_gamma parameter of eq.(3.4) in hep-ph/9801442
  True = isoem ! isolate photons from EM energy (photons and leptons)
#***********************************************************************
# Cuts associated to MASSIVE particles identified by their PDG codes. *
# All cuts are applied to both particles and anti-particles, so use *
# POSITIVE PDG CODES only. Example of the syntax is {6 : 100} or *
# {6:100, 25:200} for multiple particles *
#***********************************************************************
  {} = pt_min_pdg ! Min pT for a massive particle
  {} = pt_max_pdg ! Max pT for a massive particle
  {} = mxx_min_pdg ! inv. mass for any pair of (anti)particles
#***********************************************************************
# For aMCfast+APPLGRID use in PDF fitting (http://amcfast.hepforge.org)*
#***********************************************************************
  0 = iappl ! aMCfast switch (0=OFF, 1=prepare grids, 2=fill grids)
#***********************************************************************

Question information

Language:
English Edit question
Status:
Answered
For:
MadGraph5_aMC@NLO Edit question
Assignee:
No assignee Edit question
Last query:
2020-09-25
Last reply:
2020-10-09

Can you try with 2.8.1 (with either python2 or python3)

I have fixed some issue on that version, so it is worth to try.

Cheers,

Olivier

Hannes (hannes3) said : #2

Hi,

I've tried again with 2.8.1 (python2) and get the same error.
It runs find when I generate e.g. p p > w+ > e+ vm instead of p p > w+. It doesn't seem to depend on the parameter I am using for reweighting (as, aew, gf).
That being said, it's not a big problem for us, it's just that one of our standard tests uses p p > w+ and crashes.

Cheers,
Hanes

I do not have time to look at this this week.

In the past one reason for such type of error was a LHAPDF issue where the pdf set within LHAPDF was too old (i.e. before the author patches their PDF) that was the case for the LO PDF nn23lo where the old lhapdf set was wrongly set to zero for a part of the phase-space (which was not the case for the internal pdf of MG5aMC).

If it is not a big problem, I guess that you can just wait that i try to reproduce the issue on my laptop.

Cheers,

Olivierr

Hi,

Thanks for your patience.
Here is the fix:
https://bazaar.launchpad.net/~maddevelopers/mg5amcnlo/2.8.2.py2/revision/310

Cheers,

olivier

Can you help with this problem?

Provide an answer of your own, or ask Hannes for more information if necessary.

To post a message you must log in.