Definition of drjj parameter in the run card

Asked by oleh on 2017-12-12

Dear MadGraph experts,

I am trying to check my own numerical computation of a total cross section for a p p > j j process
against a total cross section from MadGraph.

In MadGraph I generate events for p p > j j process (where j = g u d s c u~ d~ s~ c~) .
I do not use Pythia and 0 = ickkw and drjj = 0.1

Now if I do not impose any cuts on distance between jets in my code I am getting agreement between my code and MadGraph.
(My code just does a numerical Monte-Carlo integration of analytical expression for cross section integrand as a function of y_1, y_2 and pT).

However if impose a cut on a distance between jets in my code deltaR >= 0.1 I am starting to get a disagreement between MadGraph and my calculations.

I define deltaR as
deltaR = sqrt(deltaEta2 + deltaPhi^2)
where deltaE = y1 - y3 and deltaPhi = 2 * ( atan(exp(-y1) - atan(exp(-2) )

last expression for deltaPhi follows from the connection between pseudorapidity and an an angle between particle and a beem pipe y = -ln ( tan(teta / 2)).

Moreover if I set drjj = 3.0 in my code I am getting a zero cross section and in MadGraph I still capable to generate events and calculate a cross section...

I suspect that I do not really understand how drjj is defined in MadGraph ..

So my questions are:
Could you please tell me how drjj is define in MadGraph?

And is there any difference between drjj in case when one switch on showering ?

Is there any difference in the definition of drjj for two jet final state and three (or four) jet final states ?

Is there any difference between definition of drjj, drll, draj and all these parameters in run card?

Thank you very much!

With best regards,
Oleh

Question information

Language:
English Edit question
Status:
Solved
For:
MadGraph5_aMC@NLO Edit question
Assignee:
No assignee Edit question
Solved by:
oleh
Solved:
2017-12-13
Last query:
2017-12-13
Last reply:
2017-12-13

Hi,

> Could you please tell me how drjj is define in MadGraph?

So in madgraph the cuts is done in file SubProcesses/cuts.f around line 440:

> c DeltaR min & max cuts
> c
> do i=nincoming+1,nexternal-1
> do j=i+1,nexternal
> if(debug) write (*,*) 'r2(',i, ',' ,j,')=',dsqrt(r2(p(0,i),p(0,j)))
> if(debug) write (*,*) dsqrt(r2min(j,i)),dsqrt(r2max(j,i))
> if(r2min(j,i).gt.0.or.r2max(j,i).ge.0d0) then
> tmp=r2(p(0,i),p(0,j))
> notgood=(tmp .lt. r2min(j,i)).or.
> $ (r2max(j,i).ge.0d0 .and. tmp .gt. r2max(j,i))
> if (notgood) then
> if(debug) write (*,*) i,j,' -> fails'
> passcuts=.false.
> return
> endif
> endif
> enddo
> enddo

As you can see here this is the same function called for drjj, drll, draj.
the definition of r2min(j,i) and r2max(j,i) are done inside setcuts.f:
with the following lines:

               if(is_a_j(i).and.is_a_j(j)) r2min(j,i)=drjj
               if(is_a_j(i).and.is_a_j(j)) r2max(j,i)=drjjmax

Note that the value of r2min is printed in the log of each individual channel of integration.

The definition of the r2 function is done in Source/kin_functions.f (around line 40)
> DOUBLE PRECISION FUNCTION R2(P1,P2)
> c************************************************************************
> c Distance in eta,phi between two particles.
> c************************************************************************
> IMPLICIT NONE
> c
> c Arguments
> c
> double precision p1(0:3),p2(0:3)
> c
> c External
> c
> double precision rap,DELTA_PHI
> external rap,delta_phi
> c-----
> c Begin Code
> c-----
> R2 = (DELTA_PHI(P1,P2))**2+(rap(p1)-rap(p2))**2
> RETURN
> END

The function DELPHI is defined in line 162 of the same file:

> DOUBLE PRECISION FUNCTION DELTA_PHI(P1, P2)
> c************************************************************************
> c Returns separation in phi of two particles p1,p2
> c************************************************************************
> IMPLICIT NONE
> c
> c Arguments
> c
> double precision p1(0:3),p2(0:3)
> c
> c Local
> c
> REAL*8 DENOM, TEMP
> c-----
> c Begin Code
> c-----
> DENOM = SQRT(P1(1)**2 + P1(2)**2) * SQRT(P2(1)**2 + P2(2)**2)
> TEMP = MAX(-0.99999999D0, (P1(1)*P2(1) + P1(2)*P2(2)) / DENOM)
> TEMP = MIN( 0.99999999D0, TEMP)
> DELTA_PHI = ACOS(TEMP)
> END

and the function rap is defined in line 95 (again same file)

> DOUBLE PRECISION FUNCTION rap(p)
> c************************************************************************
> c Returns rapidity of particle with p in the CM frame
> c Note that it only applies to p-p collisions
> c************************************************************************
> IMPLICIT NONE
> c
> c Arguments
> c
> double precision p(0:3)
> c
> c Local
> c
> double precision pm
> c
> c Global
> c
> include 'maxparticles.inc'
> include 'run.inc'
>
> double precision cm_rap
> logical set_cm_rap
> common/to_cm_rap/set_cm_rap,cm_rap
> data set_cm_rap/.false./
>
> c-----
> c Begin Code
> c-----
> if(.not.set_cm_rap) then
> print *,'Need to set cm_rap before calling rap'
> stop
> endif
> c pm=dsqrt(p(1)**2+p(2)**2+p(3)**2)
>
> pm = p(0)
> if (pm.gt.abs(p(3))) then
> rap = .5d0*dlog((pm+p(3))/(pm-p(3)))+cm_rap
> else
> rap = -1d99
> endif
> end

> And is there any difference between drjj in case when one switch on showering ?

No. But be carefull about the following parameter:
But note that in presence of MLM matching/merging (ickkw=1) we assume those cuts to be zero. (you should see that in the log actually).
(to be 100% sure please check the log of any channel of integration)

> Is there any difference in the definition of drjj for two jet final state and three (or four) jet final states ?

No

> Is there any difference between definition of drjj, drll, draj and all these parameters in run card?

No

Cheers,

Olivier

> On Dec 12, 2017, at 18:08, oleh <email address hidden> wrote:
>
> New question #661631 on MadGraph5_aMC@NLO:
> https://answers.launchpad.net/mg5amcnlo/+question/661631
>
> Dear MadGraph experts,
>
> I am trying to check my own numerical computation of a total cross section for a p p > j j process
> against a total cross section from MadGraph.
>
> In MadGraph I generate events for p p > j j process (where j = g u d s c u~ d~ s~ c~) .
> I do not use Pythia and 0 = ickkw and drjj = 0.1
>
> Now if I do not impose any cuts on distance between jets in my code I am getting agreement between my code and MadGraph.
> (My code just does a numerical Monte-Carlo integration of analytical expression for cross section integrand as a function of y_1, y_2 and pT).
>
> However if impose a cut on a distance between jets in my code deltaR >= 0.1 I am starting to get a disagreement between MadGraph and my calculations.
>
> I define deltaR as
> deltaR = sqrt(deltaEta2 + deltaPhi^2)
> where deltaE = y1 - y3 and deltaPhi = 2 * ( atan(exp(-y1) - atan(exp(-2) )
>
> last expression for deltaPhi follows from the connection between pseudorapidity and an an angle between particle and a beem pipe y = -ln ( tan(teta / 2)).
>
> Moreover if I set drjj = 3.0 in my code I am getting a zero cross section and in MadGraph I still capable to generate events and calculate a cross section...
>
> I suspect that I do not really understand how drjj is defined in MadGraph ..
>
> So my questions are:
> Could you please tell me how drjj is define in MadGraph?
>
> And is there any difference between drjj in case when one switch on showering ?
>
> Is there any difference in the definition of drjj for two jet final state and three (or four) jet final states ?
>
> Is there any difference between definition of drjj, drll, draj and all these parameters in run card?
>
> Thank you very much!
>
> With best regards,
> Oleh
>
>
>
>
> --
> You received this question notification because you are an answer
> contact for MadGraph5_aMC@NLO.

oleh (fedkevych) said : #2

Dear Oliver,
 thank you very much!

You helped me a lot!

PS I just found an error in implementation of deltaR in my code.

Now my computations agree with MAdGraph.

With best regards,
Oleh