Decay chain with diagram filter returns NoDiagramException

Asked by matteo maltoni

Hello MG5 experts,

I'm trying to

generate p p > t t~ sig8 NP=2, sig8 > t t~ --diagram_filter

where sig8 is a top-philic particle; the diagram filter is discarding all the diagrams with two sig8 in the s-channel, as I want to ban all the p p > sig8 sig8 > ... contributions from my sample (see the filter below).

It seems the filter is removing the decay diagram, as no diagrams are found in the end:

Interpreting 'NP=2' as 'NP<=2'
INFO: Trying process: g g > t t~ sig8 NP<=2 @1
WARNING: Diagram filter is ON and removed 4 diagrams for this subprocess.
INFO: Process has 23 diagrams
INFO: Trying process: u u~ > t t~ sig8 NP<=2 @1
WARNING: Diagram filter is ON and removed 1 diagrams for this subprocess.
INFO: Process has 7 diagrams
INFO: Trying process: u c~ > t t~ sig8 NP<=2 @1
INFO: Trying process: c u~ > t t~ sig8 NP<=2 @1
INFO: Trying process: c c~ > t t~ sig8 NP<=2 @1
WARNING: Diagram filter is ON and removed 1 diagrams for this subprocess.
INFO: Process has 7 diagrams
INFO: Trying process: d d~ > t t~ sig8 NP<=2 @1
WARNING: Diagram filter is ON and removed 1 diagrams for this subprocess.
INFO: Process has 7 diagrams
INFO: Trying process: d s~ > t t~ sig8 NP<=2 @1
INFO: Trying process: s d~ > t t~ sig8 NP<=2 @1
INFO: Trying process: s s~ > t t~ sig8 NP<=2 @1
WARNING: Diagram filter is ON and removed 1 diagrams for this subprocess.
INFO: Process has 7 diagrams
INFO: Process u~ u > t t~ sig8 added to mirror process u u~ > t t~ sig8
INFO: Process c~ c > t t~ sig8 added to mirror process c c~ > t t~ sig8
INFO: Process d~ d > t t~ sig8 added to mirror process d d~ > t t~ sig8
INFO: Process s~ s > t t~ sig8 added to mirror process s s~ > t t~ sig8
INFO: Checking for minimal orders which gives processes.
INFO: Please specify coupling orders to bypass this step.
INFO: Trying coupling order WEIGHTED<=1: WEIGTHED IS NP+QCD+2*QED
WARNING: Diagram filter is ON and removed 1 diagrams for this subprocess.
INFO: Trying coupling order WEIGHTED<=2: WEIGTHED IS NP+QCD+2*QED
WARNING: Diagram filter is ON and removed 1 diagrams for this subprocess.
INFO: Trying coupling order WEIGHTED<=3: WEIGTHED IS NP+QCD+2*QED
WARNING: Diagram filter is ON and removed 1 diagrams for this subprocess.
INFO: Trying process: sig8 > t t~ WEIGHTED<=4
WARNING: Diagram filter is ON and removed 1 diagrams for this subprocess.
Command "generate p p > t t~ sig8 NP=2, sig8 > t t~ --diagram_filter" interrupted with error:
NoDiagramException : No amplitudes generated from process Process: sig8 > t t~ WEIGHTED=4. Please enter a valid process

How is this possible? There is only one sig8 in the decay process, what am I missing?
The same error appears when trying to decay the p p > t t~ sig8 sample through MadSpin, as the diagram filter is still active at that level.

Is there a way to solve this?

Thank you,

Matteo

P.S. Here's my diagram filter:

import madgraph.core.drawing as drawing

def remove_diag (diag,model):

    '''
    Remove all diagrams with two sig8 in s-channel from
    generate p p > t t~ sig8 NP=2 QED=0
    '''

    draw = drawing.FeynmanDiagram(diag,model)
    draw.load_diagram()
    draw.define_level()

    sig8_sch = 0

    for p in draw.lineList:

        if p.id==9000001 and p.begin.level!=p.end.level:
            sig8_sch += 1

    if sig8_sch > 1:
        return True
    else:
        return False

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:
Revision history for this message
Best Olivier Mattelaer (olivier-mattelaer) said :
#1

Hi Matteo,

If you look at the generated diagram (before filtering), you will see that indeed you have "two" sig8 in the decay
sig8 > t t~
since that diagram is represented as sig8 > sig8 > t t~

Not sure why this is represented like this (maybe this is a bug of the diagram representation or it is encoded like that within MG5aMC for some practical reason (likely the second reason).
So my suggestion here is to check the number of particle in the initial state and discard any filtering for decay mode.

Cheers,

Olivier

> On 27 Jun 2023, at 20:00, matteo maltoni <email address hidden> wrote:
>
> New question #707130 on MadGraph5_aMC@NLO:
> https://answers.launchpad.net/mg5amcnlo/+question/707130
>
> Hello MG5 experts,
>
> I'm trying to
>
> generate p p > t t~ sig8 NP=2, sig8 > t t~ --diagram_filter
>
> where sig8 is a top-philic particle; the diagram filter is discarding all the diagrams with two sig8 in the s-channel, as I want to ban all the p p > sig8 sig8 > ... contributions from my sample (see the filter below).
>
> It seems the filter is removing the decay diagram, as no diagrams are found in the end:
>
> Interpreting 'NP=2' as 'NP<=2'
> INFO: Trying process: g g > t t~ sig8 NP<=2 @1
> WARNING: Diagram filter is ON and removed 4 diagrams for this subprocess.
> INFO: Process has 23 diagrams
> INFO: Trying process: u u~ > t t~ sig8 NP<=2 @1
> WARNING: Diagram filter is ON and removed 1 diagrams for this subprocess.
> INFO: Process has 7 diagrams
> INFO: Trying process: u c~ > t t~ sig8 NP<=2 @1
> INFO: Trying process: c u~ > t t~ sig8 NP<=2 @1
> INFO: Trying process: c c~ > t t~ sig8 NP<=2 @1
> WARNING: Diagram filter is ON and removed 1 diagrams for this subprocess.
> INFO: Process has 7 diagrams
> INFO: Trying process: d d~ > t t~ sig8 NP<=2 @1
> WARNING: Diagram filter is ON and removed 1 diagrams for this subprocess.
> INFO: Process has 7 diagrams
> INFO: Trying process: d s~ > t t~ sig8 NP<=2 @1
> INFO: Trying process: s d~ > t t~ sig8 NP<=2 @1
> INFO: Trying process: s s~ > t t~ sig8 NP<=2 @1
> WARNING: Diagram filter is ON and removed 1 diagrams for this subprocess.
> INFO: Process has 7 diagrams
> INFO: Process u~ u > t t~ sig8 added to mirror process u u~ > t t~ sig8
> INFO: Process c~ c > t t~ sig8 added to mirror process c c~ > t t~ sig8
> INFO: Process d~ d > t t~ sig8 added to mirror process d d~ > t t~ sig8
> INFO: Process s~ s > t t~ sig8 added to mirror process s s~ > t t~ sig8
> INFO: Checking for minimal orders which gives processes.
> INFO: Please specify coupling orders to bypass this step.
> INFO: Trying coupling order WEIGHTED<=1: WEIGTHED IS NP+QCD+2*QED
> WARNING: Diagram filter is ON and removed 1 diagrams for this subprocess.
> INFO: Trying coupling order WEIGHTED<=2: WEIGTHED IS NP+QCD+2*QED
> WARNING: Diagram filter is ON and removed 1 diagrams for this subprocess.
> INFO: Trying coupling order WEIGHTED<=3: WEIGTHED IS NP+QCD+2*QED
> WARNING: Diagram filter is ON and removed 1 diagrams for this subprocess.
> INFO: Trying process: sig8 > t t~ WEIGHTED<=4
> WARNING: Diagram filter is ON and removed 1 diagrams for this subprocess.
> Command "generate p p > t t~ sig8 NP=2, sig8 > t t~ --diagram_filter" interrupted with error:
> NoDiagramException : No amplitudes generated from process Process: sig8 > t t~ WEIGHTED=4. Please enter a valid process
>
>
> How is this possible? There is only one sig8 in the decay process, what am I missing?
> The same error appears when trying to decay the p p > t t~ sig8 sample through MadSpin, as the diagram filter is still active at that level.
>
> Is there a way to solve this?
>
> Thank you,
>
> Matteo
>
>
> P.S. Here's my diagram filter:
>
> import madgraph.core.drawing as drawing
>
> def remove_diag (diag,model):
>
> '''
> Remove all diagrams with two sig8 in s-channel from
> generate p p > t t~ sig8 NP=2 QED=0
> '''
>
> draw = drawing.FeynmanDiagram(diag,model)
> draw.load_diagram()
> draw.define_level()
>
> sig8_sch = 0
>
> for p in draw.lineList:
>
> if p.id==9000001 and p.begin.level!=p.end.level:
> sig8_sch += 1
>
> if sig8_sch > 1:
> return True
> else:
> return False
>
>
> --
> You received this question notification because you are an answer
> contact for MadGraph5_aMC@NLO.

Revision history for this message
matteo maltoni (matteo-maltoni) said :
#2

Thanks Olivier Mattelaer, that solved my question.