diff options
| author | shivesh <s.p.mandalia@qmul.ac.uk> | 2018-04-24 11:22:19 -0500 |
|---|---|---|
| committer | shivesh <s.p.mandalia@qmul.ac.uk> | 2018-04-24 11:22:19 -0500 |
| commit | cfe60732b09544e304e66129383ceaf92ac8cdff (patch) | |
| tree | cccf10230c86f293e540a3b158df52acd332114d /utils/param.py | |
| parent | 2ca0c5597590e2043bd280dd8aee3d9d09bae29a (diff) | |
| download | GolemFlavor-cfe60732b09544e304e66129383ceaf92ac8cdff.tar.gz GolemFlavor-cfe60732b09544e304e66129383ceaf92ac8cdff.zip | |
Tue Apr 24 11:22:19 CDT 2018
Diffstat (limited to 'utils/param.py')
| -rw-r--r-- | utils/param.py | 56 |
1 files changed, 40 insertions, 16 deletions
diff --git a/utils/param.py b/utils/param.py index bf230df..13f1a63 100644 --- a/utils/param.py +++ b/utils/param.py @@ -12,17 +12,20 @@ from __future__ import absolute_import, division import sys from collections import Sequence +from copy import deepcopy import numpy as np from utils.plot import get_units from utils.fr import fr_to_angles -from utils.enums import Likelihood, ParamTag +from utils.enums import Likelihood, ParamTag, PriorsCateg class Param(object): """Parameter class to store parameters.""" - def __init__(self, name, value, ranges, seed=None, std=None, tex=None, tag=None): + def __init__(self, name, value, ranges, prior=None, seed=None, std=None, + tex=None, tag=None): + self._prior = None self._seed = None self._ranges = None self._tex = None @@ -30,8 +33,10 @@ class Param(object): self.name = name self.value = value - self.seed = seed + self.nominal_value = deepcopy(value) + self.prior = prior self.ranges = ranges + self.seed = seed self.std = std self.tex = tex self.tag = tag @@ -45,6 +50,18 @@ class Param(object): self._ranges = [val for val in values] @property + def prior(self): + return self._prior + + @prior.setter + def prior(self, value): + if value is None: + self._prior = PriorsCateg.UNIFORM + else: + assert value in PriorsCateg + self._prior = value + + @property def seed(self): if self._seed is None: return self.ranges return tuple(self._seed) @@ -146,6 +163,10 @@ class ParamSet(Sequence): return tuple([obj.value for obj in self._params]) @property + def nominal_values(self): + return tuple([obj.nominal_value for obj in self._params]) + + @property def seeds(self): return tuple([obj.seed for obj in self._params]) @@ -185,18 +206,22 @@ class ParamSet(Sequence): return ParamSet([io[1] for io in ps]) -def get_paramsets(args): +def get_paramsets(args, nuisance_paramset): """Make the paramsets for generating the Asmimov MC sample and also running the MCMC. """ asimov_paramset = [] llh_paramset = [] - if args.likelihood == Likelihood.GOLEMFIT: - nuisance_paramset = define_nuisance() - asimov_paramset.extend(nuisance_paramset.params) - llh_paramset.extend(nuisance_paramset.params) - for parm in nuisance_paramset: - parm.value = args.__getattribute__(parm.name) + + llh_paramset.extend( + [x for x in nuisance_paramset.from_tag(ParamTag.SM_ANGLES)] + ) + if args.likelihood is Likelihood.GOLEMFIT: + gf_nuisance = [x for x in nuisance_paramset.from_tag(ParamTag.NUISANCE)] + asimov_paramset.extend(gf_nuisance) + llh_paramset.extend(gf_nuisance) + for parm in llh_paramset: + parm.value = args.__getattribute__(parm.name) tag = ParamTag.BESTFIT flavour_angles = fr_to_angles(args.measured_ratio) asimov_paramset.extend([ @@ -207,17 +232,16 @@ def get_paramsets(args): if not args.fix_mixing and not args.fix_mixing_almost: tag = ParamTag.MMANGLES - e = 1e-10 llh_paramset.extend([ - Param(name='s_12^2', value=0.5, ranges=[0.+e, 1.-e], std=0.2, tex=r'\tilde{s}_{12}^2', tag=tag), - Param(name='c_13^4', value=0.5, ranges=[0.+e, 1.-e], std=0.2, tex=r'\tilde{c}_{13}^4', tag=tag), - Param(name='s_23^2', value=0.5, ranges=[0.+e, 1.-e], std=0.2, tex=r'\tilde{s}_{23}^4', tag=tag), - Param(name='dcp', value=np.pi, ranges=[0.+e, 2*np.pi-e], std=0.2, tex=r'\tilde{\delta_{CP}}', tag=tag) + Param(name='np_s_12^2', value=0.5, ranges=[0., 1.], std=0.2, tex=r'\tilde{s}_{12}^2', tag=tag), + Param(name='np_c_13^4', value=0.5, ranges=[0., 1.], std=0.2, tex=r'\tilde{c}_{13}^4', tag=tag), + Param(name='np_s_23^2', value=0.5, ranges=[0., 1.], std=0.2, tex=r'\tilde{s}_{23}^4', tag=tag), + Param(name='np_dcp', value=np.pi, ranges=[0., 2*np.pi], std=0.2, tex=r'\tilde{\delta_{CP}}', tag=tag) ]) if args.fix_mixing_almost: tag = ParamTag.MMANGLES llh_paramset.extend([ - Param(name='s_23^2', value=0.5, ranges=[0., 1.], std=0.2, tex=r'\tilde{s}_{23}^4', tag=tag) + Param(name='np_s_23^2', value=0.5, ranges=[0., 1.], std=0.2, tex=r'\tilde{s}_{23}^4', tag=tag) ]) if not args.fix_scale: tag = ParamTag.SCALE |
