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

Dear MadGraph developers,

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/

Is there a way to completely disable quarks in MadGraph?

Best regards

Arnd

## Question information

- Language:
- English Edit question

- Status:
- Solved

- Assignee:
- marco zaro Edit question

- Solved by:
- Olivier Mattelaer

- Solved:
- 2018-08-01

- Last query:
- 2018-08-01

- Last reply:
- 2018-05-18

marco zaro (marco-zaro) said : | #1 |

Dear Arnd,

thanks for your question.

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-

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

Hua-Sheng Shao (erdissshaw) said : | #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

Arnd Behring (arndbehring) said : | #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-

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',

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

Arnd Behring (arndbehring) said : | #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.0000000000000

MU_R = 325.00000000000000

ALPHA_S = 0.11799999999999999

BORN 35.981357284326130

SINGLE POLE (MadFKS) -4.8406129885150682

DOUBLE POLE (MadFKS) -8.1088809932738091

SINGLE POLE (MadLoop) -8.4445600966367600

DOUBLE POLE (MadLoop) -8.1088809932737931

FINITE PART (MadLoop) 2.0878599045709985

325.

325.

324.

324.

NUMBER OF POINTS PASSING THE CHECK 0

NUMBER OF POINTS FAILING THE CHECK 1

TOLERANCE 1.0000000000000

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

marco zaro (marco-zaro) said : | #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:

> https:/

>

> Arnd Behring gave more information on the question:

> 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.0000000000000

> MU_R = 325.00000000000000

> ALPHA_S = 0.11799999999999999

> BORN 35.981357284326130

> SINGLE POLE (MadFKS) -4.8406129885150682

> DOUBLE POLE (MadFKS) -8.1088809932738091

> SINGLE POLE (MadLoop) -8.4445600966367600

> DOUBLE POLE (MadLoop) -8.1088809932737931

> FINITE PART (MadLoop) 2.0878599045709985

> 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.0000000000000

>

> 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.

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:

> https:/

>

> Status: Open => Answered

>

> 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

> <email address hidden> wrote:

>

>> Question #669064 on MadGraph5_aMC@NLO changed:

>> https:/

>>

>> Arnd Behring gave more information on the question:

>> 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.0000000000000

>> MU_R = 325.00000000000000

>> ALPHA_S = 0.11799999999999999

>> BORN 35.981357284326130

>> SINGLE POLE (MadFKS) -4.8406129885150682

>> DOUBLE POLE (MadFKS) -8.1088809932738091

>> SINGLE POLE (MadLoop) -8.4445600966367600

>> DOUBLE POLE (MadLoop) -8.1088809932737931

>> FINITE PART (MadLoop) 2.0878599045709985

>> 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.0000000000000

>>

>> 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 an answer

> contact for MadGraph5_aMC@NLO.

marco zaro (marco-zaro) said : | #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:

> https:/

>

> 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:

>> https:/

>>

>> Status: Open => Answered

>>

>> 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

>> <email address hidden> wrote:

>>

>>> Question #669064 on MadGraph5_aMC@NLO changed:

>>> https:/

>>>

>>> Arnd Behring gave more information on the question:

>>> 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.0000000000000

>>> MU_R = 325.00000000000000

>>> ALPHA_S = 0.11799999999999999

>>> BORN 35.981357284326130

>>> SINGLE POLE (MadFKS) -4.8406129885150682

>>> DOUBLE POLE (MadFKS) -8.1088809932738091

>>> SINGLE POLE (MadLoop) -8.4445600966367600

>>> DOUBLE POLE (MadLoop) -8.1088809932737931

>>> FINITE PART (MadLoop) 2.0878599045709985

>>> 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.0000000000000

>>>

>>> 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 an answer

>> contact for MadGraph5_aMC@NLO.

>

> --

> You received this question notification because you are assigned to this

> question.

Arnd Behring (arndbehring) said : | #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

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:

> https:/

>

> Arnd Behring posted a new comment:

> 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

>

> --

> You received this question notification because you are an answer

> contact for MadGraph5_aMC@NLO.

Arnd Behring (arndbehring) said : | #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/

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

Arnd Behring (arndbehring) said : | #11 |

Thanks Olivier Mattelaer, that solved my question.