aMCatNLOError : Poles do not cancel, run cannot continue
- Keywords:
- pole check
- Last updated by:
- Valentin Hirschi
For some processes it can happen that the error
"aMCatNLOError : Poles do not cancel, run cannot continue"
is raised after compilation.
This should happen only if at the process generation time the warning
"WARNING: Some loop diagrams contributing to this process are discarded because they are not pure (QCD)-perturbation.
Make sure you did not want to include them."
is printed on screen.
What happens is that for these kind of processes the loops with non-QCD particles (W/Z/photons/
One example is the case of pentagons (gluon exchange between the two quark lines) in vector-boson fusion.
These diagrams are often 0 for color conservation. In the case of VBF-like processes the non-vanishing diagrams are known to give a very little (<1%) contribution to the cross-section.
In some cases, however, they do not vanish.
With the current version of MG5_aMC@NLO one can continue the run disabling the poles check by editing the
Cards/FKS_
file and setting
#IRPoleCheckThr
and
#PrecisionVirtu
to -1d0
The next version capable of handling mixed QCD-EW expansion will allow the user to include also such diagrams.
=+=+=+=
Alternatively, versions 2.x can also handle those pentagon loop within a regular [QCD] computations since they are UV and IR finite and do not require any R2 counterterm. As a result, one can simply enable those loops in MadLoop when performing such VBF computation (and only then).
The instructions below recap the above and explain how to alternatively enable those loops:
----
1) These pentagon loops are color suppressed and most importantly kinematically suppressed since the gluon connects to quark lines travelling in opposite directions.
It has been checked that their contribution is negligible for most intended purposes and you can neglect their finite part (while still pretending to keep their IR poles so as to insure pole cancellation).
This, in practice, means that you can do the computation exactly as you intended to perform it, but simply disabling the Pole check.
You can do so by modifying the following entry in the file 'FKS_params.dat' in the 'Cards' directory of your process:
#IRPoleCheckThr
1.0d-5
->
#IRPoleCheckThr
-1.0d0
And then launch your process again.
-----
2) You can also decide that you want to compute these contributions and
MadLoop can do that, but you have to tweak the code a bit so that the
missing pentagons are not filtered away. Here is how you can do so:
You will need to edit the file 'madgraph/
line 515 and change the following line:
if (diag.get_
--> to
if (diag.get_
and then in the function 'def user_filter(self, model, structs,
filter=None):' around line 377, you can change the following line:
to
Finally add the following filter under the ' for diag in
self['loop_
the other commented examples):
# Select only the pentagon QCD correction to the VBF, and kick out the other genuine EW corrections.
if any(abs(pdg) in [22,23,24,25] for pdg in diag.get_
You should then be able to run your process:
./bin/mg5_aMC
MG5_aMC> set gauge Feynman
MG5_aMC> import model loop_sm
MG5_aMC> generate p p > h j j [QCD]
You should see the following warning now as well:
WARNING:
The user-defined loop diagrams filter is turned on and discarded 24 loops
And when looking at the diagrams generated (either in the process output
or with the command 'display diagrams' [warning: it will display
diagrams for all channels]) you will see that the pentagon loops are
included.
The IR pole cancellation should then be successful in this case.
Let me know if you try this and it works for you.
PS: In general, for loops with EW boson running in, the default 'model loop_sm' will not provide a correct result, and you need to load the model 'loop_qcd_qed_sm' to compute them correctly.
However, for this specific case of the pentagons, it will also be correct when computed in the 'loop_sm' model because these loops are UV-finite and do no receive any so-called R2 contributions.
----