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:
Solved
For:
MadGraph5_aMC@NLO Edit question
Assignee:
No assignee Edit question
Solved by:
marco zaro
Solved:
Last query:
Last reply:
Revision history for this message
Best 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

Revision history for this message
Hesham El Faham (helfaham) said :
#2

Thanks marco zaro, that solved my question.