How to minimize statistical uncertainty

Asked by CG on 2018-12-04

Hi,

I want to compute cross sections in NLO QCD with statistical uncertainties only.
In the runcard.dat it is possible to set the required accuracy using the "req_acc" keyword.
However, I observed that for small values of this accuracy, the stat. uncertainties of the resulting cross sections are larger than the required value. For example, I tried to set the required accuracy to 0.0005 (0.05%) but received cross sections with varying uncertainties, some up to 1.7%. Naively, I thought it would be possible to arbitrarily reduce the stat. uncertainties by simply calculating long enough. Is there any explanation for this behaviour or is there another way to get smaller uncertainties?

Here is the banner file of one of the runs:

<LesHouchesEvents version="3.0">
<header>
<!--
#*********************************************************************
# *
# MadGraph5_aMC@NLO *
# *
# Going Beyond *
# *
# http://madgraph.hep.uiuc.edu *
# http://madgraph.phys.ucl.ac.be *
# http://amcatnlo.cern.ch *
# *
# The MadGraph5_aMC@NLO team *
# *
#....................................................................*
# *
# This file contains all the information necessary to reproduce *
# the events generated: *
# *
# 1. software version *
# 2. proc_card : code generation info including model *
# 3. param_card : model primary parameters in the LH format *
# 4. run_card : running parameters (collider and cuts) *
# 5. pythia_card : present only if pythia has been run *
# 6. pgs_card : present only if pgs has been run *
# 7. delphes_cards : present only if delphes has been run *
# *
# *
#*********************************************************************
-->
<MGVersion>
2.5.2
</MGVersion>
<MGRunCard>
#***********************************************************************
# 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. *
#***********************************************************************
#
#*******************
# Running parameters
#*******************
#
#***********************************************************************
# Tag name for the run (one word) *
#***********************************************************************
  testrun = 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 *
#***********************************************************************
  100000 = nevents ! Number of unweighted events requested
  0.0005 = 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 ! average or sum
#***********************************************************************
# 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)
  3500.0 = ebeam1 ! beam 1 energy in GeV
  3500.0 = ebeam2 ! beam 2 energy in GeV
#***********************************************************************
# PDF choice: this automatically fixes also alpha_s(MZ) and its evol. *
#***********************************************************************
  lhapdf = pdlabel ! PDF set
  13100 = 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!!!! *
#***********************************************************************
  HERWIGPP = 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) *
#***********************************************************************
  True = fixed_ren_scale ! if .true. use fixed ren scale
  True = fixed_fac_scale ! if .true. use fixed fac scale
  172.5 = mur_ref_fixed ! fixed ren reference scale
  172.5 = muf_ref_fixed ! fixed fact reference scale
  0 = 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
  False = 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 *
#***********************************************************************
  False = 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.4 = jetradius ! The radius parameter for the jet algorithm
  1.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)
#***********************************************************************
# For aMCfast+APPLGRID use in PDF fitting (http://amcfast.hepforge.org)*
#***********************************************************************
  0 = iappl ! aMCfast switch (0=OFF, 1=prepare grids, 2=fill grids)
#***********************************************************************
#*********************************************************************
# Additional parameter
#*********************************************************************
  1.0 = muf1_over_ref # hidden parameter
  1.0 = muf2_over_ref # hidden parameter
  1.0 = qes_over_ref # hidden parameter
  244601 = pdf_set_min # hidden parameter
  244700 = pdf_set_max # hidden parameter
  0.5 = rw_fscale_down # hidden parameter
  172.5 = qes_ref_fixed # hidden parameter
  True = fixed_qes_scale # hidden parameter
  0.5 = rw_rscale_down # hidden parameter
  172.5 = muf1_ref_fixed # hidden parameter
  5 = maxjetflavor # hidden parameter
  2.0 = rw_fscale_up # hidden parameter
  2.0 = rw_rscale_up # hidden parameter
  172.5 = muf2_ref_fixed # hidden parameter
</MGRunCard>
<slha>
######################################################################
## PARAM_CARD AUTOMATICALY GENERATED BY MG5 ####
######################################################################
###################################
## INFORMATION FOR DIM6
###################################
BLOCK DIM6 #
      1 1.000000e+03 # lambda
      2 1.000000e+00 # ccc
      3 1.000000e-10 # ctg
      4 1.000000e-10 # cft
      5 1.000000e-10 # cfb
      6 1.000000e-10 # cfq1
      7 1.000000e-10 # cfq3
      8 -3.000000e+01 # ctw
      9 1.000000e-10 # ctb
      10 -3.000000e+01 # cff
      11 3.000000e+01 # cbw
      12 1.725000e+02 # muprime
###################################
## INFORMATION FOR LOOP
###################################
BLOCK LOOP #
      1 9.118800e+01 # mu_r
###################################
## INFORMATION FOR MASS
###################################
BLOCK MASS #
      6 1.725000e+02 # mt
      15 1.777000e+00 # mta
      23 9.118760e+01 # mz
      25 1.250000e+02 # mh
      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
      5 0.000000e+00 # b : 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 7.982436e+01 # w+ : cmath.sqrt(mz__exp__2/2. + cmath.sqrt(mz__exp__4/4. - (aew*cmath.pi*mz__exp__2)/(gf*sqrt__2)))
      9000002 9.118760e+01 # ghz : mz
      9000003 7.982436e+01 # ghwp : mw
      9000004 7.982436e+01 # ghwm : mw
###################################
## INFORMATION FOR SMINPUTS
###################################
BLOCK SMINPUTS #
      1 1.279000e+02 # aewm1
      2 1.166370e-05 # gf
      3 1.184000e-01 # as
###################################
## INFORMATION FOR YUKAWA
###################################
BLOCK YUKAWA #
      6 1.725000e+02 # ymt
      15 1.777000e+00 # ymtau
###################################
## INFORMATION FOR DECAY
###################################
DECAY 6 0.000000e+00 # wt
DECAY 23 2.495200e+00 # wz
DECAY 24 2.085000e+00 # ww
DECAY 25 4.070000e-03 # wh
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
DECAY 9000002 2.495200e+00 # ghz : wz
DECAY 9000003 2.085000e+00 # ghwp : ww
DECAY 9000004 2.085000e+00 # ghwm : ww
</slha>
<run_settings>
fixed_order = OFF
reweight = OFF
madspin = OFF
shower = OFF
madanalysis5 = Not installed
order = NLO
</run_settings>
</header>
</LesHouchesEvents>

Question information

Language:
English Edit question
Status:
Answered
For:
MadGraph5_aMC@NLO Edit question
Assignee:
Rikkert Frederix Edit question
Last query:
2018-12-04
Last reply:
2018-12-07
Rikkert Frederix (frederix) said : #1

Hello,

The req_acc value used to set the accuracy for the cross section, is actually the accuracy for the absolute value of the cross section. The latter is what needs to be precise for correct event generation. That means, if you have a process with many negative weights, that the actual accuracy of the real cross section can be quite a bit lower than the requested accuracy. Furthermore, the accuracy is limited to 0.001, which is enough for many millions of events.

If you are just interested in the total cross section, it's much more efficient to use fixed-order running and use the req_acc_fo parameter of the run_card.dat

Best,
Rikkert

CG (cgwd) said : #2

Hello, thanks for your answer.

Just to make sure I understand correctly:
If I want to have very precise predictions for total cross sections, I should use the fixed-order runs and
set req_acc_fo to small values? I assume this accuracy is also limited to 0.001 ?

If I then want to have equally accurate events , would I just have to scale the events of a normal run with the total cross section from the fixed-order run?

Rikkert Frederix (frederix) said : #3

Hello,

req_acc_fo can be set arbitrarily small to get highly precise results.

There is no real reason to rescale the events: the uncertainties coming from cancelations between positively and negatively weighted events and limited statistics for differential distributions will not really go down by this rescaling. However, it also wouldn't harm.

Best regards,
Rikkert

Can you help with this problem?

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

To post a message you must log in.