Mjj and Eta cuts at NLO process

Asked by Jack Y. Araz on 2020-09-23

Dear Olivier

I'm trying to implement Mjj and eta cuts on clustered jets in a simple p p > j j [QCD] process. Using Mg5 v3.0.3-neworders with default loop sm model. After the call for fastjet around L277 (right after "122 continue" line) I wrote the following; (everything is default in the run card)

      if ((invm2_04(pjet(0,1),pjet(0,2),1d0).lt.2200d0**2)
     & .or. (njet.lt.2)
     & .or. (abs(eta_04(pjet(0,1))).gt.3d0)
     & .or. (abs(eta_04(pjet(0,2))).gt.3d0)
     & ) then
          passcuts_user=.false.
          return
       endif

However, it tries to run for 4 cores (max number of the core is set 4) and then it stops running without crashing until I stop it, (attached below). Could you please point the mistake that I'm making here, or could you let me know if there is a better way of doing it?

Thanks
Best regards
Jack

----------------------------------------

INFO: Idle: 49, Running: 4, Completed: 0 [ current time: 14h49 ]
WARNING: program /mt/batch/jaraz/3.0.3-neworders/DiJet_SM_NLO_test/SubProcesses/P0_gg_uux/ajob1 1.0 F 0 0 launch ends with non zero status: 1. Stop all computation
INFO: Idle: 49, Running: 2, Completed: 2 [ 4.8s ]
INFO: Idle: 49, Running: 0, Completed: 4 [ 5s ]
^CCommand "launch " interrupted with error:
Exception : program /mt/batch/jaraz/3.0.3-neworders/DiJet_SM_NLO_test/SubProcesses/P0_gg_uux/ajob1 1.0 F 0 0 launch ends with non zero status: 1. Stop all computation
Please report this bug on https://bugs.launchpad.net/mg5amcnlo
More information is found in '/mt/batch/jaraz/3.0.3-neworders/DiJet_SM_NLO_test/run_01_tag_1_debug.log'.
Please attach this file to your report.

----------------------------------------log file:

Traceback (most recent call last):
  File "/mt/batch/jaraz/3.0.3-neworders/DiJet_SM_NLO_test/bin/internal/extended_cmd.py", line 1518, in onecmd
    return self.onecmd_orig(line, **opt)
  File "/mt/batch/jaraz/3.0.3-neworders/DiJet_SM_NLO_test/bin/internal/extended_cmd.py", line 1467, in onecmd_orig
    return func(arg, **opt)
  File "/mt/batch/jaraz/3.0.3-neworders/DiJet_SM_NLO_test/bin/internal/amcatnlo_run_interface.py", line 1775, in do_launch
    evt_file = self.run(mode, options)
  File "/mt/batch/jaraz/3.0.3-neworders/DiJet_SM_NLO_test/bin/internal/amcatnlo_run_interface.py", line 2002, in run
    self.run_all_jobs(jobs_to_run,mint_step,fixed_order=False)
  File "/mt/batch/jaraz/3.0.3-neworders/DiJet_SM_NLO_test/bin/internal/amcatnlo_run_interface.py", line 2208, in run_all_jobs
    self.wait_for_complete(run_type)
  File "/mt/batch/jaraz/3.0.3-neworders/DiJet_SM_NLO_test/bin/internal/amcatnlo_run_interface.py", line 4848, in wait_for_complete
    self.cluster.wait(self.me_dir, update_status)
  File "/mt/batch/jaraz/3.0.3-neworders/DiJet_SM_NLO_test/bin/internal/cluster.py", line 844, in wait
    raise Exception, self.fail_msg
Exception: program /mt/batch/jaraz/3.0.3-neworders/DiJet_SM_NLO_test/SubProcesses/P0_gg_uux/ajob1 1.0 F 0 0 launch ends with non zero \
status: 1. Stop all computation
Value of current Options:
              text_editor : emacs -nw
              web_browser : None
        cluster_temp_path : None
                  timeout : 60
       cluster_local_path : None
            cluster_queue : None
         madanalysis_path : None
                   lhapdf : /mt/batch/jaraz/3.0.3-neworders/HEPTools/lhapdf6/bin/lhapdf-config
             cluster_size : 100
           cluster_memory : None
    cluster_status_update : (600, 30)
             cluster_time : None
            f2py_compiler : None
                    ninja : /mt/batch/jaraz/3.0.3-neworders/HEPTools/lib
               hepmc_path : None
mg5amc_py8_interface_path : /mt/batch/jaraz/3.0.3-neworders/HEPTools/MG5aMC_PY8_interface
             pythia8_path : /mt/batch/jaraz/3.0.3-neworders/HEPTools/pythia8
                hwpp_path : None
   automatic_html_opening : False
       cluster_retry_wait : 300
             stdout_level : None
          pythia-pgs_path : None
                 mg5_path : /mt/batch/jaraz/3.0.3-neworders
                  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 : /mt/batch/jaraz/3.0.3-neworders/HEPTools/lib
              auto_update : 7
         cluster_nb_retry : 1
               eps_viewer : None
             syscalc_path : None
                    golem : None
             cpp_compiler : None
      notification_center : True
                 run_mode : 2

Question information

Language:
English Edit question
Status:
Solved
For:
MadGraph5_aMC@NLO Edit question
Assignee:
Rikkert Frederix Edit question
Solved by:
Jack Y. Araz
Solved:
2020-09-24
Last query:
2020-09-24
Last reply:
2020-09-24
Rikkert Frederix (frederix) said : #1

Dear Jack,

The code should have created some log.txt files in the <your_process>/SubProcesses/P*/*/ directories. What is the error message at the end of these files?

best,
Rikkert

Jack Y. Araz (jackaraz) said : #2

Dear Rikkert

Thanks for the quick response. I’m attaching the log file under “<process>/SubProcesses/P0_gg_uux/GF1.0” The error at the end is as follows

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

Best regards
Jack

CutTools - V1.9.3
OneLOop- v3.6
Ninja - v1.1.0

 INFO: MadLoop read these parameters from ../MadLoop5_resources/MadLoopParams.dat
 ===============================================================
  > MLReductionLib = 6|7|1
  > CTModeRun = -1
  > MLStabThres = 1.0000000000000000E-003
  > NRotations_DP = 0
  > NRotations_QP = 0
  > CTStabThres = 1.0000000000000000E-002
  > CTLoopLibrary = 2
  > CTModeInit = 1
  > CheckCycle = 3
  > MaxAttempts = 10
  > UseLoopFilter = F
  > HelicityFilterLevel = 2
  > ImprovePSPoint = 2
  > DoubleCheckHelicityFilter = T
  > LoopInitStartOver = F
  > HelInitStartOver = F
  > ZeroThres = 1.0000000000000001E-009
  > OSThres = 1.0000000000000000E-008
  > WriteOutFilters = T
  > UseQPIntegrandForNinja = T
  > UseQPIntegrandForCutTools = T
  > IREGIMODE = 2
  > IREGIRECY = T
  > COLLIERMode = 1
  > COLLIERRequiredAccuracy = 1.0000000000000000E-008
  > COLLIERCanOutput = F
  > COLLIERComputeUVpoles = T
  > COLLIERComputeIRpoles = T
  > COLLIERGlobalCache = -1
  > COLLIERUseCacheForPoles = F
  > COLLIERUseInternalStabilityTest = T
 ===============================================================

 VIRT: keeping split order 1

 Sum of all split-orders
 ---- POLES CANCELLED ----
  COEFFICIENT DOUBLE POLE:
        MadFKS: -2.1496554123504798E-002 OLP: -2.1496554123504777E-002
  COEFFICIENT SINGLE POLE:
        MadFKS: -9.3054485778657769E-003 OLP: -9.3054485778657492E-003
  FINITE:
           OLP: 9.8179311548346419E-003
           BORN: 0.18704166072324019
  MOMENTA (Exyzm):
           1 1593.9135870216242 0.0000000000000000 0.0000000000000000 1593.9135870216242 0.0000000000000000
           2 1593.9135870216242 -0.0000000000000000 -0.0000000000000000 -1593.9135870216242 0.0000000000000000
           3 1593.9135870216242 1391.7445474132749 693.47591931207512 -350.28386627395719 0.0000000000000000
           4 1593.9135870216242 -1391.7445474132749 -693.47591931207512 350.28386627395719 0.0000000000000000
 Not doing MC over helicities: HelForMCoverHels=-1

 Splitorders 2
       QCD: 6
       QED: 0
 ---- POLES CANCELLED ----
  COEFFICIENT DOUBLE POLE:
        MadFKS: -2.1496554123504798E-002 OLP: -2.1496554123504777E-002
  COEFFICIENT SINGLE POLE:
        MadFKS: -9.3054485778657752E-003 OLP: -9.3054485778657492E-003
 orders_tag_plot= 6 for QCD,QED, = 6 , 0 ,
 REAL 1: keeping split order 1
 REAL 6: keeping split order 1
 REAL 7: keeping split order 1
 REAL 8: keeping split order 1
 REAL 9: keeping split order 1
 REAL 2: keeping split order 1
 REAL 3: keeping split order 1
 REAL 4: keeping split order 1
 REAL 5: keeping split order 1
 ERROR: NOT ENOUGH POINTS PASS THE CUTS. RESULTS CANNOT BE TRUSTED. LOOSEN THE GENERATION CUTS, OR ADAPT SET_TAU_MIN() IN SETCUTS.F ACCORDINGLY.
Time in seconds: 5

> On Sep 24, 2020, at 9:15 AM, Rikkert Frederix <email address hidden> wrote:
>
> Your question #693053 on MadGraph5_aMC@NLO changed:
> https://answers.launchpad.net/mg5amcnlo/+question/693053
>
> Status: Open => Needs information
>
> Rikkert Frederix requested more information:
> Dear Jack,
>
> The code should have created some log.txt files in the
> <your_process>/SubProcesses/P*/*/ directories. What is the error message
> at the end of these files?
>
> best,
> Rikkert
>
> --
> To answer this request for more information, you can either reply to
> this email or enter your reply at the following page:
> https://answers.launchpad.net/mg5amcnlo/+question/693053
>
> You received this question notification because you asked the question.

Rikkert Frederix (frederix) said : #3

Hello Jack,

Ok, it seems that the cuts you put are too stringent for the default code to work. In practice this means that you have to update the tau-min values (which help the phase-space generator to throw more phase-space points where they pass the cuts) in SubProcesses/setcuts.f.

The easiest way to deal with this issue is to hack the 'set_tau_min' subroutine in SubProcesses/setcuts.f. Essentially, you have to set the 'taumin_j(iFKS)' variable to minimal energy (as in sqrt(s-hat)) for the Born level contribution to pass the cuts. For example, if you require 2 jets with an invariant mass of at least 2200 GeV. The place is around line 419, just before the line
            tau_lower_bound=taumin_j(iFKS)**2/stot

Hence, you would have something like:

...
            enddo
            stot = 4d0*ebeam(1)*ebeam(2)
            tau_Born_lower_bound=taumin(iFKS)**2/stot

            taumin_j(iFKS) = 2200d0

            tau_lower_bound=taumin_j(iFKS)**2/stot
c
c Also find the minimum lower bound if all internal s-channel particles
c were on-shell
...

Let me know if this works.

Best regards,
Rikkert

Jack Y. Araz (jackaraz) said : #4

Dear Rikkert

My setcuts.f was slightly different so I modified setcuts.f as follows;

from L420

            stot = 4d0*ebeam(1)*ebeam(2)
            tau_Born_lower_bound=taumin(iFKS,ichan)**2/stot

            taumin_j(iFKS,ichan)=2200d0

            tau_lower_bound=taumin_j(iFKS,ichan)**2/stot

I guess this is just due to the version of the mg5. However, I’m still getting exactly the same error in the log.txt. I also increased taumin_j to 3 TeV just to see if it will work but I still got the same error unfortunately.

Best regards


Jack Y. Araz

> On Sep 24, 2020, at 12:30 PM, Rikkert Frederix <email address hidden> wrote:
>
> Your question #693053 on MadGraph5_aMC@NLO changed:
> https://answers.launchpad.net/mg5amcnlo/+question/693053
>
> Status: Open => Answered
>
> Rikkert Frederix proposed the following answer:
> Hello Jack,
>
> Ok, it seems that the cuts you put are too stringent for the default
> code to work. In practice this means that you have to update the tau-min
> values (which help the phase-space generator to throw more phase-space
> points where they pass the cuts) in SubProcesses/setcuts.f.
>
> The easiest way to deal with this issue is to hack the 'set_tau_min' subroutine in SubProcesses/setcuts.f. Essentially, you have to set the 'taumin_j(iFKS)' variable to minimal energy (as in sqrt(s-hat)) for the Born level contribution to pass the cuts. For example, if you require 2 jets with an invariant mass of at least 2200 GeV. The place is around line 419, just before the line
> tau_lower_bound=taumin_j(iFKS)**2/stot
>
> Hence, you would have something like:
>
> ...
> enddo
> stot = 4d0*ebeam(1)*ebeam(2)
> tau_Born_lower_bound=taumin(iFKS)**2/stot
>
> taumin_j(iFKS) = 2200d0
>
> tau_lower_bound=taumin_j(iFKS)**2/stot
> c
> c Also find the minimum lower bound if all internal s-channel particles
> c were on-shell
> ...
>
> Let me know if this works.
>
> Best regards,
> Rikkert
>
> --
> If this answers your question, please go to the following page to let us
> know that it is solved:
> https://answers.launchpad.net/mg5amcnlo/+question/693053/+confirm?answer_id=2
>
> If you still need help, you can reply to this email or go to the
> following page to enter your feedback:
> https://answers.launchpad.net/mg5amcnlo/+question/693053
>
> You received this question notification because you asked the question.

Rikkert Frederix (frederix) said : #5

Hi Jack,

It works for me.
(Indeed, my fix was for a slightly older version that didn't have the 'ichan' stuff yet -- you correctly fixed that).

What is the value of ptj in the run_card? If it's set to zero (or below), the clustering of the partons to form the jets is not done. Hence, you have to set it to a (small) non-zero value.

Best,
Rikkert

Jack Y. Araz (jackaraz) said : #6

Dear Rikkert

> What is the value of ptj in the run_card? If it's set to zero (or
> below), the clustering of the partons to form the jets is not done.
> Hence, you have to set it to a (small) non-zero value.
I left all the run card at the default value so the jet portion is as follows;

> 1.0 = jetalgo
> 0.7 = jetradius
> 10.0 = ptj
> -1.0 = etaj

Since I need min clustered jet (R=0.4) pt to be 20 GeV at the analysis level, im not sure if it would be healthy to increase ptj further.

Best regards


Jack Y. Araz

> On Sep 24, 2020, at 2:30 PM, Rikkert Frederix <email address hidden> wrote:
>
> Your question #693053 on MadGraph5_aMC@NLO changed:
> https://answers.launchpad.net/mg5amcnlo/+question/693053
>
> Status: Open => Needs information
>
> Rikkert Frederix requested more information:
> Hi Jack,
>
> It works for me.
> (Indeed, my fix was for a slightly older version that didn't have the 'ichan' stuff yet -- you correctly fixed that).
>
> What is the value of ptj in the run_card? If it's set to zero (or
> below), the clustering of the partons to form the jets is not done.
> Hence, you have to set it to a (small) non-zero value.
>
> Best,
> Rikkert
>
> --
> To answer this request for more information, you can either reply to
> this email or enter your reply at the following page:
> https://answers.launchpad.net/mg5amcnlo/+question/693053
>
> You received this question notification because you asked the question.

Rikkert Frederix (frederix) said : #7

Hello Jack,

In version v3.0.3-neworders, if I generate the process as you do, add your cuts on the invariant mass and pseudo-rapidities of the jets, as well as my change in setcuts, it runs without problems (keeping all other parameters to their defaults).

Do you have anything set to a non-default value?
Could you try from a fresh install of this branch?

Best,
Rikkert

Jack Y. Araz (jackaraz) said : #8

Dear Rikkert

Just generated a new pp>jj [qcd] folder and copied all modifications there and worked like a charm. I guess it didn't cleaned up the old compilations completely.

Thanks a lot!
Best regards
Jack