Reasoning behind ParamCardRule.add_one

Asked by Spyridon Argyropoulos

This is a rather generic question which came up while trying to debug a failure with a BSM UFO. In import_ufo.py there is a function that checks the parameters in the restriction card and if it finds e.g. masses that are 0 or 1 it adds them in param_card_rule.dat, so that if someone tries to change them later on an error would be thrown.

Now, the case of 0 mass is pretty obvious why one would want to not allow massless particles to be turned into massive ones later one but we were wondering: why do you have a special rules for a masses that are assigned a value of 1?

(e.g. consider a BSM particle whose mass is allowed to be from a few MeV to several GeV - in that case the person providing the UFO should make sure that they don't set the mass in the default restrict card that comes with a UFO to 1 GeV?)

Thanks,
Spyros

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

Hi,

Using restriction is a quite unsafe method to simplify model.
It is important to understand the method used to simplify the model:
All coupling are going to be evaluated and all coupling evaluated to zero (technically smaller than some threshold) will be removed of the model.
The method does not try to identify "why" such coupling are zero and if it make sense or not to freeze some parameters.

Any parameter set to zero/one/ two identical parameter can then be dangerous to edit afterwards since those are value that can typically lead to cancellation of some coupling and therefore we have forbid the edition of such parameter. It can indeed be sometimes too strict (as can sometimes not be enough).

The model developper has method to avoid such type of restriction if needed:
1) by providing two files instead of one. restrict_xxxx.dat and param_xxxx.dat
the restriction will be done based on restrict_xxxx.dat but the default value of the parameter will be those of param_xxxx.dat
allowing to set a value different of 1 in the restrict but 1 in the param_xxxx.dat
This is typically use to avoid the check of identity between parameter.

2) You can also use the value "9.999999e-1" which will be automatically converted to "1.0" in the default param_card (which allow to edit it). The same exists for zero with the value (0.000001e-99)

Cheers,

Olivier

Revision history for this message
Spyridon Argyropoulos (spyridon-argyropoulos) said :
#2

Thanks Olivier Mattelaer, that solved my question.