compilation error model of scalars only

Asked by Khaled Teilab

Hello,
I want to use MG5_aMC for calculations of some hadronic processes using a model with hadronic degrees of freedom. As a test I started with a model of 7 scalar particles and 3 vertices. I used the latest version of FeynRules to create UFO model files which I imported in MG5_aMC.
Generating the process works fine and I can also view the Feynman diagram nicely.
When I want to launch the calculation, I get a compilation error.
Here is what I get:

#######################################
INFO: compile directory
Error detected in "generate_events run_01"
write debug file /home/teilab/MG5_aMC_v2_1_0/TESTSCALARS/run_01_tag_1_debug.log
If you need help with this issue please contact us on https://answers.launchpad.net/madgraph5
MadGraph5Error : A compilation Error occurs when trying to compile /home/teilab/MG5_aMC_v2_1_0/TESTSCALARS/Source.
        The compilation fails with the following output message:
            ar cru ../lib/libdsample.a dsample.o ranmar.o
            gfortran -O -w -fbounds-check -ffixed-line-length-132 -c -o setrun.o setrun.f
            cd PDF; make
            cd MODEL; make
            make[1]: Entering directory `/home/teilab/MG5_aMC_v2_1_0/TESTSCALARS/Source/PDF'
            make[1]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule.
            make[1]: Entering directory `/home/teilab/MG5_aMC_v2_1_0/TESTSCALARS/Source/MODEL'
            make[1]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule.
            gfortran -O -w -fbounds-check -ffixed-line-length-132 -c -o couplings.o couplings.f
            ar cru ../../lib/libpdf.a Ctq4Fn.o Ctq5Par.o Ctq5Pdf.o Partonx5.o Ctq6Pdf.o cteq3.o mrs98.o mrs98lo.o mrs98ht.o mrs99.o mrst2001.o mrst2002.o jeppe02.o pdfwrap.o opendata.o pdf.o PhotonFlux.o pdg2pdf.o
            ranlib ../lib/libdsample.a
            input.inc:5.27:
                Included at couplings.f:12:

                  DOUBLE PRECISION ZERO,AS,G1,G2,G3
                                       1
            Error: Symbol 'zero' at (1) already has basic type of REAL
            input.inc:7.27:
                Included at couplings.f:12:

                  COMMON/PARAMS_R/ ZERO,AS,G1,G2,G3
                                       1
            Error: PARAMETER attribute conflicts with COMMON attribute in 'zero' at (1)
            input.inc:5.27:
                Included at couplings.f:32:

                  DOUBLE PRECISION ZERO,AS,G1,G2,G3
                                       1
            Error: Symbol 'zero' at (1) already has basic type of REAL
            input.inc:7.27:
                Included at couplings.f:32:

                  COMMON/PARAMS_R/ ZERO,AS,G1,G2,G3
                                       1
            Error: PARAMETER attribute conflicts with COMMON attribute in 'zero' at (1)
            intparam_definition.inc:9.24:
                Included at couplings.f:15:

                    G = 2 * DSQRT(AS*PI) ! for the first init
                                    1
            Error: Symbol 'as' at (1) has no IMPLICIT type
            intparam_definition.inc:9.24:
                Included at couplings.f:36:

                    G = 2 * DSQRT(AS*PI) ! for the first init
                                    1
            Error: Symbol 'as' at (1) has no IMPLICIT type
            make[1]: *** [couplings.o] Error 1
            make[1]: Leaving directory `/home/teilab/MG5_aMC_v2_1_0/TESTSCALARS/Source/MODEL'
            make: *** [../lib/libmodel.a] Error 2
            make: *** Waiting for unfinished jobs....
            ranlib ../../lib/libpdf.a
            make[1]: Leaving directory `/home/teilab/MG5_aMC_v2_1_0/TESTSCALARS/Source/PDF'

        Please try to fix this compilations issue and retry.
        Help might be found at https://answers.launchpad.net/madgraph5.
        If you think that this is a bug, you can report this at https://bugs.launchpad.net/madgraph5
quit
INFO:

INFO:
###################################

What is the reason for this problem? Is MadGraph able to handle any arbitrary model, or there are some requirements on the model?

Thanks,
Khaled

ps: the process I want to calculate is s1 s4 > s2 s6 s7 (sX is an arbitrary massive scalar particle)

Question information

Language:
English Edit question
Status:
Solved
For:
MadGraph5_aMC@NLO Edit question
Assignee:
No assignee Edit question
Solved by:
Khaled Teilab
Solved:
Last query:
Last reply:
Revision history for this message
Olivier Mattelaer (olivier-mattelaer) said :
#1

Hi Khaled,

Could you send me the UFO model by email (<email address hidden>)

I will look at it and see what the problem is.

Cheers,

Olivier

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

Hi Khaled,

Could you send me the UFO model by email (<email address hidden>)

I will look at it and see what the problem is.

Cheers,

Olivier

Revision history for this message
Khaled Teilab (teilab) said :
#3

Hi Olivier,
I sent you the model files yesterday per E-Mail. I hope it didn't end up in your spam folder :)
Greetings,
Khaled

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

Yes I have received it. Just that I was very busy this week so I was not able to look at it in detail:

So here is a patch, which should be part of 2.1.1 which should be release for Monday.
The reason why your model fail is that none of the mass/width are set to ZERO this particular case was not handle correctly.

Thanks a lot for your bug report.

Olivier

=== modified file 'madgraph/iolibs/export_v4.py'
--- madgraph/iolibs/export_v4.py 2014-03-25 14:35:10 +0000
+++ madgraph/iolibs/export_v4.py 2014-03-29 03:42:08 +0000
@@ -4500,8 +4500,9 @@
             already_def.add(particle.get('width').lower())
             if self.opt['complex_mass']:
                 already_def.add('cmass_%s' % particle.get('mass').lower())
-
- is_valid = lambda name: name!='G' and name!='MU_R' and name.lower() not in already_def
+
+ is_valid = lambda name: name.lower() not in ['g', 'mu_r', 'zero'] and \
+ name.lower() not in already_def

         real_parameters = [param.name for param in self.params_dep +
                             self.params_indep if param.type == 'real'

Revision history for this message
Khaled Teilab (teilab) said :
#5

Dear Olivier,
thanks a lot for your reply and bugfix.
Using the new line I can compile the process. However, I get zero cross section and I guess that the reason lies in the beam types. I would need a beam of s1 scalars colliding with a beam of s4 scalars. I couldn't figure out how to indicate that in the parameter card. Could you please give me a hint?
Cheers
Khaled

ps: here are also two suspicious lines while generating the output directory

CRITICAL: aS not define as external parameter adding it!
WARNING: aEWM1 not define in MODEL. AQED will not be written correcty in LHE FILE

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

Dear Khaled,

you need to set in the run_card.dat
the line
 0 = lpp1
 0 = lpp2

> CRITICAL: aS not define as external parameter adding it!
> WARNING: aEWM1 not define in MODEL. AQED will not be written correcty in LHE FILE

the output file is based on QED/QCD information. So since you didn’t define those we put some warning since the output will not follow
the convention for those quantity. Otherwise it should be fine in your case as well.

Cheers,

Olivier

On Mar 31, 2014, at 4:41 PM, Khaled Teilab <email address hidden> wrote:

> Question #246123 on MadGraph5_aMC@NLO changed:
> https://answers.launchpad.net/mg5amcnlo/+question/246123
>
> Status: Answered => Open
>
> Khaled Teilab is still having a problem:
> Dear Olivier,
> thanks a lot for your reply and bugfix.
> Using the new line I can compile the process. However, I get zero cross section and I guess that the reason lies in the beam types. I would need a beam of s1 scalars colliding with a beam of s4 scalars. I couldn't figure out how to indicate that in the parameter card. Could you please give me a hint?
> Cheers
> Khaled
>
> ps: here are also two suspicious lines while generating the output
> directory
>
> CRITICAL: aS not define as external parameter adding it!
> WARNING: aEWM1 not define in MODEL. AQED will not be written correcty in LHE FILE
>
> --
> You received this question notification because you are an answer
> contact for MadGraph5_aMC@NLO.

Revision history for this message
Khaled Teilab (teilab) said :
#7

Hi Olivier,

in order to be available also for other users, I put here your latest instructions sent by e-mail to me:

####################################################
I succeed to get non zero cross-section by applying this patch:
--- madgraph/iolibs/export_v4.py 2014-03-29 03:48:11 +0000
+++ madgraph/iolibs/export_v4.py 2014-03-31 16:54:08 +0000
@@ -4227,7 +4227,7 @@
             logger.critical('aS not define as external parameter adding it!')
             #self.model['parameters']['aS'] = base_objects.ParamCardVariable('aS', 0.138,'DUMMY',(1,))
             self.params_indep.append( base_objects. ModelVariable('aS', '0.138','real'))
-
+ self.params_indep.append( base_objects. ModelVariable('G', '4.1643','real'))
     def build(self, wanted_couplings = [], full=True):
         """modify the couplings to fit with MG4 convention and creates all the
         different files”""

and by setting those two parameter to T (in the run_card)
automatic_ren_scale
automatic_fac_scale
###############################################

And indeed, by this I also was able to get reasonable values of the cross sections.

I cross checked the obtained values against calcHEP and my own calculations. The results agree to a large extent, although there seems to be some systematic difference between MadGraph and the other two ways.

I am very thankful for your help.
Best wishes,
Khaled

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

Hi,

This modification is actually pushed in the version 2.1.1 which was released today.

Cheers,

Olivier
On Apr 1, 2014, at 12:01 PM, Khaled Teilab <email address hidden> wrote:

> Question #246123 on MadGraph5_aMC@NLO changed:
> https://answers.launchpad.net/mg5amcnlo/+question/246123
>
> Status: Answered => Solved
>
> Khaled Teilab confirmed that the question is solved:
> Hi Olivier,
>
> in order to be available also for other users, I put here your latest
> instructions sent by e-mail to me:
>
> ####################################################
> I succeed to get non zero cross-section by applying this patch:
> --- madgraph/iolibs/export_v4.py 2014-03-29 03:48:11 +0000
> +++ madgraph/iolibs/export_v4.py 2014-03-31 16:54:08 +0000
> @@ -4227,7 +4227,7 @@
> logger.critical('aS not define as external parameter adding it!')
> #self.model['parameters']['aS'] = base_objects.ParamCardVariable('aS', 0.138,'DUMMY',(1,))
> self.params_indep.append( base_objects. ModelVariable('aS', '0.138','real'))
> -
> + self.params_indep.append( base_objects. ModelVariable('G', '4.1643','real'))
> def build(self, wanted_couplings = [], full=True):
> """modify the couplings to fit with MG4 convention and creates all the
> different files”""
>
> and by setting those two parameter to T (in the run_card)
> automatic_ren_scale
> automatic_fac_scale
> ###############################################
>
> And indeed, by this I also was able to get reasonable values of the
> cross sections.
>
> I cross checked the obtained values against calcHEP and my own
> calculations. The results agree to a large extent, although there seems
> to be some systematic difference between MadGraph and the other two
> ways.
>
> I am very thankful for your help.
> Best wishes,
> Khaled
>
> --
> You received this question notification because you are an answer
> contact for MadGraph5_aMC@NLO.

Revision history for this message
Khaled Teilab (teilab) said :
#9

Hi Olivier,
Ok, thanks.
MG works now nicely with my model and I can calculate cross sections. Now I have a different question:
- Is there a way/script to perform a kind of beam energy scan? I would like to calculate the cross section of a given process at several different beam energies and want to do it in automatic way?
- If no script is available, can I run MG in a kind of batch mode so that I can write the script my own?
Cheeres,
Khaled

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

Hi Khaled,

Yes you can script:
https://answers.launchpad.net/mg5amcnlo/+faq/2186

as in your case put in a file the following command:
# only needed the first time can be omitted
generate p p > e+ e-
output MYOUTPUTDIR
# starting the real scan
launch MYOUTPUTDIR
   set ebeam1 XX1
   set ebeam2 XX1
launch
   set ebeam1 XX2
   set ebeam2 XX2
launch
   set ebeam1 XX3
   set ebeam2 XX3

and execute this file via
./bin/mg5_aMC PATHTOYOURFILE

Note that this is a much safer way to script than
./bin/mg5_aMC < PATHTOYOURFILE
(which will not work for the above file actually)

Cheers,

Olivier

On Apr 2, 2014, at 5:51 PM, Khaled Teilab <email address hidden> wrote:

> Question #246123 on MadGraph5_aMC@NLO changed:
> https://answers.launchpad.net/mg5amcnlo/+question/246123
>
> Khaled Teilab posted a new comment:
> Hi Olivier,
> Ok, thanks.
> MG works now nicely with my model and I can calculate cross sections. Now I have a different question:
> - Is there a way/script to perform a kind of beam energy scan? I would like to calculate the cross section of a given process at several different beam energies and want to do it in automatic way?
> - If no script is available, can I run MG in a kind of batch mode so that I can write the script my own?
> Cheeres,
> Khaled
>
> --
> You received this question notification because you are an answer
> contact for MadGraph5_aMC@NLO.