Keep GEN particle from two imported models

Asked by Wei Shi

Dear experts,

I wonder how to keep GEN particles information from two imported models in MadGraph5?

Currently in [1], I am importing HEFT model to generate the process "gg > h". Then I import my customized model Y to decay the HEFT generated higgs using "h > n1 n1" etc [1], where n1 and all following decay products are defined in my model Y.

So far after the model Y is imported, the gluon information from "gg > h" is removed by MG5 because it's from the previous heft model. I wonder how to keep both the gluon information from HEFT as well as the decay particles in my model Y in the LHE file.

Thanks much,

Wei

[1]

import model heft

generate p p > h QCD<=99 QED=0 HIG<=1

import model Y

add process h > n1 n1, (n1 > ad nD, ad > mu+ mu-)

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
Olivier Mattelaer (olivier-mattelaer) said :
#1

Hi,

You can do the following

> import model Y
> add model hgg_plugin
> generate p p > h QCD<=99 QED=0 HIG<=1, (h > n1 n1, (n1 > ad nD, ad > mu+ mu-))

Note that the command "add model hgg_plugin"
actually creates a new UFO model: Y__hgg_plugin/
So you can check what happens during such merge of two models.

Pointless to say that such merging of model is done at your own risk.
We do not garantee the physics validity of such type of merge.

Cheers,

Olivier

> On 3 May 2018, at 09:36, Wei Shi <email address hidden> wrote:
>
> New question #668537 on MadGraph5_aMC@NLO:
> https://answers.launchpad.net/mg5amcnlo/+question/668537
>
> Dear experts,
>
> I wonder how to keep GEN particles information from two imported models in MadGraph5?
>
> Currently in [1], I am importing HEFT model to generate the process "gg > h". Then I import my customized model Y to decay the HEFT generated higgs using "h > n1 n1" etc [1], where n1 and all following decay products are defined in my model Y.
>
> So far after the model Y is imported, the gluon information from "gg > h" is removed by MG5 because it's from the previous heft model. I wonder how to keep both the gluon information from HEFT as well as the decay particles in my model Y in the LHE file.
>
> Thanks much,
>
> Wei
>
> [1]
>
> import model heft
>
> generate p p > h QCD<=99 QED=0 HIG<=1
>
> import model Y
>
> add process h > n1 n1, (n1 > ad nD, ad > mu+ mu-)
>
> --
> You received this question notification because you are an answer
> contact for MadGraph5_aMC@NLO.

Revision history for this message
Wei Shi (weishi10141993) said :
#2

Indeed, it reports some error I have no idea of the meaning.

Cheers,
Wei

[1]
INFO: Generating Feynman diagrams for Process: g g > h HIG<=1 HIW<=1 NP<=4 QCD<=99 QED=0 @1
  Decay: h > n1 n1 HIG<=1 HIW<=1 NP<=4 WEIGHTED<=2
    Decay: n1 > ad nd HIG<=1 HIW<=1 NP<=4 WEIGHTED<=2
      Decay: ad > mu+ mu- HIG<=1 HIW<=1 NP<=4 WEIGHTED<=2
    Decay: n1 > ad nd HIG<=1 HIW<=1 NP<=4 WEIGHTED<=2
      Decay: ad > mu+ mu- HIG<=1 HIW<=1 NP<=4 WEIGHTED<=2
INFO: Finding symmetric diagrams for subprocess group gg_h_h_n1n1_n1_adnd_ad_mupmum_n1_adnd_ad_mupmum
Generated helas calls for 1 subprocesses (1 diagrams) in 0.054 s
Wrote files for 14 helas calls in 0.194 s
Error detected in sub-command output DarkSUSY -nojpeg
write debug file MG5_debug
If you need help with this issue please contact us on https://answers.launchpad.net/mg5amcnlo
MadGraph5Error : Unable to evaluate mdl_MW__1 = cmath.sqrt(mdl_MZ__exp__2/2. + cmath.sqrt(mdl_MZ__exp__4/4. - (mdl_aEW*cmath.pi*mdl_MZ__exp__2)/(mdl_Gf*mdl_sqrt__2))): raise error: name 'mdl_aEW' is not defined
quit

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) said :
#3

Hi,

Which version of MG5aMC are you using?

This was not the type of problem I was expecting. Can you put your model somewhere?
I want to check some stuff on this.

Cheers,

Olivier

Revision history for this message
Wei Shi (weishi10141993) said :
#4

Hi Oliver,

Sure. The UFO model is at [1]. And I am using MG5_aMC_v2.6.1.

Basically following this instruction [2].

Cheers,

Wei

[1]
https://github.com/weishi10141993/DarkSUSY_MC_MG5/blob/master/MSSMDarkSector/MSSMD_UFO.zip
[2]
https://github.com/weishi10141993/DarkSUSY_MC_MG5#darksusy-mc-mg5

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) said :
#5

Hi,

I would actually first worry about the follwoing warning:

INFO: The two model defines the parameter 'MH'
      the original model for MASS :[37]
      the plugin for MASS :[25]
      We will rename the one from the plugin to MH__1
INFO: The two model defines the block 'MASS' with id '[25]' with different parameter name 'MH__1', 'MH01'
     We will merge those two parameters in a single one
INFO: The two model defines the parameter 'WH'
      the original model for DECAY :[37]
      the plugin for DECAY :[25]
      We will rename the one from the plugin to WH__1
INFO: The two model defines the block 'DECAY' with id '[25]' with different parameter name 'WH__1', 'WH01'
     We will merge those two parameters in a single one

This seems to indicate that the SM Higgs has a wrong pdg code (37) in your original model.
(i.e. not the official pdg convention) if this is the case, the effective theory will be applied on the wrong particle (on pdg=25 and not on pdg=37).

Otherwise the crash is due to a complex case where your original model is not gauge invariant by construction while the plugin is. So the handling of the W mass is done in different way and the code fails to assign the correct order for the evaluation of the parameter.

You should be able to fix that easily by hand by fixing
MSSMD__hgg_plugin model

[2]
https://github.com/weishi10141993/DarkSUSY_MC_MG5#darksusy-mc-mg5

Looks like the author of that page are not aware that we can generate displaced vertex as well.

Cheers,

Olivier

On 3 May 2018, at 19:13, Wei Shi <<email address hidden><mailto:<email address hidden>>> wrote:

Question #668537 on MadGraph5_aMC@NLO changed:
https://answers.launchpad.net/mg5amcnlo/+question/668537

Wei Shi posted a new comment:
Hi Oliver,

Sure. The UFO model is at [1]. And I am using MG5_aMC_v2.6.1.

Basically following this instruction [2].

Cheers,

Wei

[1]
https://github.com/weishi10141993/DarkSUSY_MC_MG5/blob/master/MSSMDarkSector/MSSMD_UFO.zip
[2]
https://github.com/weishi10141993/DarkSUSY_MC_MG5#darksusy-mc-mg5

--
You received this question notification because you are an answer
contact for MadGraph5_aMC@NLO.

Revision history for this message
Wei Shi (weishi10141993) said :
#6

Hi Oliver,

I am the author of this model and prepared all that instruction. The model is gauge invariant, I checked this [1] using "CheckHermiticity" in FeynRules2.0. This model is totally based on the official MSSM UFO. In the FeynRule file[2], I added all particles/vertices after neutralino "n1". So basically only "n1" is used from MSSM. And I should probably work out a simplified version of the model.

So the pdgid=37 is just the charged higgs from MSSM[3] and that symbol conflicts with that in the HEFT plugin. I should be able to modify that in my model to avoid the conflict symbol and see if that works.

Regarding displaced particle "ad", could you point me to how to setup that? I didn't know this functionality. We used MadGraph4 in old analysis and this is the first time we migrate to MadGraph5 and it's a pain for us. I'd appreciate your help!

Thanks much,

Wei

[1]
https://github.com/weishi10141993/DarkSUSY_MC_MG5/blob/master/MSSMD.nb
[2]
https://github.com/weishi10141993/DarkSUSY_MC_MG5/blob/master/MSSMDarkSector/MSSMD.fr
[3]
https://github.com/weishi10141993/DarkSUSY_MC_MG5/blob/master/MSSMDarkSector/MSSMD.fr#L153-L155

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) said :
#7

Hi,

> This model is totally based on the official MSSM UFO. In
> the FeynRule file[2], I added all particles/vertices after neutralino
> "n1". So basically only "n1" is used from MSSM. And I should probably
> work out a simplified version of the model.

If you use FR to create the model, then the easiest is to go back at the FR level and
perform such merge at the level of the Lagrangian. (The Lagrangian for the HEFT interaction is publicly available on the FR website).

This will ensure full consistency of the model.

> So the pdgid=37 is just the charged higgs from MSSM[3] and that symbol
> conflicts with that in the HEFT plugin. I should be able to modify that
> in my model to avoid the conflict symbol and see if that works.

Ok it is fine then, and handle correctly. I was worry that they were some confusion between h1 and h2.
But if it is not the case then perfect.

> I am the author of this model and prepared all that instruction. The
> model is gauge invariant, I checked this [1] using "CheckHermiticity" in
> FeynRules2.0.

Ok great! My confusion is that you have the W mass as a free parameter of the model and not as a parameter fixed by gauge invariance. Which parameter is fixed by gauge invariance in your model?
THe hgg_plugin has this mass fixed by gauge invariance.
The correct handling of two different gauge fixing is a nightmare that I do not see any easy way to fix via the add model functionality.

> Regarding displaced particle "ad", could you point me to how to setup
> that? I didn't know this functionality. We used MadGraph4 in old
> analysis and this is the first time we migrate to MadGraph5 and it's a
> pain for us. I'd appreciate your help!

Sure,
The easiest way is to modify the following line of the run_card:
  -1.0 = time_of_flight ! threshold (in mm) below which the invariant livetime is not written (-1 means not written)

At the end of the day it is done exactly like your script. (We run a python script on the output file) to add such information, the only difference is that we do not gunzip the file and that we use a full lhe_parser for reading the file).

What was the painful part? The creation of the model?
The rest should be pretty straightforward actually.

Also, what are doing your script "LHE Validation"? (Just for curiosity)

Cheers,

Olivier

> On 3 May 2018, at 23:42, Wei Shi <email address hidden> wrote:
>
> Question #668537 on MadGraph5_aMC@NLO changed:
> https://answers.launchpad.net/mg5amcnlo/+question/668537
>
> Wei Shi posted a new comment:
> Hi Oliver,
>
> I am the author of this model and prepared all that instruction. The
> model is gauge invariant, I checked this [1] using "CheckHermiticity" in
> FeynRules2.0. This model is totally based on the official MSSM UFO. In
> the FeynRule file[2], I added all particles/vertices after neutralino
> "n1". So basically only "n1" is used from MSSM. And I should probably
> work out a simplified version of the model.
>
> So the pdgid=37 is just the charged higgs from MSSM[3] and that symbol
> conflicts with that in the HEFT plugin. I should be able to modify that
> in my model to avoid the conflict symbol and see if that works.
>
> Regarding displaced particle "ad", could you point me to how to setup
> that? I didn't know this functionality. We used MadGraph4 in old
> analysis and this is the first time we migrate to MadGraph5 and it's a
> pain for us. I'd appreciate your help!
>
> Thanks much,
>
> Wei
>
> [1]
> https://github.com/weishi10141993/DarkSUSY_MC_MG5/blob/master/MSSMD.nb
> [2]
> https://github.com/weishi10141993/DarkSUSY_MC_MG5/blob/master/MSSMDarkSector/MSSMD.fr
> [3]
> https://github.com/weishi10141993/DarkSUSY_MC_MG5/blob/master/MSSMDarkSector/MSSMD.fr#L153-L155
>
> --
> You received this question notification because you are an answer
> contact for MadGraph5_aMC@NLO.

Revision history for this message
Wei Shi (weishi10141993) said :
#8

Hi Oliver,

The LHE validation script is used to check the pT, eta, phi, etc distributions of all generated particles. Basically done for our analysis and serves as a first check that things are right. For example, in this case of migration to MG5, I can compare these distributions from LHEs generated in MG4 and MG5. The current comparison is here in [1]. For example, there is something wrong in higgs phi(slide 27). This is because in my model "uu~>h" is used to generate the higgs. And it looks the "gg>h" from HEFT can remove this discrepancy. There is no "ggH" vertex in MSSM because of multiple higgs as far as I understand.

In MG4, we used HEFT model to generate the higgs. And then the BRIDGE program is used to decay the higgs from customized user model. This is fundamentally changed in MG5. And that's one of the major reasons we need to re-implement the model. The other reason is administrative. We can't keep using MG4 since the central MC production team won't accept it.

The painful part is the model implementation in FeynRules in order to get the UFO format needed for MG5. I am a graduate student on experimental particle physics, and this goes a bit too theoretical for me. I struggled to go to this far by asking several phenomenologists. And I am not even able to answer your question on the W mass-gauge invariance relation.

Regarding the lifetime setting "-1.0 = time_of_flight !" in run_card, how do I set the lifetime only for the particle "ad"? Not for other particles.

Thanks much,

Wei

[1]
https://github.com/weishi10141993/DarkSUSY_MC_MG5/blob/master/MSSMDarkSector/LHE_Validation_80k.pdf

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) said :
#9

Hi,

> In MG4, we used HEFT model to generate the higgs. And then the BRIDGE
> program is used to decay the higgs from customized user model. This is
> fundamentally changed in MG5. And that's one of the major reasons we
> need to re-implement the model. The other reason is administrative. We
> can't keep using MG4 since the central MC production team won't accept
> it.

Actually this can be an option. BRIDGE is not supported but we have Madspin.
which can works for this specific case.

To have it work you need to set the madspin_card like this:

> set spinmode none
> import model ModelNane ParamCardPath --bypass_check
> decay h > n1 n1, (n1 > ad nD, ad > mu+ mu-)

> Regarding the lifetime setting "-1.0 = time_of_flight !" in run_card,
> how do I set the lifetime only for the particle "ad"? Not for other
> particles.

This would not work for the MadSpin option actually (they are way to do it but in your case, the simplest is that you use your own script). Additionally we do not have an option to target only specific particles, you should in principle play with the proposed minimal distance cut to do that.

Cheers,

Olivier

> On 4 May 2018, at 10:32, Wei Shi <email address hidden> wrote:
>
> Question #668537 on MadGraph5_aMC@NLO changed:
> https://answers.launchpad.net/mg5amcnlo/+question/668537
>
> Wei Shi posted a new comment:
> Hi Oliver,
>
> The LHE validation script is used to check the pT, eta, phi, etc
> distributions of all generated particles. Basically done for our
> analysis and serves as a first check that things are right. For example,
> in this case of migration to MG5, I can compare these distributions from
> LHEs generated in MG4 and MG5. The current comparison is here in [1].
> For example, there is something wrong in higgs phi(slide 27). This is
> because in my model "uu~>h" is used to generate the higgs. And it looks
> the "gg>h" from HEFT can remove this discrepancy. There is no "ggH"
> vertex in MSSM because of multiple higgs as far as I understand.
>
> In MG4, we used HEFT model to generate the higgs. And then the BRIDGE
> program is used to decay the higgs from customized user model. This is
> fundamentally changed in MG5. And that's one of the major reasons we
> need to re-implement the model. The other reason is administrative. We
> can't keep using MG4 since the central MC production team won't accept
> it.
>
> The painful part is the model implementation in FeynRules in order to
> get the UFO format needed for MG5. I am a graduate student on
> experimental particle physics, and this goes a bit too theoretical for
> me. I struggled to go to this far by asking several phenomenologists.
> And I am not even able to answer your question on the W mass-gauge
> invariance relation.
>
> Regarding the lifetime setting "-1.0 = time_of_flight !" in run_card,
> how do I set the lifetime only for the particle "ad"? Not for other
> particles.
>
> Thanks much,
>
> Wei
>
> [1]
> https://github.com/weishi10141993/DarkSUSY_MC_MG5/blob/master/MSSMDarkSector/LHE_Validation_80k.pdf
>
> --
> You received this question notification because you are an answer
> contact for MadGraph5_aMC@NLO.

Revision history for this message
Wei Shi (weishi10141993) said :
#10

Hi Oliver,

I actually tried the madspin_card as you said:

If I import HEFT in proc_card to generate the higgs, and then import my model in madspin card for the decay processes, it produce the LHE file with event content like [1]. So the gluon information (pdgid=21) from "gg>h" is removed in event. Is there a way to keep the gluon information from HEFT in this case?

If I specify all processes in proc_card and only import my model, the generated event will be like [2], where you can see the higgs is mainly produced from "c c~>h" (c quark pdgid=4). For this case if I want "gg>h" and keep gluon information, you already told me the "add model hgg_plugin" solution.

Cheers,
Wei

[1]
https://github.com/weishi10141993/DarkSUSY_MC_MG5/blob/master/MSSMDarkSector/Decay_in_MadSpin.png
[2]
https://github.com/weishi10141993/DarkSUSY_MC_MG5/blob/master/MSSMDarkSector/Decay_in_pro_card.png

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) said :
#11

I have run madspin and it keeps the gluon information.

The events I look at is:
PROC_heft_0/Events/run_02_decayed_1/unweighted_events.lhe.gz

Cheers,

Olivier

> On 4 May 2018, at 11:17, Wei Shi <email address hidden> wrote:
>
> Question #668537 on MadGraph5_aMC@NLO changed:
> https://answers.launchpad.net/mg5amcnlo/+question/668537
>
> Wei Shi posted a new comment:
> Hi Oliver,
>
> I actually tried the madspin_card as you said:
>
> If I import HEFT in proc_card to generate the higgs, and then import my
> model in madspin card for the decay processes, it produce the LHE file
> with event content like [1]. So the gluon information (pdgid=21) from
> "gg>h" is removed in event. Is there a way to keep the gluon information
> from HEFT in this case?
>
> If I specify all processes in proc_card and only import my model, the
> generated event will be like [2], where you can see the higgs is mainly
> produced from "c c~>h" (c quark pdgid=4). For this case if I want
> "gg>h" and keep gluon information, you already told me the "add model
> hgg_plugin" solution.
>
> Cheers,
> Wei
>
> [1]
> https://github.com/weishi10141993/DarkSUSY_MC_MG5/blob/master/MSSMDarkSector/Decay_in_MadSpin.png
> [2]
> https://github.com/weishi10141993/DarkSUSY_MC_MG5/blob/master/MSSMDarkSector/Decay_in_pro_card.png
>
> --
> You received this question notification because you are an answer
> contact for MadGraph5_aMC@NLO.

Revision history for this message
Wei Shi (weishi10141993) said :
#12

Hi Oliver,

Could you send me your madSpin_card, proc_card and the lhe file?

When you set as below:

set spinmode none
import model ModelName ParamCardPath --bypass_check
decay h > n1 n1, (n1 > ad nD, ad > mu+ mu-)

what is the ParamCardPath? The imported model is essentially the UFO model folder containing all python files. It doesn't have a param card.

Cheers,

Wei

Revision history for this message
Best Olivier Mattelaer (olivier-mattelaer) said :
#13

proc_card:
set default_unset_couplings 99
set group_subprocesses Auto
set ignore_six_quark_processes False
set loop_optimized_output True
set loop_color_flows False
set gauge unitary
set complex_mass_scheme False
set max_npoint_for_channel 0
import model sm
define p = g u c d s u~ c~ d~ s~
define j = g u c d s u~ c~ d~ s~
define l+ = e+ mu+
define l- = e- mu-
define vl = ve vm vt
define vl~ = ve~ vm~ vt~
import model heft
generate g g > h
output

madspin_card:
set spinmode none
import model MSSMD_UFO PROC_MSSMD_UFO__hgg_plugin_0/Cards/param_card.dat --bypass_check
decay h > n1 n1, (n1 > ad nD, ad > mu+ mu-)
launch

The param_card is the file where you specify your benchmark point.
You can create one within your UFO model by running
python write_param_card.py
Note that in order for madspin to make sense, you need to have the same mass for the Higgs in both model.

Cheers,

Olivier

> On 4 May 2018, at 14:22, Wei Shi <email address hidden> wrote:
>
> Question #668537 on MadGraph5_aMC@NLO changed:
> https://answers.launchpad.net/mg5amcnlo/+question/668537
>
> Wei Shi posted a new comment:
> Hi Oliver,
>
> Could you send me your madSpin_card, proc_card and the lhe file?
>
> When you set as below:
>
> set spinmode none
> import model ModelName ParamCardPath --bypass_check
> decay h > n1 n1, (n1 > ad nD, ad > mu+ mu-)
>
> what is the ParamCardPath? The imported model is essentially the UFO
> model folder containing all python files. It doesn't have a param card.
>
> Cheers,
>
> Wei
>
> --
> You received this question notification because you are an answer
> contact for MadGraph5_aMC@NLO.

Revision history for this message
Wei Shi (weishi10141993) said :
#14

Hi Oliver,

Use Madspin works. One caveat to ask you, in the madspin card, when doing

"import model MSSMD_UFO PROC_MSSMD_UFO__hgg_plugin_0/Cards/param_card.dat --bypass_check",

 I need to specify the full global path of "param_card.dat" on my linux machine, which seems not in your case.

 Is there a better way quote the path of the "param_card.dat" without using the global path, something like this:

"import model MSSMD_UFO $MadGraph/models/Some_UFO_Model/param_card.dat --bypass_check"

Thanks much,
Wei

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) said :
#16

Hi,

>
> "import model MSSMD_UFO $MadGraph/models/Some_UFO_Model/param_card.dat
> --bypass_check"

no we do not have such type of shortcut.
Relative path are relative to your current work directory.

Cheers,

Olivier

> On 5 May 2018, at 14:57, Wei Shi <email address hidden> wrote:
>
> Question #668537 on MadGraph5_aMC@NLO changed:
> https://answers.launchpad.net/mg5amcnlo/+question/668537
>
> Wei Shi posted a new comment:
> Hi Oliver,
>
> Use Madspin works. One caveat to ask you, in the madspin card, when
> doing
>
> "import model MSSMD_UFO
> PROC_MSSMD_UFO__hgg_plugin_0/Cards/param_card.dat --bypass_check",
>
> I need to specify the full global path of "param_card.dat" on my linux
> machine, which seems not in your case.
>
> Is there a better way quote the path of the "param_card.dat" without
> using the global path, something like this:
>
> "import model MSSMD_UFO $MadGraph/models/Some_UFO_Model/param_card.dat
> --bypass_check"
>
> Thanks much,
> Wei
>
> --
> You received this question notification because you are an answer
> contact for MadGraph5_aMC@NLO.