For the HC_NLO_X0_UFO model I cannot use "output standalone dir_name" for vector boson fusion but I don't completely understand the "output dir_name" command.

Asked by Lucas Wiens on 2017-09-04

Hello,

I'm using the following commands

>import model HC_NLO_X0_UFO-no_b_mass
>generate p p > x0 j j $$ w+ w- z / a [QCD]
>output standalone vbf

which gives me an error message:

InvalidCmd : You generated a NLO process, which cannot be exported in standalone mode.
 Please use the command "output DIR_NAME."

As far as I understand this, for VBF I need the [QCD] loop correction so that the higher order contribution aren't all 0. The reason I want to use "output standalone" is because then in each subprocess directory I have a makefile to compile matrix2py which calculates the matrix element. But since the standalone output doesn't work I am now using "output vbf" as was suggested but there still is a problem.

When I execute:
sed -i -e "s@^\(LINKLIBS.*=.*\)\$@\1 -L\$(CMSSW_RELEASE_BASE)/external/\$(SCRAM_ARCH)/lib/@g" $CMSSW_BASE/src/CMSAachen3B/GeneratorTools/data/vbf_nlo/JJX0_JJ/SubProcesses/makefile

sed -i -e "s@\(F2PY.*\)\$@\1 --fcompiler=gnu95@g" $CMSSW_BASE/src/CMSAachen3B/GeneratorTools/data/vbf_nlo/JJX0_JJ/SubProcesses/makefile

cd $CMSSW_BASE/src/CMSAachen3B/GeneratorTools/data/vbf_nlo/JJX0_JJ/SubProcesses/P0_uxux_x0uxux_no_a

make matrix2py.so

I get:
makefile:3: ../analyse_opts: No such file or directory
make: *** No rule to make target `../analyse_opts'. Stop.

I assume the reason that this doesn't work is because the commands I use are designed for the standalone output because I already did this with gluonfusion and it worked with the HC_UFO model (and here I used "output standalone ggh". For VBF I need this other model for the [QCD] loop correction because I'm interested in the pseudoscalar Higgs and all my matrix elements are equal to 0 with the HC_UFO model.
I imagine that the makefile I need is not the makefile I used.

I have also tried what was suggested in this thread https://answers.launchpad.net/mg5amcnlo/+question/271540 to get the standalone output to work but I got the same error message as before.

So my question is, where is the makefile for the matrix2py.so when I save my output using the regular "output DIR_NAME" command?

Question information

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

Dear Lucas,

Do I understand correctly that you are ONLY interested in the coefficient of the loop associated to the VBF diagram?
In that case, you should go trough with the following syntax:

>> import model HC_NLO_X0_UFO-no_b_mass
>> generate p p > x0 j j $$ w+ w- z / a [virt=QCD]
>> output standalone vbf

Cheers,

Olivier

> On 4 Sep 2017, at 16:14, Lucas Wiens <email address hidden> wrote:
>
> New question #657366 on MadGraph5_aMC@NLO:
> https://answers.launchpad.net/mg5amcnlo/+question/657366
>
> Hello,
>
> I'm using the following commands
>
>> import model HC_NLO_X0_UFO-no_b_mass
>> generate p p > x0 j j $$ w+ w- z / a [QCD]
>> output standalone vbf
>
> which gives me an error message:
>
> InvalidCmd : You generated a NLO process, which cannot be exported in standalone mode.
> Please use the command "output DIR_NAME."
>
> As far as I understand this, for VBF I need the [QCD] loop correction so that the higher order contribution aren't all 0. The reason I want to use "output standalone" is because then in each subprocess directory I have a makefile to compile matrix2py which calculates the matrix element. But since the standalone output doesn't work I am now using "output vbf" as was suggested but there still is a problem.
>
> When I execute:
> sed -i -e "s@^\(LINKLIBS.*=.*\)\$@\1 -L\$(CMSSW_RELEASE_BASE)/external/\$(SCRAM_ARCH)/lib/@g" $CMSSW_BASE/src/CMSAachen3B/GeneratorTools/data/vbf_nlo/JJX0_JJ/SubProcesses/makefile
>
> sed -i -e "s@\(F2PY.*\)\$@\1 --fcompiler=gnu95@g" $CMSSW_BASE/src/CMSAachen3B/GeneratorTools/data/vbf_nlo/JJX0_JJ/SubProcesses/makefile
>
> cd $CMSSW_BASE/src/CMSAachen3B/GeneratorTools/data/vbf_nlo/JJX0_JJ/SubProcesses/P0_uxux_x0uxux_no_a
>
> make matrix2py.so
>
> I get:
> makefile:3: ../analyse_opts: No such file or directory
> make: *** No rule to make target `../analyse_opts'. Stop.
>
> I assume the reason that this doesn't work is because the commands I use are designed for the standalone output because I already did this with gluonfusion and it worked with the HC_UFO model (and here I used "output standalone ggh". For VBF I need this other model for the [QCD] loop correction because I'm interested in the pseudoscalar Higgs and all my matrix elements are equal to 0 with the HC_UFO model.
> I imagine that the makefile I need is not the makefile I used.
>
> I have also tried what was suggested in this thread https://answers.launchpad.net/mg5amcnlo/+question/271540 to get the standalone output to work but I got the same error message as before.
>
> So my question is, where is the makefile for the matrix2py.so when I save my output using the regular "output DIR_NAME" command?
>
> --
> You received this question notification because you are an answer
> contact for MadGraph5_aMC@NLO.

Lucas Wiens (lucas-wiens) said : #2

Dear Olivier,

I'm not 100% sure about how to answer your question. So I'll give a bit more detail on what I'm trying to do. I want to use the matrix elements for reweighting a standard model Higgs to tau tau sample to a pseudoscalar Higgs to tau tau or a mixture of the two. To calculate the matrix elements I used this method.
https://cp3.irmp.ucl.ac.be/projects/madgraph/wiki/FAQ-General-4
Like I already said, when I tried using the HC_UFO model all my matrix elements were 0 for VBF. Then I found out about the HC_NLO_X0_UFO model and did what the README said.
http://feynrules.irmp.ucl.ac.be/attachment/wiki/HiggsCharacterisation/README
What I need for the reweighting are only the matrix elements.

I have also tried the command you suggested, just to see if it works but I still got an error message:

Start compiling makefile "/.automount/home/home__home2/institut_3b/wiens/Bachelorarbeit/Analysis/CMSSW_7_4_7/src/CMSAachen3B/GeneratorTools/data/vbf_nlo/JJ_X0JJ/SubProcesses/P9_gs_x0gs_no_a/makefile"
cd ../../SubProcesses; make OLP_static
make[1]: Entering directory `/.automount/home/home__home2/institut_3b/wiens/Bachelorarbeit/Analysis/CMSSW_7_4_7/src/CMSAachen3B/GeneratorTools/data/vbf_nlo/JJ_X0JJ/SubProcesses'
gfortran -O -w -fbounds-check -fPIC -ffixed-line-length-132 -c MadLoopCommons.f -o MadLoopCommons.o -I /.automount/home/home__home2/institut_3b/wiens/Bachelorarbeit/Analysis/CMSSW_7_4_7/src/CMSAachen3B/GeneratorTools/MG5_aMC_v2_5_5/HEPTools/include
MadLoopCommons.f:41.9:

      USE COLLIER
         1
Fatal Error: Cannot read module file 'collier.mod' opened at (1), because it was created by a different version of GNU Fortran
make[1]: *** [MadLoopCommons.o] Error 1
make[1]: Leaving directory `/.automount/home/home__home2/institut_3b/wiens/Bachelorarbeit/Analysis/CMSSW_7_4_7/src/CMSAachen3B/GeneratorTools/data/vbf_nlo/JJ_X0JJ/SubProcesses'
make: *** [../OLP_static] Error 2
Failed to compile makefile "/.automount/home/home__home2/institut_3b/wiens/Bachelorarbeit/Analysis/CMSSW_7_4_7/src/CMSAachen3B/GeneratorTools/data/vbf_nlo/JJ_X0JJ/SubProcesses/P9_gs_x0gs_no_a/makefile"!

How would I find out which version of GNU Fortran created the 'collier.mod'?

Best Regards,
Lucas Wiens.

Just reinstall collier and your current compiler should be used then,
making the resulting fortran module compatible.
You can do so within MG5_aMC simply with:

MG5_aMC> install collier

On Mon, Sep 4, 2017 at 5:47 PM, Lucas Wiens <
<email address hidden>> wrote:

> Question #657366 on MadGraph5_aMC@NLO changed:
> https://answers.launchpad.net/mg5amcnlo/+question/657366
>
> Lucas Wiens posted a new comment:
> Dear Olivier,
>
> I'm not 100% sure about how to answer your question. So I'll give a bit
> more detail on what I'm trying to do. I want to use the matrix elements for
> reweighting a standard model Higgs to tau tau sample to a pseudoscalar
> Higgs to tau tau or a mixture of the two. To calculate the matrix elements
> I used this method.
> https://cp3.irmp.ucl.ac.be/projects/madgraph/wiki/FAQ-General-4
> Like I already said, when I tried using the HC_UFO model all my matrix
> elements were 0 for VBF. Then I found out about the HC_NLO_X0_UFO model and
> did what the README said.
> http://feynrules.irmp.ucl.ac.be/attachment/wiki/
> HiggsCharacterisation/README
> What I need for the reweighting are only the matrix elements.
>
> I have also tried the command you suggested, just to see if it works but
> I still got an error message:
>
> Start compiling makefile "/.automount/home/home__home2/institut_3b/wiens/
> Bachelorarbeit/Analysis/CMSSW_7_4_7/src/CMSAachen3B/
> GeneratorTools/data/vbf_nlo/JJ_X0JJ/SubProcesses/P9_gs_x0gs_no_a/makefile"
> cd ../../SubProcesses; make OLP_static
> make[1]: Entering directory `/.automount/home/home__home2/
> institut_3b/wiens/Bachelorarbeit/Analysis/CMSSW_7_4_7/src/CMSAachen3B/
> GeneratorTools/data/vbf_nlo/JJ_X0JJ/SubProcesses'
> gfortran -O -w -fbounds-check -fPIC -ffixed-line-length-132 -c
> MadLoopCommons.f -o MadLoopCommons.o -I /.automount/home/home__home2/
> institut_3b/wiens/Bachelorarbeit/Analysis/CMSSW_7_4_7/src/CMSAachen3B/
> GeneratorTools/MG5_aMC_v2_5_5/HEPTools/include
> MadLoopCommons.f:41.9:
>
> USE COLLIER
> 1
> Fatal Error: Cannot read module file 'collier.mod' opened at (1), because
> it was created by a different version of GNU Fortran
> make[1]: *** [MadLoopCommons.o] Error 1
> make[1]: Leaving directory `/.automount/home/home__home2/
> institut_3b/wiens/Bachelorarbeit/Analysis/CMSSW_7_4_7/src/CMSAachen3B/
> GeneratorTools/data/vbf_nlo/JJ_X0JJ/SubProcesses'
> make: *** [../OLP_static] Error 2
> Failed to compile makefile "/.automount/home/home__home2/
> institut_3b/wiens/Bachelorarbeit/Analysis/CMSSW_7_4_7/src/CMSAachen3B/
> GeneratorTools/data/vbf_nlo/JJ_X0JJ/SubProcesses/P9_gs_
> x0gs_no_a/makefile"!
>
> How would I find out which version of GNU Fortran created the
> 'collier.mod'?
>
> Best Regards,
> Lucas Wiens.
>
> --
> You received this question notification because you are an answer
> contact for MadGraph5_aMC@NLO.
>

--
Valentin

Dear Lucas,

Are you aware of the following paper:
arXiv:1607.00763
This explains the correct method in order to do the re-weighting preserving NLO accuracy.
This also fully automated in MG5aMC:
https://cp3.irmp.ucl.ac.be/projects/madgraph/wiki/Reweight

Cheers,

Olivier

Lucas Wiens (lucas-wiens) said : #5

Dear Valentin and Olivier,

I tried reinstalling collier and it helped but now I have a new error.

error: Command "/cvmfs/cms.cern.ch/slc6_amd64_gcc491/external/gcc/4.9.1-cms/bin/gfortran -Wall -Wall -shared /tmp/tmpYhDJfC/tmp/tmpYhDJfC/src.linux-x86_64-2.7/matrix2pymodule.o /tmp/tmpYhDJfC/tmp/tmpYhDJfC/src.linux-x86_64-2.7/fortranobject.o /tmp/tmpYhDJfC/f2py_wrapper.o /tmp/tmpYhDJfC/tmp/tmpYhDJfC/src.linux-x86_64-2.7/matrix2py-f2pywrappers.o ../../lib/libMadLoop.a -L../../lib/ -L../../lib/ -L/.automount/home/home__home2/institut_3b/wiens/Bachelorarbeit/Analysis/CMSSW_7_4_7/src/CMSAachen3B/GeneratorTools/MG5_aMC_v2_5_5/HEPTools/lib/ -L. -ldhelas -lmodel -lcts -liregi -lcollier -lstdc++ -lpython2.7 -lgfortran -o ./matrix2py.so" failed with exit status 1
make: *** [matrix2py.so] Error 1

I'm also familiar with the link you have posted Olivier but I did not read that paper yet. I think it will be helpful, thanks.

Best,
Lucas.

Thomas Müller (tho.mueller1) said : #6

Dear Valentin and Olivier,

thanks for your quick help. Our first interest is not the reweighting to NLO accuracy, although we are using NLO samples as basis. You told us in previous discussions, that for getting started it would also be "ok" to use LO reweighting and just simulate the events with additional jets in the final state.

However, we need the NLO version of the HC model, because it seems, that the CP odd terms for vector boson couplings to the Higgs boson are only realised via a loop. Our current understanding is, that we get this loop with the [QCD] or [virt=QCD] settings at the end of the "generate" command. This setting is not supported by the LO HC model and we have to change to the NLO version.

Regards,
Thomas

Hi Thomas,

> thanks for your quick help. Our first interest is not the reweighting to
> NLO accuracy, although we are using NLO samples as basis. You told us in
> previous discussions, that for getting started it would also be "ok" to
> use LO reweighting and just simulate the events with additional jets in
> the final state.

So LO reweighing does not require any loop matrix element (but for loop-induced processes)

> However, we need the NLO version of the HC model, because it seems, that
> the CP odd terms for vector boson couplings to the Higgs boson are only
> realised via a loop.

Here I do not know the physics that you are referring to.
Do you know if those loops are loop-induced (i.e. they are no tree-level matrix-element with the same final state interfering with the loop) or those effect are due to loop-corrections (interfering with tree-level diagram)?

If those effects are due to loop-corrections, then you have to move to NLO accurate re-weighting. (That's the only way to my point of view)
If those effects are loop-induced, then what you need to do is split your generation in two sample
1) your sample corresponding to the loop-induced production
2) your sample for the rest (at LO or NLO as you want)
In that case, you can use LO re-weighting on both sample independently, (for the first sample, you will have to use loop matrix-element, while for the second using tree-level matrix-element)

> Our current understanding is, that we get this loop
> with the [QCD] or [virt=QCD] settings at the end of the "generate"
> command. This setting is not supported by the LO HC model and we have to
> change to the NLO version.

That's correct loop can only be generated by NLO ready model.

Cheers,

Olivier

Thomas Müller (tho.mueller1) said : #8

The physics we are referring to are the lines 5+6 of formula 2.4 on page 5 here: https://arxiv.org/pdf/1306.6464.pdf. My undestanding is, that the sin(alpha)/CP odd terms are loop-induced, but I might be wrong.

Thomas Müller (tho.mueller1) said : #9

Oh, not only the sin(alpha) but also the cos(alpha)/CP even terms characterised by the same mechanism, of course.

Hi,

A Lagrangian is not loop-induced or not. This a concept that exists at the process level.
For example if you take the Yukawa term for the top, this term does sometimes contributes to a loop-induced diagram
(The g g > h process for example) and sometimes not (for example in the case of p p > t t~ h)

I guess that you are confusing with the origin/motivation for some term in the Lagrangian.
Take the HGG term in the lagrangian.
The motivation for adding such term is to have the Higgs to couple directly with the gluon.
Such interaction does not exists in the SM, but the equivalent vertex exists at loop induced level.
We then add that term to the Lagrangian to allow to do a tree-level computation that simulates the effect of the loop.

Here we do not care abour the motivation of the Lagrangian. We just use the Lagrangian as it is.
So you should use the full NLO accurate re-weighitng.

Cheers,

Olivier

Lucas Wiens (lucas-wiens) said : #11

Thanks Olivier and Valentin,

the compiling problems and output options are "solved" now. "install collier" and changing [QCD] to [virt=QCD] did the job.
The physics seems to be a bit more complicated and we are not yet sure, that we understand everything. I think it makes sense to move question related to this to a new thread. But first we plan to work on a minimal example...

Regards,
Lucas.

Lucas Wiens (lucas-wiens) said : #12

Thanks Olivier Mattelaer, that solved my question.