Applying user defined cuts in cuts.f for NLO process

Asked by Hesham El Faham on 2020-07-13

Hello,

I am trying to implement a cut on the max invariant mass of the dilepton system in tl+l-W process at NLO in QCD.
For that, I add the following cut in the cuts.f file:
-->
c$$$C EXAMPLE: cut on max invariant mass of two leptons
c$$$C Note that PDG specific cut are more optimised than simple user cut
      passcuts_user=.false.
      do i=1,nexternal ! loop over all external particles
         if (istatus(i).eq.1 ! final state particle
     & .and. abs(ipdg(i)).eq.11 .or. ipdg(i).eq.13) then ! electron or muon
c$$$C apply the inv mass cut (inv mass should be less than 100 GeV for the event to
c$$$C pass cuts)
            if ( invm2_04(p(0,i),p(0,j),1d0) .lt. 100d0**2 ) then
c$$$C invariant mass do not pass cuts. Set passcuts_user to false and return
               passcuts_user=.true.
               return
            endif
         endif
      enddo
c
      if (passcuts_user.eqv..false.)return
      end
-->
However, I get a negative-valued cross section when this cut is imposed, so there must be something wrong here, may you please help me with this?

Best,
Hesham

Question information

Language:
English Edit question
Status:
Answered
For:
MadGraph5_aMC@NLO Edit question
Assignee:
No assignee Edit question
Last query:
2020-07-13
Last reply:
2020-07-24
marco zaro (marco-zaro) said : #1

Hi Hesham,
I can see two small thing and a big one:
 - the i loop should be from nincoming+1 to nexternal, you do not need to loop over initial partons
 - in the if statament, put parentheses around (abs(ipdg(i)).eq.11 .or. ipdg(i).eq.13)
 - you should add another loop on j, otherwise j is unassigned, which is likely why you are getting unphysical results

Cheers,

Marco

Can you help with this problem?

Provide an answer of your own, or ask Hesham El Faham for more information if necessary.

To post a message you must log in.