Unable to get a finite cross-section for ttbar production in the SMEFT at NLO

Bug #1847487 reported by Andres Vasquez
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
MadGraph5_aMC@NLO
Fix Released
Undecided
marco zaro

Bug Description

Hi Olivier,

This issue is related to question I posted which can be found at https://answers.launchpad.net/mg5amcnlo/+question/683957

I am using MG5 v3.0.2 to generate events by using the syntax

- generate p p > t t~ NP=2 QED=0 QCD=2 [QCD]

I send you the model I am using by email.

First, as was pointed out by Marco in my question, in order to prevent double EFT insertions in the virtuals (so EFT-like corrections to the pure-QCD born) one has to comment the following 4 lines (The ones indicated with ###MZ):

_______________________________________________________________________________________

=== modified file 'madgraph/fks/fks_base.py'
--- madgraph/fks/fks_base.py 2018-11-12 10:58:08 +0000
+++ madgraph/fks/fks_base.py 2019-09-19 11:28:01 +0000
@@ -331,7 +331,7 @@
             myproc = copy.copy(born.born_amp['process'])
             # include all particles in the loops
             # i.e. allow all orders to be perturbed
- myproc['perturbation_couplings'] = myproc['model']['coupling_orders']
+ ###MZ myproc['perturbation_couplings'] = myproc['model']['coupling_orders']
             # take the orders that are actually used bu the matrix element
 #MZ myproc['orders'] = loop_orders
             myproc['legs'] = fks_common.to_legs(copy.copy(myproc['legs']))
@@ -393,7 +393,7 @@
                 self.process['perturbation_couplings'].append(o)
         # set the orders to empty, to force the use of the squared_orders
         self.process['orders'] = copy.copy(born_proc['orders'])
- self.process['orders'] = {}
+ ###MZ self.process['orders'] = {}

         legs = [(leg.get('id'), leg) for leg in leglist]
         self.pdgs = array.array('i',[s[0] for s in legs])

=== modified file 'madgraph/interface/amcatnlo_interface.py'
--- madgraph/interface/amcatnlo_interface.py 2018-12-17 09:00:23 +0000
+++ madgraph/interface/amcatnlo_interface.py 2019-09-19 11:49:27 +0000
@@ -542,10 +542,10 @@
                     ord in myprocdef['perturbation_couplings']])
         # finally set perturbation_couplings to **all** the coupling orders
         # avaliable in the model
- myprocdef['perturbation_couplings'] = list(myprocdef['model']['coupling_orders'])
-
-
- myprocdef['orders'] = {}
+ ###MZ myprocdef['perturbation_couplings'] = list(myprocdef['model']['coupling_orders'])
+
+
+ ###MZ myprocdef['orders'] = {}
         self._curr_proc_defs.append(myprocdef)

 # if myprocdef['perturbation_couplings']!=['QCD']:

_______________________________________________________________________________________

Once I have done this, I had to get rid of some real diagrams involving external photons, which are produced by some effective operators. I did this by using a restricted card (which I am sending to you).

Once I have done all of this, I am unable to get a finite cross-section which might be related to some poles that do not cancel. I tried setting, in the FKS_params.dat card,

#IRPoleCheckThreshold
-1.0d0

but the madgraph never finishes.

Thanks for your help,

Andres.

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) wrote :

Hi Marco,

- Should not we officially include such patch? (we have the information inside the model that we should not include the double insertion. So this should be easy to automate.
- Why do you have photon in the real here? We only ask for QCD correction? Should not we have (at least) a flag which can control the particle that we add for the real (as advanced parameter maybe).

We need to have better support for EFT at NLO in this branch before being able to officially release this branch right?

Cheers,

Olivier

Changed in mg5amcnlo:
assignee: nobody → marco zaro (marco-zaro)
Revision history for this message
marco zaro (marco-zaro) wrote : Re: [Bug 1847487] Re: Unable to get a finite cross-section for ttbar production in the SMEFT at NLO
Download full text (4.5 KiB)

Hi Olivier,
Indeed, some better support is definitely possible. The problem of the photon emissions is that some t t a vertices are labeled as QNP and not QNP, QED.
I agree that the EFT support must be improved, I will look at it together with Eleni, who has already had large experience on this.

cheers,

Marco

> On 9 Oct 2019, at 16:41, Olivier Mattelaer <email address hidden> wrote:
>
> Hi Marco,
>
> - Should not we officially include such patch? (we have the information inside the model that we should not include the double insertion. So this should be easy to automate.
> - Why do you have photon in the real here? We only ask for QCD correction? Should not we have (at least) a flag which can control the particle that we add for the real (as advanced parameter maybe).
>
>
> We need to have better support for EFT at NLO in this branch before being able to officially release this branch right?
>
> Cheers,
>
> Olivier
>
> ** Changed in: mg5amcnlo
> Assignee: (unassigned) => marco zaro (marco-zaro)
>
> --
> You received this bug notification because you are a bug assignee.
> https://bugs.launchpad.net/bugs/1847487
>
> Title:
> Unable to get a finite cross-section for ttbar production in the SMEFT
> at NLO
>
> Status in MadGraph5_aMC@NLO:
> New
>
> Bug description:
> Hi Olivier,
>
> This issue is related to question I posted which can be found at
> https://answers.launchpad.net/mg5amcnlo/+question/683957
>
> I am using MG5 v3.0.2 to generate events by using the syntax
>
> - generate p p > t t~ NP=2 QED=0 QCD=2 [QCD]
>
> I send you the model I am using by email.
>
> First, as was pointed out by Marco in my question, in order to prevent
> double EFT insertions in the virtuals (so EFT-like corrections to the
> pure-QCD born) one has to comment the following 4 lines (The ones
> indicated with ###MZ):
>
> _______________________________________________________________________________________
>
> === modified file 'madgraph/fks/fks_base.py'
> --- madgraph/fks/fks_base.py 2018-11-12 10:58:08 +0000
> +++ madgraph/fks/fks_base.py 2019-09-19 11:28:01 +0000
> @@ -331,7 +331,7 @@
> myproc = copy.copy(born.born_amp['process'])
> # include all particles in the loops
> # i.e. allow all orders to be perturbed
> - myproc['perturbation_couplings'] = myproc['model']['coupling_orders']
> + ###MZ myproc['perturbation_couplings'] = myproc['model']['coupling_orders']
> # take the orders that are actually used bu the matrix element
> #MZ myproc['orders'] = loop_orders
> myproc['legs'] = fks_common.to_legs(copy.copy(myproc['legs']))
> @@ -393,7 +393,7 @@
> self.process['perturbation_couplings'].append(o)
> # set the orders to empty, to force the use of the squared_orders
> self.process['orders'] = copy.copy(born_proc['orders'])
> - self.process['orders'] = {}
> + ###MZ self.process['orders'] = {}
>
> legs = [(leg.get('id'), leg) for leg in leglist]
> self.pdgs = array.array('i',[s[0] for s in legs])
>
> === modified file 'madgraph/interface/amcatnlo_interface.py'
> --- madgraph/inte...

Read more...

Revision history for this message
marco zaro (marco-zaro) wrote :

Hi again,
sorry for the long delay.
For the case at hand, changing inside madgraph/fks/fks_base.py
-810,7 +810,8 @@

         model = self.born_amp['process']['model']
         if not pert_orders:
- pert_orders = model['coupling_orders']
+ ##pert_orders = model['coupling_orders']
+ pert_orders = self.born_amp['process']['perturbation_couplings']

         leglist = self.get_leglist()
         if range(len(leglist)) != [l['number']-1 for l in leglist]:

should do the job.
I am thinking of a general way to handle this cases, but if you could please test this fix, that would be great.

Thanks,

Marco

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) wrote :

Hi Andres,

Any update on this?

Olivier

Revision history for this message
Andres Vasquez (avasquezt) wrote :

Hi Olivier,

With the latest release of MG5 v3.0.2 all the poles cancel when ratios between Wilson coefficients are not bigger than 10^-5, which is related to the threshold in the FKS-params.dat card.

Normally, I don't have to do anything in addition to the fixes that were discussed before, except when some Wilson coefficients are too big, then I have to force soft and collinear tests to pass.

Andres.

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) wrote :

Ok I will consider this a fixed then (do you agree?)

Olivier

Changed in mg5amcnlo:
status: New → Fix Released
Revision history for this message
Andres Vasquez (avasquezt) wrote :

I Agree.

Thanks for all the support.

Andres.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.