Set invariant mass cut on Higgs bosons

Asked by Patrick Schaefers on 2017-09-14

Dear Developers,

I was curious whether it is possible to set a cut on the minimum invariant mass of multiple Higgs bosons as well.
For example, I am considering a process like 'u u~ > u u~ h h' in the SM and would like the invariant mass of the two Higgs bosons to be at least 1 TeV.

I had a look in the SubProcesses/cuts.f file and naively tried to add the following (just above the Durham cut, i.e. above line 560) :

C-- reset ptemp(0:3)
      do j=0,3
         ptemp(j)=0
      enddo
C- sum over the momenta
      do i=nincoming+1,nexternal
         do j=0,3
            if(is_a_h(i)) ptemp(j)=ptemp(j)+p(j,i)
         enddo
      enddo

C- Compute the invariant mass and check if its value against the chosen minimum value.
      if((ptemp(0)*ptemp(0) - ptemp(1)*ptemp(1) - ptemp(2)*ptemp(2) - ptemp(3)*ptemp(3)).lt.1000) then
         passcuts=.false.
      endif

However, this is not compiling because "is_a_h()" is not defined ("Error: Function 'is_a_h' at (1) has no IMPLICIT type"). I was trying this since for jets, b quarks and photons, these functions exist.

My question therefore is, whether it is possible to add a function "is_a_h()" analogue to e.g. "is_a_b()" or "is_a_j()" and if so, how it should be implemented.

Thank you so much already in advance!

Cheers,
Patrick

Question information

Language:
English Edit question
Status:
Solved
For:
MadGraph5_aMC@NLO Edit question
Assignee:
No assignee Edit question
Solved by:
Patrick Schaefers
Solved:
2017-09-15
Last query:
2017-09-15
Last reply:

Hi again,

after some more research, I was able to solve the issue. I found this thread https://answers.launchpad.net/mg5amcnlo/+question/247741 helpful and was able to properly include my definition of is_a_h in setcuts.f.

Just for completeness, I also had a missing sqrt() in the m_hh computation in the code above, so the cut for m_hh >= 1 TeV should read:

C-- reset ptemp(0:3)
      do j=0,3
         ptemp(j)=0
      enddo
C- sum over the momenta
      do i=nincoming+1,nexternal
         do j=0,3
            if(is_a_h(i)) ptemp(j)=ptemp(j)+p(j,i)
         enddo
      enddo

C- Compute the invariant mass and check its value against the chosen minimum value.
      if(dsqrt(SumDot(ptemp,ptemp,0d0)).lt.1000) then
         passcuts=.false.
      endif

Cheers,
Patrick