# How to calculate g g > g g at NLO in pure Yang-Mills theory

I would like to use MadGraph to calculate the hard process g g > g g at NLO in a pure Yang-Mills theory, i.e. without any quarks. With a fresh install of MadGraph 2.6.2 I try to generate this process using

import model loop_sm
generate g g > g g [QCD] / u u~ d d~ s s~ c c~ b b~ t t~
output gggg

The resulting program has one sub-process and as expected the Born- and Loop-Diagrams are free of quarks. However, for the real radiation diagrams MadGraph generates also diagrams with (anti-)quarks. To be specific, the files matrix_1.* in SubProcesses/P0_gg_gg_no_uuddssccbbtt contain only gluonic diagrams, while matrix_2.* to matrix_6.* contain diagrams for the subprocesses g d(~) > g g d(~), d(~) g > g g d(~) and g g > g d d~, respectively. As a consequence, the check_poles program fails for all phase space points - usually the double pole matches between MadLoop and MadFKS but the single pole disagrees already in the leading digit.

Is there a way to completely disable quarks in MadGraph?

Best regards
Arnd

## Question information

Language:
English Edit question
Status:
Solved
For:
Assignee:
marco zaro Edit question
Solved by:
Olivier Mattelaer
Solved:
Last query:
 Revision history for this message marco zaro (marco-zaro) said on 2018-05-16: #1

Dear Arnd,
Probably, the easiest way is to create a copy of the loop_sm model where you remove all quarks from the particles and vertices.
The model information, in particular the strongly-interacting particles and the number of quarks, is used in many places inside the code, so starting from a model just with gluons seems to me the best solution.
I have also added Valentin and Hua-Sheng to this thread, in case they want to add comments on this (I am mostly concerned about how to remove the quark contribution from the UV and R2 terms in the model.
Cheers,

Marco

 Revision history for this message Hua-Sheng Shao (erdissshaw) said on 2018-05-16: #2

Hi,

I think with "/ u u~ d d~ s s~ c c~ b b~ t t~" should already take care of removing quark contributions from R2 and UV. However, I think one should be careful with the FKS subtraction, which Marco can comment on how to remove g->q qbar splitting and change the alpha_s running in order to guranteen the NLO accuracy.

Concening the quark appears in real, one option you can do is to create a new model with FeynRules+NLOCT, which only contains gluon (actually you can already change the sm.fr).

Cheers,

Hua-Sheng

 Revision history for this message Arnd Behring (arndbehring) said on 2018-05-17: #3

Dear Marco, dear Hua-Sheng,

thank you for your answers. Concerning the R2 and UV terms, I would suspect that they have been successfully removed by the "/ u u~ d d~ s s~ c c~ b b~ t t~" restriction, since the loop matrix element does not contain any quark diagrams.

I've actually tried to generate my own model using FeynRules and NLOCT before. While there I don't get the additional real radiation diagrams, the poles still don't cancel between MadFKS and MadLoop when running the check_poles program.

However, I'm not entirely certain, that I'm generating the model correctly - in particular with regards to the renormalisation: As far as I understand, the WriteCT[] command requires the specification of a renormalisation condition for the strong coupling constant. There is the option "ZeroMass" which allows to specify this condition by choosing a fermion-fermion-boson vertex whose finite part should vanish at zero momentum. But since the model doesn't contain any fermions this option obviously doesn't work. I've tried to use the three-gluon vertex or the ghost-ghost-gluon vertex instead, but then I get the warnings (when using the ghost-ghost-vertex):

Warning : the vertex {-U[1], U[1], V[1]}do not contain two fermions
warning : vertex 1 not found in the list of counterterms vertices, finite part of the counterterm of the parameter will set to zero
The finite part of those counterterms will be set to zero
{FR\$delta[{aS},{}]}

And the resulting UFO output contains internal Mathematica notation in CT_vertices.py:
V_4 = CTVertex(name = 'V_4',
[...]
loop_particles = [ [ [P.g] ], [ [P.ghG] ], [ PRIVATE`PythonFormatLoopParticles[1] ] ]
[...]

Using the three-gluon vertex instead yields even more warnings and Mathematica messages.

What I then tried was leaving out the option "ZeroMass" for WriteCT[] and instead specifying MSbar->True. This results in a usable model and as already mentioned in the first paragraph I can use it in mg5_aMC to generate a program for the process g g > g g which apparently is free of quark diagrams. Yet the poles do not cancel.

Are there any specific requirements or assumptions from MadGraph about the renormalisation of the model?
Or is there anything about MadFKS that I would have to pay attention to in this scenario?

Best regards
Arnd

 Revision history for this message Arnd Behring (arndbehring) said on 2018-05-17: #4

Hi,

I've just had the idea to compare the output of the check_poles program for one phase space point against Catani's IR pole prediction. I use the program generated using the model loop_sm with the "/ u u~ d d~ s s~ c c~ b b~ t t~" restriction (the one described in my first post).

Here is the output I get from check_poles:
FAILED 1.0000000000000001E-005
MU_R = 325.00000000000000
ALPHA_S = 0.11799999999999999
BORN 35.981357284326130
325.00000000000000 0.0000000000000000 0.0000000000000000 325.00000000000000 0.0000000000000000
325.00000000000000 0.0000000000000000 0.0000000000000000 -325.00000000000000 0.0000000000000000
324.99999999999926 -212.86799706839585 -240.21493341332311 51.078386714163720 0.0000000000000000
324.99999999999926 212.86799706839528 240.21493341332388 -51.078386714164850 0.0000000000000000

NUMBER OF POINTS PASSING THE CHECK 0
NUMBER OF POINTS FAILING THE CHECK 1
TOLERANCE 1.0000000000000001E-005

Comparing this to the prediction of the IR pole structure, I find that the ep^-1 pole given by MadLoop matches the prediction for nl=0 (number of massless flavours), while the value from MadFKS matches the prediction for nl=4.

How do I communicate to MadFKS to use nl=0?

Best regards
Arnd

 Revision history for this message marco zaro (marco-zaro) said on 2018-05-17: #5

Hi Arnd,
this information is taken from the model, and written inside coupl.inc (inside Source/MODEL, or symlinked to any P0 directory).
note that you need to recompile everything and to do a ‘make clean’ before.

note also that you still need to remove the real emissions with quarks by hand

Let us know if we can help
ciao,

Marco

On 17 May 2018, at 11:27, Arnd Behring <email address hidden> wrote:

> Question #669064 on MadGraph5_aMC@NLO changed:
>
> Hi,
>
> I've just had the idea to compare the output of the check_poles program
> for one phase space point against Catani's IR pole prediction. I use the
> program generated using the model loop_sm with the "/ u u~ d d~ s s~ c
> c~ b b~ t t~" restriction (the one described in my first post).
>
> Here is the output I get from check_poles:
> FAILED 1.0000000000000001E-005
> MU_R = 325.00000000000000
> ALPHA_S = 0.11799999999999999
> BORN 35.981357284326130
> 325.00000000000000 0.0000000000000000 0.0000000000000000 325.00000000000000 0.0000000000000000
> 325.00000000000000 0.0000000000000000 0.0000000000000000 -325.00000000000000 0.0000000000000000
> 324.99999999999926 -212.86799706839585 -240.21493341332311 51.078386714163720 0.0000000000000000
> 324.99999999999926 212.86799706839528 240.21493341332388 -51.078386714164850 0.0000000000000000
>
> NUMBER OF POINTS PASSING THE CHECK 0
> NUMBER OF POINTS FAILING THE CHECK 1
> TOLERANCE 1.0000000000000001E-005
>
> Comparing this to the prediction of the IR pole structure, I find that
> the ep^-1 pole given by MadLoop matches the prediction for nl=0 (number
> of massless flavours), while the value from MadFKS matches the
> prediction for nl=4.
>
> How do I communicate to MadFKS to use nl=0?
>
> Best regards
> Arnd
>
> --
> You received this question notification because you are assigned to this
> question.

 Revision history for this message Olivier Mattelaer (olivier-mattelaer) said on 2018-05-17: #6

Hi,

Just my two cents here:

Would it be enough to put all quark massive (at the model level) to have the FKS part not including any quark?

Cheers,

Olivier

> On 17 May 2018, at 11:42, marco zaro <email address hidden> wrote:
>
> Question #669064 on MadGraph5_aMC@NLO changed:
>
>
> marco zaro proposed the following answer:
> Hi Arnd,
> this information is taken from the model, and written inside coupl.inc (inside Source/MODEL, or symlinked to any P0 directory).
> note that you need to recompile everything and to do a ‘make clean’ before.
>
> note also that you still need to remove the real emissions with quarks
> by hand
>
> Let us know if we can help
> ciao,
>
> Marco
>
> On 17 May 2018, at 11:27, Arnd Behring
>
>> Question #669064 on MadGraph5_aMC@NLO changed:
>>
>> Hi,
>>
>> I've just had the idea to compare the output of the check_poles program
>> for one phase space point against Catani's IR pole prediction. I use the
>> program generated using the model loop_sm with the "/ u u~ d d~ s s~ c
>> c~ b b~ t t~" restriction (the one described in my first post).
>>
>> Here is the output I get from check_poles:
>> FAILED 1.0000000000000001E-005
>> MU_R = 325.00000000000000
>> ALPHA_S = 0.11799999999999999
>> BORN 35.981357284326130
>> 325.00000000000000 0.0000000000000000 0.0000000000000000 325.00000000000000 0.0000000000000000
>> 325.00000000000000 0.0000000000000000 0.0000000000000000 -325.00000000000000 0.0000000000000000
>> 324.99999999999926 -212.86799706839585 -240.21493341332311 51.078386714163720 0.0000000000000000
>> 324.99999999999926 212.86799706839528 240.21493341332388 -51.078386714164850 0.0000000000000000
>>
>> NUMBER OF POINTS PASSING THE CHECK 0
>> NUMBER OF POINTS FAILING THE CHECK 1
>> TOLERANCE 1.0000000000000001E-005
>>
>> Comparing this to the prediction of the IR pole structure, I find that
>> the ep^-1 pole given by MadLoop matches the prediction for nl=0 (number
>> of massless flavours), while the value from MadFKS matches the
>> prediction for nl=4.
>>
>> How do I communicate to MadFKS to use nl=0?
>>
>> Best regards
>> Arnd
>>
>> --
>> You received this question notification because you are assigned to this
>> question.
>
> --

 Revision history for this message marco zaro (marco-zaro) said on 2018-05-17: #7

right, that may actually be an option (to be tested…)
thanks!
cheers,

Marco
On 17 May 2018, at 11:46, Olivier Mattelaer <email address hidden> wrote:

> Question #669064 on MadGraph5_aMC@NLO changed:
>
> Olivier Mattelaer proposed the following answer:
> Hi,
>
> Just my two cents here:
>
> Would it be enough to put all quark massive (at the model level) to have
> the FKS part not including any quark?
>
> Cheers,
>
> Olivier
>
>> On 17 May 2018, at 11:42, marco zaro <email address hidden> wrote:
>>
>> Question #669064 on MadGraph5_aMC@NLO changed:
>>
>>
>> marco zaro proposed the following answer:
>> Hi Arnd,
>> this information is taken from the model, and written inside coupl.inc (inside Source/MODEL, or symlinked to any P0 directory).
>> note that you need to recompile everything and to do a ‘make clean’ before.
>>
>> note also that you still need to remove the real emissions with quarks
>> by hand
>>
>> Let us know if we can help
>> ciao,
>>
>> Marco
>>
>> On 17 May 2018, at 11:27, Arnd Behring
>>
>>> Question #669064 on MadGraph5_aMC@NLO changed:
>>>
>>> Hi,
>>>
>>> I've just had the idea to compare the output of the check_poles program
>>> for one phase space point against Catani's IR pole prediction. I use the
>>> program generated using the model loop_sm with the "/ u u~ d d~ s s~ c
>>> c~ b b~ t t~" restriction (the one described in my first post).
>>>
>>> Here is the output I get from check_poles:
>>> FAILED 1.0000000000000001E-005
>>> MU_R = 325.00000000000000
>>> ALPHA_S = 0.11799999999999999
>>> BORN 35.981357284326130
>>> 325.00000000000000 0.0000000000000000 0.0000000000000000 325.00000000000000 0.0000000000000000
>>> 325.00000000000000 0.0000000000000000 0.0000000000000000 -325.00000000000000 0.0000000000000000
>>> 324.99999999999926 -212.86799706839585 -240.21493341332311 51.078386714163720 0.0000000000000000
>>> 324.99999999999926 212.86799706839528 240.21493341332388 -51.078386714164850 0.0000000000000000
>>>
>>> NUMBER OF POINTS PASSING THE CHECK 0
>>> NUMBER OF POINTS FAILING THE CHECK 1
>>> TOLERANCE 1.0000000000000001E-005
>>>
>>> Comparing this to the prediction of the IR pole structure, I find that
>>> the ep^-1 pole given by MadLoop matches the prediction for nl=0 (number
>>> of massless flavours), while the value from MadFKS matches the
>>> prediction for nl=4.
>>>
>>> How do I communicate to MadFKS to use nl=0?
>>>
>>> Best regards
>>> Arnd
>>>
>>> --
>>> You received this question notification because you are assigned to this
>>> question.
>>
>> --
>
> --
> You received this question notification because you are assigned to this
> question.

 Revision history for this message Arnd Behring (arndbehring) said on 2018-05-18: #8

Dear Marco, dear Olivier,

thanks for your suggestions. Changing the parameter NF in coupl.inc to NF=0 indeed produces agreement between MadLoop and MadFKS. However, there are still the real diagrams involving quarks in matrix_{2,...,5}.*. Is there a way to consistently prevent the generation of these real radiation diagrams?

I've also tried to introduce non-zero masses for the light quarks but as far as I interpret the model correctly, the loop_sm model only allows a non-zero c-quark mass. I've also tried to rerun the SM notebook for FeynRules/NLOCT whithout loading the "Massless.rst" restriction, but I was not able to generate a working model that way. I guess I'll have to ask the authors of that package for advice.

Best regards
Arnd

 Revision history for this message Olivier Mattelaer (olivier-mattelaer) said on 2018-05-18: #9

My advise, would be to just modify the file particles.py
and replace the
mass=Param.Zero for all the light quark
by
mass = Param.Mt (please check the spelling)

My guess is that it should be enough.

Cheers,

Olivier

> On 18 May 2018, at 17:02, Arnd Behring <email address hidden> wrote:
>
> Question #669064 on MadGraph5_aMC@NLO changed:
>
> Arnd Behring posted a new comment:
> Dear Marco, dear Olivier,
>
> thanks for your suggestions. Changing the parameter NF in coupl.inc to
> there are still the real diagrams involving quarks in
> matrix_{2,...,5}.*. Is there a way to consistently prevent the
> generation of these real radiation diagrams?
>
> I've also tried to introduce non-zero masses for the light quarks but as
> far as I interpret the model correctly, the loop_sm model only allows a
> non-zero c-quark mass. I've also tried to rerun the SM notebook for
> was not able to generate a working model that way. I guess I'll have to
>
> Best regards
> Arnd
>
> --

 Revision history for this message Arnd Behring (arndbehring) said on 2018-08-01: #10

I almost forgot to report back - the suggested solution worked: I've modified the particles.py and changed
mass = Param.ZERO,
to
mass = Param.MC,
for the u,d and s quark and used the model restriction "loop_sm-c_mass" when generating the process.
Then, NF in Source/MODEL/coupl.inc is automatically 0 as it should be and also the real radiation diagrams involving quarks are absent.

Thank you to Olivier Mattelaer, Marco Zaro and Hua-Sheng Shao for your input and your suggestions.

 Revision history for this message Arnd Behring (arndbehring) said on 2018-08-01: #11

Thanks Olivier Mattelaer, that solved my question.