< Mujpy.FitTypes | Index | Mujpy.GlobalSwitch >
Classic minuit by Frank James distinguishes internal and external parameters, depending on whether a parameter is available to minuit.
Fixed and variable parameters are internal, henceforth minuit_parameters
. Fixed parameters ('flag
:'!'@@) are dealt by a minuit fix commsnd, but are indexed internally and can be released, becoming variable. Two parameters that have different roles in the model but point to the same internal minuit parameter (shared, handled by 'flag':'=' in mujpy) are two distinct external parameters but just one internal.
This already leads to two possible different schemes in indexing.
Let us retain just the internal parameter index, nmin
in this page, that progressively numbers minuit_parameters
from 0 to len( minuit_parameters)
, in the same order in which they are passed to the iminuit instance.
Mujpy single run fit model is a sum of library components, the two-letter methods of mumodel
. Therefore another double-index scheme is by a component index jcomp
, ranging form 0 to the number of model components, plus a parameter index lpar
, ranging from 0 to the number of parameters in that component.
The dashboard is user-friendly since it exposes a third indexing, idash
, a progressive number in the dashboard parameters, which for single run fits is in a straightforward correspondence
with the double index.
The model driven jcomp,lpar
indexing implies the existence of external parameters. Typically, n transverse components mg
sharing the same phase have n times 4 external parameters, but only 4 plus n times 3 internal parameters. A translation between the three fundamental indexing schemes, i.e. nmin@,
(jcomp,lpar)¸, and idash
, requires detecting the shared parameters and removing all but the first instance from the minuit list. Sharing is implemend by 'flag':'='
and a user function string e.g. 'function':'p[4]'
where 4 is idash
Global fits complicate further these translations, since different runs, or different detector groups, or both, can have shared global parameters, defined by the user before the model description. An example is a common total experimental asymmetry, which corresponds to nmin=idash
and simply increments by one the idash
translation of (jcomp,lpar)
.
Furthermore global fits can have local parameters, likewise defined by the user before the model description, two examples being a temperature dependent component fraction of the total asymmetry, or a group dependent geometric phase. Gobal and local parameters (jointly, glocals
) require separate methods for translating among idash
, jcomp,lpar
and @ @nmin indexing. The different translations are implemented in the following distinct
mujpy.aux.aux@@ methods
min2int
reconstructs double-index model values and errors from nmim parameter, error lists after a fit, for logging (summary) purposes;
it uses
translate
replaces indices in user functions
< Mujpy.FitTypes | Index | Mujpy.GlobalSwitch >