remove diagrams with BSM coupling at certain vertex

Asked by Jiayi Chen on 2021-02-02

Hi,

I am trying to generate EFT samples using SMEFTsim, for the VBF->HWW->lvlv process. See below the proc_card setup for the SM+EFT interference generation:

generate p p > h > l+ vl l- vl~ j j /a NP = 1 QCD == 0 NP^2 == 1 --diagram_filter

I want to generate two different samples for this process: one with BSM coupling only at the VBF production vertices (VVH and qqV); another only at the decay vertices (HWW and Wlv). So I am trying to use the "diagram_filter" to filter out Feynman diagrams with BSM coupling at a vertex where I don't want it to be. My first question is, is there a better method to do this?

If removing diagrams is the only way to go, how can I identify all the VVH and qqV vertices in the diagram_filter script and decide if the vertex has BSM coupling or not?

Many thanks for the help!

Jiayi

Question information

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

Can you define two different type coupling order (inside the UFO model),
one for HWW and Wlv) and one for HWW and Wlv?

Cheers,

Olivier

Jiayi Chen (jychen0826) said : #2

Hi Olivier,

Thank you for the prompt response.

That can be the solution, for Wlv and qqV vertices. Thank you so much!

However just one caveat, I still have the HWW vertex, which can be either a production vertex or a decay vertex.
But for this, I might already have a solution, but I have some questions.

In the user_filter.py, I print out all the diagrams and their vertices details like this:

def remove_diag(diag):
    for vertex in diag['vertices']:
        print vertex

I notices for a NP=1 diagram vs NP=1 diagram, the BSM vertex ID of NP=1 is greater than that of the NP=0 by 1.
for NP=0, the HWW decay vertex:

 {
14:59:57 'id': 20,
14:59:57 'legs': [{
14:59:57 'id': 24,
14:59:57 'number': 3,
14:59:57 'state': True,
14:59:57 'from_group': True,
14:59:57 'loop_line': False,
14:59:57 'onshell': None,
14:59:57 'polarization': []
14:59:57 }, {
14:59:57 'id': -24,
14:59:57 'number': 5,
14:59:57 'state': True,
14:59:57 'from_group': True,
14:59:57 'loop_line': False,
14:59:57 'onshell': None,
14:59:57 'polarization': []
14:59:57 }, {
14:59:57 'id': 25,
14:59:57 'number': 3,
14:59:57 'state': True,
14:59:57 'from_group': True,
14:59:57 'loop_line': False,
14:59:57 'onshell': None,
14:59:57 'polarization': []
14:59:57 }]
14:59:57 },

for NP=1, the id becomes "21". I noticed this is the case for other NP=0 vs NP=1 diagrams as well.
So I could filter out HWW decay that has vertex id =21, for example.

My question is, how can I find the vertex id for other coupling, for example a We-ve~ vertex?

Jiayi

You can do "display interactions" to get such information.

Cheers,

Olivier

> On 2 Feb 2021, at 22:55, Jiayi Chen <email address hidden> wrote:
>
> Question #695337 on MadGraph5_aMC@NLO changed:
> https://answers.launchpad.net/mg5amcnlo/+question/695337
>
> Status: Answered => Open
>
> Jiayi Chen is still having a problem:
> Hi Olivier,
>
> Thank you for the prompt response.
>
> That can be the solution, for Wlv and qqV vertices. Thank you so much!
>
> However just one caveat, I still have the HWW vertex, which can be either a production vertex or a decay vertex.
> But for this, I might already have a solution, but I have some questions.
>
> In the user_filter.py, I print out all the diagrams and their vertices
> details like this:
>
> def remove_diag(diag):
> for vertex in diag['vertices']:
> print vertex
>
> I notices for a NP=1 diagram vs NP=1 diagram, the BSM vertex ID of NP=1 is greater than that of the NP=0 by 1.
> for NP=0, the HWW decay vertex:
>
> {
> 14:59:57 'id': 20,
> 14:59:57 'legs': [{
> 14:59:57 'id': 24,
> 14:59:57 'number': 3,
> 14:59:57 'state': True,
> 14:59:57 'from_group': True,
> 14:59:57 'loop_line': False,
> 14:59:57 'onshell': None,
> 14:59:57 'polarization': []
> 14:59:57 }, {
> 14:59:57 'id': -24,
> 14:59:57 'number': 5,
> 14:59:57 'state': True,
> 14:59:57 'from_group': True,
> 14:59:57 'loop_line': False,
> 14:59:57 'onshell': None,
> 14:59:57 'polarization': []
> 14:59:57 }, {
> 14:59:57 'id': 25,
> 14:59:57 'number': 3,
> 14:59:57 'state': True,
> 14:59:57 'from_group': True,
> 14:59:57 'loop_line': False,
> 14:59:57 'onshell': None,
> 14:59:57 'polarization': []
> 14:59:57 }]
> 14:59:57 },
>
> for NP=1, the id becomes "21". I noticed this is the case for other NP=0 vs NP=1 diagrams as well.
> So I could filter out HWW decay that has vertex id =21, for example.
>
> My question is, how can I find the vertex id for other coupling, for
> example a We-ve~ vertex?
>
> Jiayi
>
> --
> You received this question notification because you are an answer
> contact for MadGraph5_aMC@NLO.

Jiayi Chen (jychen0826) said : #4

Hi Olivier,

Thank you for the tip.

I was able to list all interaction:

Current model contains 69 interactions
1:h h h h QED=2
2:h h h QED=1
3:a a h SMHLOOP=1 QED=3
4:a a h NP=1 QED=1
5:a a h h NP=1 QED=2
6:g g h SMHLOOP=1 QED=1 QCD=2
7:w- w+ h h QED=2
8:w- w+ h h NP=1 QED=2
9:w- w+ h QED=1
10:w- w+ h NP=1 QED=1
...
...

But the index of the interaction doesn't agree with the vertex id I see...
for instance, the hww index here are 9 and 10 for NP=0 and NP=1, but the vertex id were 20 and 21.

Do you have more insight to this? thank you very much!

Best,
Jiayi

In the model I have tested it was in sync, so i do not know,

One idea is to do
display interactions h w+ w-
you should get more details information including the vertex_id

Cheers,

Olivier

Jiayi Chen (jychen0826) said : #6

Thanks Olivier Mattelaer, that solved my question.

Jiayi Chen (jychen0826) said : #7

Thank you so much for the help!