Skip to content
Snippets Groups Projects
Commit c21a15b0 authored by Maxim Gonchar's avatar Maxim Gonchar
Browse files

Squashed 'subtrees/dagflow/' changes from 7cbf4e41a..a907500f0

a907500f0 feat: load_parameters, create multiple nuisance χ² parts based on the name

git-subtree-dir: subtrees/dagflow
git-subtree-split: a907500f0b7d4e467d97db14bcf598bc113c0d12
parent a30a7897
No related branches found
No related tags found
No related merge requests found
...@@ -202,17 +202,21 @@ def load_parameters(acfg): ...@@ -202,17 +202,21 @@ def load_parameters(acfg):
subkeys = cfg['replicate'] subkeys = cfg['replicate']
normpars = [] normpars = {}
for key_general, varcfg in iterate_varcfgs(cfg): for key_general, varcfg in iterate_varcfgs(cfg):
key_general_str = '.'.join(key_general)
varcfg.setdefault(state, True)
normpars_i = normpars.setdefault(key_general[0], [])
for subkey in subkeys: for subkey in subkeys:
key = key_general + subkey key = key_general + subkey
key_str = '.'.join(key) key_str = '.'.join(key)
label = varcfg['label'] subkey_str = '.'.join(subkey)
label = varcfg['label'].copy()
label['key'] = key_str label['key'] = key_str
label.setdefault('text', key_str) label.setdefault('text', key_str)
varcfg.setdefault(state, True)
par = Parameters.from_numbers(**varcfg) par = Parameters.from_numbers(**varcfg)
if par.is_constrained: if par.is_constrained:
target = ('constrained', path) target = ('constrained', path)
...@@ -221,22 +225,23 @@ def load_parameters(acfg): ...@@ -221,22 +225,23 @@ def load_parameters(acfg):
else: else:
target = ('free', path) target = ('free', path)
ret[('parameter_node',)+target+key] = par ret[('parameter_node',)+target+key] = par
ptarget = ('parameter', target) ptarget = ('parameter', target)
for subpar in par.parameters: for subpar in par.parameters:
ret[ptarget+key] = subpar ret[ptarget+key] = subpar
ntarget = ('parameter', 'normalized', path) ntarget = ('parameter', 'normalized', path)
for subpar in par.norm_parameters: for subpar in par.norm_parameters:
ret[ntarget+key] = subpar ret[ntarget+key] = subpar
normpars.append(subpar) normpars_i.append(subpar)
if normpars: for name, np in normpars.items():
ssq = SumSq(f'nuisance for {pathstr}') if np:
(n.output for n in normpars) >> ssq ssq = SumSq(f'nuisance for {pathstr}.{name}')
ssq.close() (n.output for n in np) >> ssq
ret[('stat', 'nuisance_parts', path)] = ssq ssq.close()
ret[('stat', 'nuisance_parts', path, name)] = ssq
return ret return ret
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment