When using FxFx merging, the number of events in the final output (e.g. HepMC) is smaller than the number of events requested in the run_card

Asked by jiuzhao

> I am trying to generate **Z+1j** events using
> `generate p p > mu+ mu- [QCD] @1` and
> `add process p p > mu+ mu- j [QCD] @2`.
> I am using the **FxFx merging** scheme, but only about **5800 out of 10000** events are produced.
> I attach the **run card** and **shower card** here for reference.
#***********************************************************************
# 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).
#***********************************************************************
# Output format
#***********************************************************************
  -1.0 = time_of_flight ! threshold (in mm) below which the invariant livetime is not written (-1 means not written)
  average = event_norm ! average/sum/bias. Normalization of the weight in the LHEF
#***********************************************************************
# 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 *
# 0 = no PDF *
# 1/-1 = proton/antiproton *
# 3/-3 = electron/positron with ISR/Beamstrahlung; *
# 4/-4 = muon/antimuon with ISR/Beamstrahlung; *
#***********************************************************************
  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.
  0 = pdfscheme ! the scheme of the input PDFs. 0->MSbar; 1->DIS
             ! 2->eta (leptonic); 3->beta (leptonic)
      ! 4->mixed (leptonic); 6->delta (leptonic)
                    ! if pdlabel==emela, this is set automatically
#***********************************************************************
# The following block is specific to lepton collisions (lpp=+-3) *
#***********************************************************************
  True = photons_from_lepton ! whether to include or not photons from
                              ! lepton ISR
#***********************************************************************
# 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!!!! *
#***********************************************************************
  PYTHIA8 = parton_shower
  1.0 = shower_scale_factor ! multiply default shower starting
                            ! scale by this factor
  False = mcatnlo_delta ! use MC@NLO-Delta matching, arXiv:2002.12716
                        ! (only with Pythia8309 or later)
#***********************************************************************
# 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
  False = fixed_QES_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 *
#***********************************************************************
  False = store_rwgt_info ! Store info for reweighting in LHE file
#***********************************************************************
# Customization of the code. List of files containing user hook function
#***********************************************************************
   = custom_fcts ! List of files containing user hook function
#***********************************************************************
# 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]. *
#***********************************************************************
  3 = 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. *
# - If gamma_is_j, photons are also clustered with jets. *
# Otherwise, they will be treated as tagged particles and photon *
# isolation will be applied. Note that photons in the real emission *
# will always be clustered with QCD partons. *
# - 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)
  1.0 = jetradius ! The radius parameter for the jet algorithm
  9.0 = ptj ! Min jet transverse momentum
  -1.0 = etaj ! Max jet abs(pseudo-rap) (a value .lt.0 means no cut)
  False = gamma_is_j ! Wether to cluster photons as jets or not
#***********************************************************************
# 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
#***********************************************************************
# Fermion-photon recombination parameters *
# If Rphreco=0, no recombination is performed *
#***********************************************************************
  0.1 = rphreco ! Minimum fermion-photon distance for recombination
  -1.0 = etaphreco ! Maximum abs(pseudo-rap) for photons to be recombined (a value .lt.0 means no cut)
  False = lepphreco ! Recombine photons and leptons together
  False = quarkphreco ! Recombine photons and quarks together
#***********************************************************************
# Photon-isolation cuts, according to hep-ph/9801442 *
# Not applied if gamma_is_j *
# 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
#***********************************************************************
# Use PineAPPL to generate PDF-independent fast-interpolation grid *
# (https://zenodo.org/record/3992765#.X2EWy5MzbVo) *
#***********************************************************************
  False = pineappl ! PineAPPL switch
#***********************************************************************
# Folding parameters for S-events to reduce the number of negatively *
# weighted events. Allowed values are 1, 2, 4 or 8 for each of the *
# three variables. Typically, folding in xi_i or y_ij results in the *
# largest reduction of negatively weighted events. (arXiv:2002.12716) *
#***********************************************************************
  1, 1, 1 = folding ! correspond to folding in xi_i, y_ij, and phi_i
#***********************************************************************

#***********************************************************************
# MadGraph5_aMC@NLO *
# *
# shower_card.dat aMC@NLO *
# *
# This file is used to set the parameters for the shower. *
# *
# Some notation/conventions: *
# *
# Lines starting with a hash (#) are info or comments *
# *
# mind the format: variable = value # comment *
#***********************************************************************
#
#***********************************************************************
# Shower settings *
#***********************************************************************
# Number of events, jobs, errors, and random seeds *
#***********************************************************************
nevents = -1 # N evts to shower (< 0 = all)
nsplit_jobs = 1 # N jobs to run in parallel (< 100!!)
combine_td = T # combine the topdrawer/HwU files if nsplit_jobs>1
maxprint = 2 # N evts to print in the log
maxerrs = 0.1 # max fraction of errors
rnd_seed = 0 # 1st random seed (0 = default)
rnd_seed2 = 0 # 2nd random seed (0 = default) !ONLY FOR HWERIG6!
#***********************************************************************
# PDFs and non-perturbative modelling *
#***********************************************************************
pdfcode = 1 # 0 = internal, 1 = same as NLO, other = lhaglue
ue_enabled = F # underlying event
hadronize = T # hadronisation on/off !IGNORED BY HERWIG6!
lambda_5 = -1.0 # Lambda_5 (< 0 = default) !IGNORED BY PYTHIA8!
#***********************************************************************
# Stable or unstable particles *
#***********************************************************************
b_stable = F # set B hadrons stable
pi_stable = T # set pi0's stable
wp_stable = F # set w+'s stable
wm_stable = F # set w-'s stable
z_stable = F # set z0's stable
h_stable = F # set Higgs' stable
tap_stable = F # set tau+'s stable
tam_stable = F # set tau-'s stable
mup_stable = F # set mu+'s stable
mum_stable = F # set mu-'s stable
#***********************************************************************
# Mass of the b quark *
#***********************************************************************
b_mass = -1.0 # if < 0 = read from SubProcesses/MCmasses_*.inc
#***********************************************************************
# Special settings *
#***********************************************************************
is_4lep = F # T if 4-lepton production !ONLY FOR PYTHIA6!
is_bbar = F # T if bb~ production !ONLY FOR HERWIG6!
#***********************************************************************
# Pythia8 Specific Options (FxFx and advanced options)
#***********************************************************************
Qcut = 20.0 # Merging scale for FxFx
njmax = 1 # Maximal multiplicity in the merging (fxFx).
# # -1 means guessed from the process definition
qed_shower = T # T = enable QED shower for Q and L
primordialkt = F # T = enable primordial parton k_T
pythia8_options = {} # Dictionary specifying any additional entry in the pythia8 command file
                       # Warning changing some parameter will break NLO accuracy.
#***********************************************************************
# Matrix-element corrections !ONLY FOR PYTHIA8!
#***********************************************************************
space_shower_me_corrections = F # MECs for ISR
time_shower_me_corrections = T # MECs for FSR
time_shower_me_extended = F # see Pythia8 manual as well as
time_shower_me_after_first = F # hep-ph/2308.06389 for details
#***********************************************************************
# Decay channels *
#***********************************************************************
# Syntax for HERWIG6 *
# DM_I = M > D1 D2 @ BR @ ME *
# corresponding to call to HWMODK(M,BR,ME,D1,D2) *
# I < 100, M is the decaying resonance, D1, D2, ... are the decay *
# products (up to five), BR is the branching ratio and ME is the type *
# of matrix element to be used in the decay. *
# BR's are correctly understood only if they add up to 1, and only if *
# no more than three modes are required for a given resonance. *
# WARNING: the order of decay products in > 2-body decays IS RELEVANT. *
# *
# Syntax for PYTHIA6 *
# DM_I = M > D1 D2 @ BR @ ME *
# WARNING: turning hadronisation off disables top decays *
# WARNING: 1 -> n decays (with n > 2) are handled through a sequence *
# of 1 -> 2 decays. *
# WARNING: entries BR and ME are ignored *
# *
# Syntax for HERWIG++ *
# DM_I = M > D1 D2 @ BR @ ME *
# WARNING: entries BR and ME are ignored *
# *
# Syntax for PYTHIA8 *
# DM_I = M:onIfAny = D1 D2 *
# or similar, according to the offical PYTHIA8 decay syntax, see *
# the online PYTHIA8 manual *
# WARNING: 1 -> n decays (with n > 2) are handled through a sequence *
# of 1 -> 2 decays. *
# *
# Examples *
# Z -> e+ e- or mu+ mu- with BR = 0.5 each, HERWIG6 *
# DM_1 = 23 > -11 11 @ 0.5d0 @ 100
# DM_2 = 23 > -13 13 @ 0.5d0 @ 100
# H -> ta+ ta- with BR = 1, HERWIG6 or HERWIG++ *
# DM_3 = 25 > -15 15 @ 1.0d0 @ 0
# t -> ve e+ b with BR = 1, HERWIG6 or HERWIG++ *
# DM_4 = 6 > 12 -11 5 @ 1d0 @ 100
# t -> ve e+ b with BR = 1, PYTHIA6 *
# DM_5 = 6 > 24 5 @ 1d0 @ 100
# DM_6 = 24 > 12 -11 @ 1d0 @ 100
# W+ -> ve e+, W- -> vm~ mu-, PYTHIA8 *
# DM_1 = 24:onMode = off
# DM_2 = 24:onPosIfAny = 11 12
# DM_3 = 24:onNegIfAny = 13 14
# W+ -> ve e+, W- -> ve~ e- and vm~ mu-, PYTHIA8 *
# DM_1 = 24:onMode = off
# DM_2 = 24:onIfAny = 11 12
# DM_3 = 24:onNegIfAny = 13 14
#***********************************************************************
# Extra libraries/analyses *
#***********************************************************************
# The following lines need to be changed if the user does not want to *
# create a StdHEP/HepMC file, but to directly run an own analysis (to *
# be placed in HWAnalyzer or analogous MCatNLO subfolders). *
# Please use files in those folders as examples. *
# Remember that if your analysis uses hbook or is in the HwU format, *
# you must also add to hbook.o or HwU.o to the ANALYSE list as well. *
#***********************************************************************
EXTRALIBS = pythia8 z dl stdc++ # Extra-libraries (not LHAPDF)
                                 # Default: "stdhep Fmcfio"
                                 # PYTHIA > 8.200 may require library dl
EXTRAPATHS = ../lib /home/qdhan/MadGraph/MG5_aMC_v3_6_2/HEPTools/pythia8/lib l,-rpath,/home/qdhan/MadGraph/MG5_aMC_v3_6_2/HEPTools/pythia8/lib /home/qdhan/MadGraph/MG5_aMC_v3_6_2/HEPTools/zlib/lib l,-rpath,/home/qdhan/MadGraph/MG5_aMC_v3_6_2/HEPTools/zlib/lib # Path to the extra-libraries
                                 # Default: "../lib"
INCLUDEPATHS = # Path to header files needed by c++
                                 # Dir names separated by white spaces
ANALYSE = # User's analysis and histogramming
                                 # routines (please use .o as extension
                                 # and use spaces to separate files).
                                 # If the HwU.o files has to be linked,
                                 # it should be put *first*.

Question information

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

Hi,

So madgraph will generate 10k events before the parton-shower (so at the LHE event)
and then the showering will occcur (with 100% efficiency) and at the end of the showering the FxFx veto that removes the double counting of your process definition will remove some of the events (typically around 50%).

So your final HepMC will indeed have less event than your LHE/run_card request (and we do not know in advance).

So if what I describe above is what you observe then this is the normal behavior for FxFx and not a bug.

Cheers,

Olivier

Revision history for this message
jiuzhao (jiuzhao-136) said :
#2

Hi Olivier,

thank you very much for your reply and the clear explanation — that answers my main question.

I have one follow-up question: when computing the final cross section or normalizing distributions, should I normalize using the original 10,000 events requested in the run_card (LHE level), or using the actual number of events written to the final HepMC file (~5,800 events) after the FxFx veto?

Thank you very much for your help.

Best wishes,
Jiuzhao

Revision history for this message
Best Sihyun Jeon (shjeon) said :
#3

the events that are vetoed by fxfx jet merging are meaningless events.
you should take the cross section and nevents after the jet merging to normalize

Revision history for this message
jiuzhao (jiuzhao-136) said :
#4

Thanks Sihyun Jeon, that solved my question.