"ERROR: NOT ENOUGH POINTS PASS THE CUTS" when launching VBS at fixed order NLO with cuts in jets

Asked by matteo maltoni

Dear MadGraph experts,

I'm trying to launch a fixed order generation at NLO for the process (p p > l+ l- j j QCD=0 NP=2 [QCD]). The job works properly, until I add the following cuts:

- Minimum invariant mass for the jets M[jj]>1000 GeV
- Minimum rapidity difference among the jets |Delta y| [jj]>2
- Minimum pT for leading and subleading jets at 85 and 80 GeV

The error I find at the end of the log files is:

ERROR: NOT ENOUGH POINTS PASS THE CUTS. RESULTS CANNOT BE TRUSTED. LOOSEN THE GENERATION CUTS, OR ADAPT SET_TAU_MIN() IN SETCUTS.F ACCORDINGLY.

although the same cuts give no problems when I generate events at LO.
I tried to switch off some of them, but the error occurs anyway.
This is the way I implemented the cuts in the cuts.f file, just after the call to fastjet:

         if(mjj.gt.0d0) then
     if(invm2_04(pjet(0,1),pjet(0,2),1d0).lt.mjj**2) then
               passcuts_user=.false.
               return
            endif
         endif
         if(dyjj.gt.0d0) then
            if(getdrapv4(pjet(0,1),pjet(0,2)).lt.dyjj) then
               passcuts_user=.false.
        return
            endif
  endif
  if(ptj1min.gt.0d0 .and. pt_04(pjet(0,1)).lt.ptj1min) then
     passcuts_user=.false.
     return
  endif
  if(ptj2min.gt.0d0 .and. pt_04(pjet(0,2)).lt.ptj2min) then
     passcuts_user=.false.
     return
  endif

Do you have any possible solution?
I attach the run_card below.

Thank you,

Matteo

#*******************
# 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.005 = 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 *
#***********************************************************************
 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. *
# - If gamma_is_j, photons are also clustered *
# - 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
 25.0 = ptj ! Min jet transverse momentum
 5.0 = etaj ! Max jet abs(pseudo-rap) (a value .lt.0 means no cut)
 4.4 = yjmax
 True = gamma_is_j! Wether to cluster photons as jets or not
 1000.0 = mjj
  2.0 = dyjj
 85.0 = ptj1min
 80.0 = ptj2min
#***********************************************************************
# Cuts on the charged leptons (e+, e-, mu+, mu-, tau+ and tau-) *
# More specific cuts can be specified in SubProcesses/cuts.f *
#***********************************************************************
  25.0 = ptl ! Min lepton transverse momentum
  2.4 = 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
  81.2 = mll_sf ! Min inv. mass of all opp. sign same-flavor lepton pairs
  101.2 = mll_max_sf
  20.0 = ptll
  0.4 = drjl
#***********************************************************************
# 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)
 True = lepphreco ! Recombine photons and leptons together
 True = 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
#***********************************************************************

Question information

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

Implementing cuts can destroy the way the phase-space integrator works (even at LO).
If you do implement cuts, you might also need to change the way the phase-space integration is performed
(and the easiest way --if it fit your need -- is to change the set_tau_min to increase the minimal energy of the process)

So did you try to change the phase-space integrator?

Cheers,

Olivier

> On 14 Jun 2021, at 16:50, matteo maltoni <email address hidden> wrote:
>
> New question #697529 on MadGraph5_aMC@NLO:
> https://answers.launchpad.net/mg5amcnlo/+question/697529
>
> Dear MadGraph experts,
>
> I'm trying to launch a fixed order generation at NLO for the process (p p > l+ l- j j QCD=0 NP=2 [QCD]). The job works properly, until I add the following cuts:
>
> - Minimum invariant mass for the jets M[jj]>1000 GeV
> - Minimum rapidity difference among the jets |Delta y| [jj]>2
> - Minimum pT for leading and subleading jets at 85 and 80 GeV
>
> The error I find at the end of the log files is:
>
> ERROR: NOT ENOUGH POINTS PASS THE CUTS. RESULTS CANNOT BE TRUSTED. LOOSEN THE GENERATION CUTS, OR ADAPT SET_TAU_MIN() IN SETCUTS.F ACCORDINGLY.
>
> although the same cuts give no problems when I generate events at LO.
> I tried to switch off some of them, but the error occurs anyway.
> This is the way I implemented the cuts in the cuts.f file, just after the call to fastjet:
>
> if(mjj.gt.0d0) then
> if(invm2_04(pjet(0,1),pjet(0,2),1d0).lt.mjj**2) then
> passcuts_user=.false.
> return
> endif
> endif
> if(dyjj.gt.0d0) then
> if(getdrapv4(pjet(0,1),pjet(0,2)).lt.dyjj) then
> passcuts_user=.false.
> return
> endif
> endif
> if(ptj1min.gt.0d0 .and. pt_04(pjet(0,1)).lt.ptj1min) then
> passcuts_user=.false.
> return
> endif
> if(ptj2min.gt.0d0 .and. pt_04(pjet(0,2)).lt.ptj2min) then
> passcuts_user=.false.
> return
> endif
>
> Do you have any possible solution?
> I attach the run_card below.
>
> Thank you,
>
> Matteo
>
>
> #*******************
> # 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.005 = 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 *
> #***********************************************************************
> 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. *
> # - If gamma_is_j, photons are also clustered *
> # - 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
> 25.0 = ptj ! Min jet transverse momentum
> 5.0 = etaj ! Max jet abs(pseudo-rap) (a value .lt.0 means no cut)
> 4.4 = yjmax
> True = gamma_is_j! Wether to cluster photons as jets or not
> 1000.0 = mjj
> 2.0 = dyjj
> 85.0 = ptj1min
> 80.0 = ptj2min
> #***********************************************************************
> # Cuts on the charged leptons (e+, e-, mu+, mu-, tau+ and tau-) *
> # More specific cuts can be specified in SubProcesses/cuts.f *
> #***********************************************************************
> 25.0 = ptl ! Min lepton transverse momentum
> 2.4 = 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
> 81.2 = mll_sf ! Min inv. mass of all opp. sign same-flavor lepton pairs
> 101.2 = mll_max_sf
> 20.0 = ptll
> 0.4 = drjl
> #***********************************************************************
> # 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)
> True = lepphreco ! Recombine photons and leptons together
> True = 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
> #***********************************************************************
>
> --
> You received this question notification because you are an answer
> contact for MadGraph5_aMC@NLO.

Revision history for this message
matteo maltoni (matteo-maltoni) said :
#2

Dear Olivier,

Thank you for your prompt answer.
I did not try to change the integrator, because the cuts are working at LO.

Should I try to change one of these values:

            taumin(iFKS,ichan)=0.d0
            taumin_s(iFKS,ichan)=0.d0
            taumin_j(iFKS,ichan)=0.d0

 at line 260 of the setcuts.f file? To which value?

Best,

Matteo

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) said :
#3

Maybe you can start by reading this thread:
https://answers.launchpad.net/mg5amcnlo/+question/446723

If this is not enough then we will need to ask someone more expert than me in NLO computation.

Cheers,

Olivier

Revision history for this message
matteo maltoni (matteo-maltoni) said :
#4

Dear Olivier,

Thank you for the link, it's been extremely useful.
I managed to fix the cuts on the pTs of the leading and subleading jets, by setting taumin_j(iFKS,ichan), at line 262, to the value 85+80+20=185 GeV, since I also implemented a cut on pT[ll] > 20 GeV.

Unluckily, when I try to add the cut on M[jj], by setting taumin_j(iFKS,ichan) to values higher than

sqrt(85**2 + (1000/2)**2) + sqrt(80**2 + (1000/2)**2) + 20 = 1033.5 GeV

I still get the same error. I have two questions about this:

1) In the thread you sent me, Rikkert claims the problem is the related to EW loop corrections missing in the VBF generation; is that issue solved in v3.1?

2) I bypassed the problem by adding the cut on M[jj] in the analysis_HwU.f file, in the part in which the histograms are filled, by adding the line

if(mjj.lt.1d3) cycle

Do you know if there's a way to know how much cross-section I loose by imposing this cut there, with respect to the final result given by MadGraph?

Best,

Matteo

Revision history for this message
Best Rikkert Frederix (frederix) said :
#5

Dear Matteo,

1. Yes, with v3.1 the issues with the EW loops are solved (at least for fixed order running; not when doing matching to a parton shower).

2. The only way would be to simply fill a plot with a single bin that corresponds to the total cross section and then checking how much that differs from the final result given by MadGraph. What might help here is to introduce a "bias_weight" function (bottom of SubProcesses/cuts.f file) to smoothly bias the phase-space generation to larger M[jj] values.

Best,
Rikkert

Revision history for this message
matteo maltoni (matteo-maltoni) said :
#6

Thanks Rikkert Frederix, that solved my question.