Doubts on the implementation of my own cut in LO cuts.f file

Asked by matteo maltoni on 2021-04-25

Dear MadGraph team,

I'm trying to implement a cut on a certain variable for a LO process, with generation of events, in the cuts.f file.
In order to do so, I need to identify the electron in the final state of my process, but I don't know how to do, since in the file I didn't find any variable related to the particle PDGs (like the iPDG one that can be found in the NLO fixed_order cuts.f).

I noticed there are variables, like IS_A_L or IS_A_NU, that keep track of some particles identities, but I didn't understand how they are initialised.

Can you help me solving this?

Thank you

Matteo

Question information

Language:
English Edit question
Status:
Solved
For:
MadGraph5_aMC@NLO Edit question
Assignee:
No assignee Edit question
Solved by:
Olivier Mattelaer
Solved:
Last query:
Last reply:

Hi,

At LO, the code is more optimised than at NLO, this means that by default you can not use the pdg code of a particle for a cut since that information is not yet know at that stage of the computation.
let's give an example
if you do p p > l+ l-
madgraph will have only a single directory for p p > e+ e- and for p p > mu+ mu- (even if the matrix-element are not identical)

The phase-space integration of those two matrix-element will be done at the same time and thererefore you must have identical cuts on electron/muon otherwise you will have wrong result.
in cuts.f you will actually find that you will never have the pdg of the muon but only the one of the electron.
(the choice of writing an electron or a muon in the lhe file is done later)

So indeed the best practise is to use IS_A_L (and similar) for using the cuts.
(or forbid such type of optimisation)
The variable Is_A_L are define in setcuts.f which is based on the pdg code (with the above cavaets)

Cheers,

Olivier

PS: NLO computation does not have such optimization and this is the key reason why we keep a pure LO code since that one is much more optimised than the one comming from the NLO part.

> On 25 Apr 2021, at 20:20, matteo maltoni <email address hidden> wrote:
>
> New question #696751 on MadGraph5_aMC@NLO:
> https://answers.launchpad.net/mg5amcnlo/+question/696751
>
> Dear MadGraph team,
>
> I'm trying to implement a cut on a certain variable for a LO process, with generation of events, in the cuts.f file.
> In order to do so, I need to identify the electron in the final state of my process, but I don't know how to do, since in the file I didn't find any variable related to the particle PDGs (like the iPDG one that can be found in the NLO fixed_order cuts.f).
>
> I noticed there are variables, like IS_A_L or IS_A_NU, that keep track of some particles identities, but I didn't understand how they are initialised.
>
> Can you help me solving this?
>
> Thank you
>
> Matteo
>
> --
> You received this question notification because you are an answer
> contact for MadGraph5_aMC@NLO.

Hi Olivier,

Thank you for the explanation, now it's more clear!

I have another question regarding this: since I didn't know how to implement the cut, I generated the events without it, and then I tried to get the cross-section in the presence of the cut by adding the weights of the events which satisfy the cut.
However, I get a result which is different by a factor 3 than the one I should obtain (which I know from fixed order NLO computation of the same process).

Is this normal?

Best,

Matteo

Hi,

Likely an issue but since this is LO versus NLO this can also be a huge K-factor.

> and then I tried to get the cross-section in the presence of the cut by adding the weights of the events which satisfy the cut.

Did you check the associate statistical uncertainty. If you do this, I guess that you are not doing positive definite computation so statistical uncertainty can blows up very quickly.

Cheers,

Olivier

> On 25 Apr 2021, at 22:15, matteo maltoni <email address hidden> wrote:
>
> Question #696751 on MadGraph5_aMC@NLO changed:
> https://answers.launchpad.net/mg5amcnlo/+question/696751
>
> Status: Answered => Open
>
> matteo maltoni is still having a problem:
> Hi Olivier,
>
> Thank you for the explanation, now it's more clear!
>
> I have another question regarding this: since I didn't know how to implement the cut, I generated the events without it, and then I tried to get the cross-section in the presence of the cut by adding the weights of the events which satisfy the cut.
> However, I get a result which is different by a factor 3 than the one I should obtain (which I know from fixed order NLO computation of the same process).
>
> Is this normal?
>
> Best,
>
> Matteo
>
> --
> You received this question notification because you are an answer
> contact for MadGraph5_aMC@NLO.

Thanks Olivier Mattelaer, that solved my question.