large kinematic cuts for dijet at NLO

Asked by shaodingyu

Dear MG5 team,

I am trying to generate NLO events(after showering) for dijet production at the 7TeV LHC, where the average pT for the two leading jets is from 210GeV to 240GeV, and the rapidity difference is from 4 to 5. In order to apply these two cuts, I modified the file SubProcesses/cuts.f as

============================
      do i = 1, njet
        spTj(i) = dsqrt(pjet(1,i)**2+pjet(2,i)**2)
        setaj(i) = .5d0*log((pjet(0,i)+pjet(3,i))/(pjet(0,i)-pjet(3,i)))
      enddo

       if(
      - abs(setaj(1)-setaj(2)).le.4d0
      - .or. abs(setaj(1)-setaj(2)).ge.6d0
      - .or. .5d0*(spTj(1)+spTj(2)).le.210d0
      - .or. .5d0*(spTj(1)+spTj(2)).ge.280d0
      - ) then
           passcuts_user=.false.
           return
       endif
============================

However, when I started to run, the code crashed and I got some error messages. E.g. in the end of SubProcesses/P0_gg_gg/GF4/log.txt the error messages are

============================

ERROR: INTEGRAL APPEARS TO BE ZERO.
TRIED 100352 PS POINTS AND ONLY 1 GAVE A NON-ZERO INTEGRAND.

============================

It looks like MG5 can’t generate events with extremely large cuts efficiently. Do you know how to solve this problem?

Thanks,
Dingyu

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
Rikkert Frederix (frederix) said :
#1

Dear Dingyu,

There are a couple of issues here:

- The cuts that you are applying in the SubProcesses/cuts.f file are *before* showering, i.e., at the level of the matrix elements. In general, (and certainly at large rapidity) the shower will shift the jets around. In other words, phase-space regions that you cut away with these matrix-element level cuts might well have a large, non-neglible contribution to your analysis region when showering is included. Hence, you'll have to relax your cuts enormously.
N.B., you should check that your final results are independent from these matrix element level cuts. This can be done by generating two samples, one with tight and one with loser matrix-element cuts and to show that the final analysis-level results are identical (up to statistics) for the two samples.

- What do you use as cuts on the jets in the run_card.dat? The code uses the information on the 'ptj' of the run_card to optimise its phase-space generation, in particular it is used to determine the minimum value of s-hat needed. In other words, 'ptj' is used in exactly 2 locations in the code: once for the phase-space optimisation, and once in SubProcesses/cuts.f to apply the minimum pT cut on the jets. So, you might want to try to set ptj=210 GeV in the run_card to get the correct minimal value of s-hat in the phase-space optimisation, but then explicitly remove its use from SubProcesses/cuts.f (hence, set sycut=ptj (line 229) to some other small pT value ---small enough so that it doesn't interfere with your average pT cuts.)

Let me know if this helps.

Best regards,
Rikkert

Revision history for this message
shaodingyu (shaodingyu) said :
#2

Dear Rikkert,

Thank you very much for your answers.

Yes, I understand your first point. I will generate two samples and check the cuts independence.

About the second point, actually, in the run_card.dat I set ptj=20GeV. The reason is that at NLO matrix-element level there exist two and three jets configurations. I only want to put the hard pT cut on two-leading jets and there are no hard constraints for the third jet, so I used an extremely loose cut in the run_card.dat. If I set ptj=210 GeV as you said, can I get correct three jet configuration at matrix-element level? Thank you very much!

Best,
Dingyu

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

Dear Dingyu,

If you remove the use of ptj in the SubProcesses/cuts.f, it's only used for the phase-space optimisation. In particular to set the smallest value of s-hat. The smallest value is always obtained in a 2-jet configuration where both jets have equal pT. Hence, in your case that would be 210 GeV for the jets.

Best,
Rikkert

Revision history for this message
shaodingyu (shaodingyu) said :
#4

Dear Rikker,

Your answer solved my problem. Thanks a lot!

Best,
Dingyu