# remove diagrams with BSM coupling at certain vertex

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

- 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:/

>

> 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!