Reproducing paper number

Asked by Andrii

 Dear MadGraph5_aMC@NLO team!

  I `m trying to reproduce cross section for
p p > h b b~ [QCD] at NLO 13 TeV from arXiv : 1405.0301v2 [hep-ph] paper.

 I tried different combination of steering parameters using information from default param.dat and run.dat files, from http://amcatnlo.web.cern.ch/amcatnlo/cards_paper/ and information from paper, but still can`t achieve exactly the same cross-section as I see in paper.
 Could you please specify which .dat files to use and maybe what additional parameters should be changed to reproduce paper`s results.

 With best regards, Andrii

Question information

Language:
English Edit question
Status:
Answered
For:
MadGraph5_aMC@NLO Edit question
Assignee:
Paolo Torrielli Edit question
Last query:
Last reply:
Revision history for this message
Paolo Torrielli (paolo-torrielli) said :
#1

Hi Andrii,
currently I've no access to the link to the cards, so I'm guessing.

Could you please check if:

- the parameters and cuts described at pages 72-73 of 1405.0301 are reproduced in
your run_card and Subprocess/cuts.f; in particular, the file cuts.f should have been
modified from the default: is this also provided among the cards_paper?

- the renormalisation/factorisation scales used in the paper are reproduced in
SubProcess/setscales.f, routine scale_global_reference(pp).

- the factor maxjetflavour in run_card is =4.

Since I suspect the culprit to be cuts.f, could you launch a process with no b quarks
(and with a standard cuts.f) and try to reproduce the numbers of the paper?

Let me know.
Cheers.
Paolo

Revision history for this message
Andrii (andrii-gizhko) said :
#2

 Dear Paolo,

 thanks for suggestion,
 the predictions to channel p p > W+ W- I was able to reproduce within 1%, that is ok for me. Also p p > H b b~ is within 1.5% that seems to be really close. I believe processes like p p > b b~ j affected by cuts.f steering, at least it seems so from label from p. 78. I also want to reproduce them so it would be very helpful to have example of correct cuts.f modification to fulfiil paper cuts on bjets.

 Cheers, Andrii

Revision history for this message
Paolo Torrielli (paolo-torrielli) said :
#3

Hi Andrii,
sorry, I'm a bit puzzled. Yesterday you said that hbb~ was off: did you consider
this 1.5% to be off or did something change so to bring the original (larger)
discrepancy down to 1.5%?
To be 100% sure that all parameters are the same, you could run the two processes
(hbb and WW) with a precision of some 0.2%, so to see if the discrepancy goes down
correspondingly. Born runs (with opportune LO pdfs) may also help understanding
whether the cards are correct, and are very fast even for high precision.

As for bb+jets, I provide here some code snippet that implements the cuts, you
should be able to insert the various pieces of code in the right places of cuts.f.
This code is not guaranteed to work, as it was a private coding conceived for an
internal run in an old version cuts.f, so let me know if it works. This code assumes
two b's, and you can trivially modify it for the 4b case.

Declarations to add in passcuts_user:

      integer nb,jb(nexternal),nbjet,ib
      double precision pbj(0:3,nexternal)
      logical isbjet(nexternal)

Code to be put between the comments "Put all (light) QCD partons in momentum
array ..." and "The UNLOPS cut", after removing the default code in there:
         nQCD=0
         nb=0
         do j=nincoming+1,nexternal
           nQCD=nQCD+1
           do i=0,3
             pQCD(i,nQCD)=p(i,j) ! Use C.o.M. frame momenta
           enddo
           if(j.eq.3.or.j.eq.4)then
             nb=nb+1
             jb(nb)=nQCD
           endif
         enddo
      endif
      if(nb.ne.2)then
        write(*,*)'Problem: no 2 bs', nb
        stop
      endif

Code to be put right before the command "122 continue":

      nbjet=0
      do i=1,njet
        isbjet(i)=.false.
        do ib=1,nb
          if(jet(jb(ib)).eq.i)isbjet(i)=.true.
        enddo
        if(isbjet(i))then
          nbjet=nbjet+1
          do j=0,3
            pbj(j,nbjet)=pjet(j,i)
          enddo
        endif
      enddo

      if( nbjet .lt. 2 .or.
     & min(pt(pbj(0,1)),pt(pbj(0,2))) .lt. 80d0 .or.
     & max(pt(pbj(0,1)),pt(pbj(0,2))) .lt. 100d0 .or.
     & abs(eta(pbj(0,1))) .gt. 2.5d0 .or.
     & abs(eta(pbj(0,2))) .gt. 2.5d0 )then
        passcuts_user=.false.
        return
      endif

Can you help with this problem?

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

To post a message you must log in.