Modifying exisiting ej cut yields 0 cross section
Dear Developers,
I am considering VBF processes and would like to cut on the energy of just the two VBF jets instead of cutting on all jets (e.e. in 'generate u u~ > u u~ g g', I'd like to apply the cut usually just on u and u~ and not on the gluons).
While trying a couple of things, however, I noticed that even a very simple change in the default emin cut in cuts.f yields a zero cross section and I am not exactly sure why.
For example, if I simply don't want to cut on, say final state particles 3 and 5 (this is just to give an example, it's not meant to be physical at this stage), and add the piece
i .eq. VBFj1 .or. i .eq. VBFj2
to the definition of 'notgood' in the standard emin cut below:
integer VBFj1,VBFj2 ! added at the top of cuts.f
VBFj1=3
VBFj2=5
c
c E min & max cuts
c
do i=nincoming+
if(debug) write (*,*) 'p(0,',
notgood=(i .eq. VBFj1 .or. i .eq. VBFj2 .or. p(0,i) .le. emin(i)).or.
& (emax(i).ge.0d0 .and. p(0,i) .gt. emax(i))
if (notgood) then
return
endif
enddo
Then I get the zero cross section error, even if ej is set to 0 in the run_card.
On the other hand, however, if I just set the ej cut in the run_card and have it applied on all particles (i.e. with the default, unmodied cut), everything works fine, of course.
I would have assumed that applying the cut on even fewer particles should actually work - do you know what I am missing here?
Just for completeness, here is how I tried to physically correctly implement the cut (this worked for as long as I don't modify the ej cut as above - setting a value on the default cut works, however):
C------
C- MULTIBOSONS BACKGROUND INV_MASS CUT -C
C------
C maxDeta=0d0
C VBFj1=0
C VBFj2=0
C MBEfailed=0
C mInvMB=1000d0
C firstPset=0
C c-- RESET ptemp(0:3)
C do j=0,3
C ptemp(j)=0 ! for the first center particle
C ptemp2(j)=0 ! for the second center particle
C enddo
C C-- FIND THE MAXIMUM DELTA ETA AND ITS CORRESPONDING JETS
C do i=nincoming+
C do j=i+1,nexternal
C if( is_a_j(i) .and. is_a_j(j) .and.
C & abs(rap(
C maxDeta=
C VBFj1=i
C VBFj2=j
C endif
C enddo
C enddo
C-- NOW APPLY THE DELTA ETA CUT AND THE ADDITIONAL M_INV CUT
C if (maxDeta .ge. deltaeta) then
C do i=nincoming+
C if (i .eq. VBFj1 .or. i .eq. VBFj2) cycle
C do j=0,3
C if (firstPset .eq. 0 ) then
C ptemp(j) = ptemp(j) + p(j,i)
C firstPset=1
C elseif ( firstPset .eq. 1 ) then
C ptemp2(j) = ptemp2(j) + p(j,i)
C endif
C enddo
C enddo
C if ( !ptemp(0) .lt. 150d0 .or. ptemp2(0) .lt. 150d0 .or.
C & dsqrt( ((ptemp(
C & - ((ptemp(
C & - ((ptemp(
C & - ((ptemp(
C & .lt. mInvMB ) then
C passcuts=.false.
C return
C endif
C elseif (maxDeta .lt. deltaeta) then
C passcuts=.false.
C return
C endif
So I am first finding the two VBF jets via the maximum Delta eta and label them VBFj1 and VBFj2. Then I set a cut on the invariant mass on everything but the two VBF jets.
Again, this cut worked just fine for me, even if I set a value on ej in the run_card, but only if I do not touch the emin cut in cuts.f (i.e. if I do not add the above piece ' i .eq. VBFj1 .or. i .eq. VBFj2' in the definition of 'notgood'.)
Thank you very much for your help in advance!
Cheers,
Patrick
P.S.: Olivier told me in a question I asked recently that I should modify the phase space integrator for my own cuts to keep efficiencies high. Is this maybe the case here again/as well (even though I modified an existing cut)? Unfortunately, I didn't really find a way on doing that, but would very much appreciate any help on that as well, if that could help preventing these kind of problems in the future!
Question information
- Language:
- English Edit question
- Status:
- Answered
- Assignee:
- No assignee Edit question
- Last query:
- Last reply:
Can you help with this problem?
Provide an answer of your own, or ask Patrick Schaefers for more information if necessary.