From 5e4ed5a6f8935d71049a521d5efcc2c09a633e3e Mon Sep 17 00:00:00 2001 From: shivesh Date: Sun, 8 Apr 2018 12:07:44 -0500 Subject: add initial seed point args for MCMC --- utils/enums.py | 10 ---------- utils/gf.py | 13 ++----------- utils/mcmc.py | 4 ++-- utils/misc.py | 18 +++++++++++++++++- 4 files changed, 21 insertions(+), 24 deletions(-) (limited to 'utils') diff --git a/utils/enums.py b/utils/enums.py index 45f164d..a5875a8 100644 --- a/utils/enums.py +++ b/utils/enums.py @@ -44,14 +44,4 @@ class MCMCSeedType(Enum): class SteeringCateg(Enum): P2_0 = 1 P2_1 = 2 - # TODO(shivesh): fix this "P2_-1" - P2__1 = 3 - P2__3 = 4 - P2_0_HALF1 = 5 - P2_0_HALF2 = 6 - ABSORPTION = 7 - SCATTERING = 8 - SCATTERING_ABSORPTION = 9 - LONGLIFE = 10 - DPL = 11 diff --git a/utils/gf.py b/utils/gf.py index 3fb063b..5ad2869 100644 --- a/utils/gf.py +++ b/utils/gf.py @@ -32,33 +32,24 @@ def steering_params(args): # params.fastmode = False # params.readCompact = True params.readCompact = False - params.do_HESE_reshuffle = False - params.sampleToLoad = gf.sampleTag.HESE params.simToLoad= steering_categ.name.lower() params.evalThreads = args.threads # params.evalThreads = thread_factors(args.threads)[1] - params.baseline_astro_spectral_index = -2. params.spline_hole_ice = True params.spline_dom_efficiency = True - if steering_categ == SteeringCateg.LONGLIFE: - params.years = [999] - params.simToLoad= 'p2_0' - elif steering_categ == SteeringCateg.DPL: - params.diffuse_fit_type = gf.DiffuseFitType.DoublePowerLaw - params.simToLoad= 'p2_0' return params def set_up_as(fitter, params): print 'Injecting the model', params - asimov_params = gf.FitParameters() + asimov_params = gf.FitParameters(gf.sampleTag.HESE) for parm in params: asimov_params.__setattr__(parm.name, parm.value) fitter.SetupAsimov(asimov_params) def get_llh(fitter, params): - fitparams = gf.FitParameters() + fitparams = gf.FitParameters(gf.sampleTag.HESE) for parm in params: fitparams.__setattr__(parm.name, parm.value) return fitter.EvalLLH(fitparams) diff --git a/utils/mcmc.py b/utils/mcmc.py index 0b78f1e..f898b83 100644 --- a/utils/mcmc.py +++ b/utils/mcmc.py @@ -77,8 +77,8 @@ def mcmc_argparse(parser): def flat_seed(paramset, ntemps, nwalkers): """Get gaussian seed values for the MCMC.""" ndim = len(paramset) - low = np.array(paramset.ranges).T[0] - high = np.array(paramset.ranges).T[1] + low = np.array(paramset.seeds).T[0] + high = np.array(paramset.seeds).T[1] p0 = np.random.uniform( low=low, high=high, size=[ntemps, nwalkers, ndim] ) diff --git a/utils/misc.py b/utils/misc.py index 735f95b..6a81bbf 100644 --- a/utils/misc.py +++ b/utils/misc.py @@ -25,13 +25,15 @@ from utils.enums import Likelihood, ParamTag class Param(object): """Parameter class to store parameters. """ - def __init__(self, name, value, ranges, std=None, tex=None, tag=None): + def __init__(self, name, value, ranges, seed=None, std=None, tex=None, tag=None): + self._seed = None self._ranges = None self._tex = None self._tag = None self.name = name self.value = value + self.seed = seed self.ranges = ranges self.std = std self.tex = tex @@ -45,6 +47,16 @@ class Param(object): def ranges(self, values): self._ranges = [val for val in values] + @property + def seed(self): + if self._seed is None: return self.ranges + return tuple(self._seed) + + @seed.setter + def seed(self, values): + if values is None: return + self._seed = [val for val in values] + @property def tex(self): return r'{0}'.format(self._tex) @@ -136,6 +148,10 @@ class ParamSet(Sequence): def values(self): return tuple([obj.value for obj in self._params]) + @property + def seeds(self): + return tuple([obj.seed for obj in self._params]) + @property def ranges(self): return tuple([obj.ranges for obj in self._params]) -- cgit v1.2.3