aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshivesh <s.p.mandalia@qmul.ac.uk>2018-04-08 12:07:44 -0500
committershivesh <s.p.mandalia@qmul.ac.uk>2018-04-08 12:07:44 -0500
commit5e4ed5a6f8935d71049a521d5efcc2c09a633e3e (patch)
treedf39da150a2aed6ee6f7429cf695d06c92b2a091
parentccffb521195eb5f41471e166e1ba8f695740bcb3 (diff)
downloadGolemFlavor-5e4ed5a6f8935d71049a521d5efcc2c09a633e3e.tar.gz
GolemFlavor-5e4ed5a6f8935d71049a521d5efcc2c09a633e3e.zip
add initial seed point args for MCMC
-rw-r--r--.gitignore1
-rwxr-xr-xfr.py10
-rw-r--r--submitter/make_dag.py6
-rw-r--r--submitter/submit.sub3
-rw-r--r--utils/enums.py10
-rw-r--r--utils/gf.py13
-rw-r--r--utils/mcmc.py4
-rw-r--r--utils/misc.py18
8 files changed, 32 insertions, 33 deletions
diff --git a/.gitignore b/.gitignore
index 54c046a..14f5c89 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@ nohup.out
plots/
*.pdf
dagman_FR.submit*
+submitter/logs/
diff --git a/fr.py b/fr.py
index 2de310c..9ea67dc 100755
--- a/fr.py
+++ b/fr.py
@@ -33,11 +33,11 @@ def define_nuisance():
"""
tag = ParamTag.NUISANCE
nuisance = ParamSet(
- Param(name='convNorm' , value=1. , ranges=[0., 5.], std=0.3 , tag=tag),
- Param(name='promptNorm' , value=0. , ranges=[0., 5.], std=0.05, tag=tag),
- Param(name='muonNorm' , value=1. , ranges=[0., 5.], std=0.1 , tag=tag),
- Param(name='astroNorm' , value=1. , ranges=[0., 5.], std=0.1 , tag=tag),
- Param(name='astroDeltaGamma', value=2. , ranges=[0., 5.], std=0.1 , tag=tag)
+ Param(name='convNorm', value=1., seed=[0.5, 2. ], ranges=[0. , 50.], std=0.3, tag=tag),
+ Param(name='promptNorm', value=0., seed=[0. , 6. ], ranges=[0. , 50.], std=0.05, tag=tag),
+ Param(name='muonNorm', value=1., seed=[0. , 2. ], ranges=[0. , 50.], std=0.1, tag=tag),
+ Param(name='astroNorm', value=1., seed=[4. , 10.], ranges=[0. , 50.], std=0.1, tag=tag),
+ Param(name='astroDeltaGamma', value=2., seed=[2. , 3. ], ranges=[-5., 5. ], std=0.1, tag=tag)
)
return nuisance
diff --git a/submitter/make_dag.py b/submitter/make_dag.py
index 33d05b3..63a94d7 100644
--- a/submitter/make_dag.py
+++ b/submitter/make_dag.py
@@ -31,11 +31,11 @@ fix_sfr_mfr = [
# MCMC
run_mcmc = 'True'
-burnin = 20
-nsteps = 100
+burnin = 50
+nsteps = 500
nwalkers = 200
seed = 24
-threads = 1
+threads = 12
mcmc_seed_type = 'uniform'
# FR
diff --git a/submitter/submit.sub b/submitter/submit.sub
index e932673..fe58eef 100644
--- a/submitter/submit.sub
+++ b/submitter/submit.sub
@@ -16,7 +16,7 @@ getenv = True
# +TransferOutput=""
request_memory = 1GB
-request_cpus = 1
+request_cpus = 12
Universe = vanilla
Notification = never
@@ -32,6 +32,7 @@ Notification = never
# Requirements = IS_GLIDEIN && HAS_CVMFS_icecube_opensciencegrid_org && (OpSysAndVer =?= "CentOS6" || OpSysAndVer =?= "RedHat6" || OpSysAndVer =?= "SL6")
# Requirements = IS_GLIDEIN
+requirements = (OpSysMajorVer =?= 6)
# GO!
queue
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
@@ -46,6 +48,16 @@ class Param(object):
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)
@@ -137,6 +149,10 @@ class ParamSet(Sequence):
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])