Syntax to calculate NLO EW corrections

Asked by Xiaomin Shen

Dear experts,

I am trying to calculate the NLO electroweak (aS^2*aEW^1) corrections
to top pair production at the LHC.

As far as I know, the syntax reads

   generate LO_process QCD_QED_order_of_LO_matrix_element [QED]

So naively I expect the following five statements are equivalent,
because, without the [QED] tag, they generate the same pure QCD LO
contribution (aS^2 * aEW^0).

# process1
> generate p p > t t~ [QED]
# process2
> generate p p > t t~ QED^2=0 QCD^2=4 [QED]
# process3
> generate p p > t t~ QED^2==0 QCD^2=4 [QED]
# process4
> generate p p > t t~ QED^2==0 [QED]
# process5
> generate p p > t t~ QED^2==0 QCD^2==4 [QED]

Processes 1 and 2 give the same result 4.535e+02 +- 1.0e+00 pb

Process 3 gives 6.374e+01 +- 7.5e-02 pb, which is much smaller than
the LO prediction, so it cannot be what I want.

Processes 4 and 5 are interrupted by the error:
  No Born diagrams found.
  NoDiagramException : No amplitudes generated

Here are my questions.
(1) What is the difference between processes 1~5?
    Does process 3 give any physical predictions?

(2) Do processes 1 and 2 calculate the NLO EW corrections (aS^2*aEW^1)
to the top pair production?

(3) How to calculate full LO + NLO cross sections?
LO = aS^2 * aEW^0 + aS^1 * aEW^1 + aS^1 * aEW^2
NLO = aS^3 * aEW^0 + ... + aS^0 * aEW^3

/******************************************************************/

As an exercise, I have also tried to reproduce the NLO EW corrections
(LO_1 + NLO_2) of ttZ production in table 2 of the NLO EW automation paper
1804.10017, where
  LO_1 ~ as^2 * aEW^1 (without subleading contributions ~ as^1*aEW^2 etc.)
  NLO_2 ~ as^2 * aEW^2

Here is the script I used
#######################################################
set complex_mass_scheme true
import model loop_qcd_qed_sm_Gmu
define p = g d d~ u u~ s s~ c c~ b b~ a
define j = p
generate p p > t t~ z QCD^2=4 QED^2=2 [QED]

output ttzNLOEW
launch
fixed_order = ON

set ebeam1 6500.0
set ebeam2 6500.0

set pdlabel lhapdf
set lhaid 82000 # LUXqed plus PDF4LHC15 nnlo 100

set fixed_ren_scale False
set fixed_fac_scale False
set dynamical_scale_choice 3 # half of the sum of transverse masses
# no kinematic cuts added
#######################################################

which gives
   LO = 0.5063 +- 0.001458 pb
   NLOEW = 0.5150 +- 5.1e-04 pb

and fails to reproduce the results in the NLO EW automation paper 1804.10017
   LO=0.50456,
   NLOEW=0.50033 (pb).

The LO predictions are consistent up to the Monte-Carlo error,
but the sign of the NLO EW corrections is wrong.

(4) Do you have any idea what is wrong with the script above?

Thanks.

Xiaomin

Question information

Language:
English Edit question
Status:
Solved
For:
MadGraph5_aMC@NLO Edit question
Assignee:
marco zaro Edit question
Solved by:
marco zaro
Solved:
Last query:
Last reply:
Revision history for this message
marco zaro (marco-zaro) said :
#1

Dear Xiaomin,
thank you for posting your question.

Let me answer the various points:

for the NLO EW corrections (alpha_s^2 alpha) to ttbar:
syntax 1 and 2 are correct and equivalent. For the others, since you use ==, which is not supported at NLO (squared order constraints such as QCD^2=4 are interpreted with <=, and the code does not handle the case with ==), they give unpredictable/ wrong results... We should think to have some clearer error message about this.

Now if you want to compute the complete-NLO corrections (All contributions at LO + all contributions at NLO) , use this
generate p p > t t~ QED^2=4 QCD^2=4 [QED QCD]

see also http://amcatnlo.cern.ch/co.htm;

Finally, about tt~Z . It is crucial that you set also the W width to zero. I reproduced your result when only the Z and top widths are set to zero. In the 1804.10017 paper, this is written between eqs 6.8 and 6.9:

We remind the reader that the self-consistency of the calculation (see also sect. 5.5) demands that, in processes where any massive particle (W, Z, top quark, and Higgs) is treated as stable, i.e. is left undecayed, its width has to be set equal to zero, and it must not appear as an intermediate resonance that may go on shell. In the case of the vector bosons, we set ΓBW_Z = 0 and ΓBW_W = 0 before employing eq. (6.6) to obtain the CM-scheme inputs.

Doing so i get 4.9968694e-01 ± 6.7076915e-04 for the NLO result, and +5.0441766e-01 ±5.1221652e-04, both in agreement with the ones quoted in the paper.

Please let us know if you need further clarifications

Best wishes,

Marco Zaro

Revision history for this message
Xiaomin Shen (xmshen) said :
#2

Hi Marco,

Thank your for your explanations.

As you have mentioned, == is not supported at NLO. Is it possible to
calculate the NLO EW corrections only (without the LO contribution) by
using

generate p p > t t~ QED^2=0 QCD^2=4 [QED] QCD^2==4 QED^2==2,

where == is used after the tag [QED]?

Best,
Xiaomin

Revision history for this message
Best marco zaro (marco-zaro) said :
#3

Hi,

> On 23 Mar 2022, at 13:30, Xiaomin Shen <email address hidden> wrote:
>
> Question #701040 on MadGraph5_aMC@NLO changed:
> https://answers.launchpad.net/mg5amcnlo/+question/701040
>
> Status: Answered => Open
>
> Xiaomin Shen is still having a problem:
> Hi Marco,
>
> Thank your for your explanations.
>
> As you have mentioned, == is not supported at NLO. Is it possible to
> calculate the NLO EW corrections only (without the LO contribution) by
> using
>
> generate p p > t t~ QED^2=0 QCD^2=4 [QED] QCD^2==4 QED^2==2,
>
> where == is used after the tag [QED]?
no, this won’t work either.
But there are two ways to have the NLO corrections only.
The first one is to tell the code not to integrate the born.
This can be done either from Cards/FKS_params.dat, using
#VetoedContributionTypes

remember to remove the trailing exclamation mark at the beginning of each line.

Or, hacking the code, opening SubProcesses/fks_singular.f , commenting the line
  48 call add_wgt(2,orders,wgt1,0d0,0d0)
in the compute_born subroutine

Another way is to integrate everything, but to do a separate histogram for the NLO corrections.
If you open the default analysis at fixed order
FixedOrderAnalysis/analysis_HwU_template.f

it separately histograms the born and the LO + NLO xsection using ibody,

       call HwU_fill(1,var,wgts)
 c only fill the total rate for the Born when ibody=3
       if (ibody.eq.3) call HwU_fill(2,var,wgts)
in the case you do not want to have the born, just veto the case ibody = 3

You can read the result in
Events/run_xx/MADatNLO.HwU

Cheers,

Marco

>
> Best,
> Xiaomin
>
> --
> You received this question notification because you are subscribed to
> the question.

Revision history for this message
Xiaomin Shen (xmshen) said :
#4

Thanks marco zaro, that solved my question.