aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshivesh <s.p.mandalia@qmul.ac.uk>2018-03-19 18:37:56 -0500
committershivesh <s.p.mandalia@qmul.ac.uk>2018-03-19 18:37:56 -0500
commita6ced28fe29f5dc82108f14e310a0c6b5f04b3c7 (patch)
tree3af32e2953c79d64c11ca1d6e4ba98e300476fc7
parent38df6facfecb16cc24f829770aff77d24050f7f4 (diff)
downloadGolemFlavor-a6ced28fe29f5dc82108f14e310a0c6b5f04b3c7.tar.gz
GolemFlavor-a6ced28fe29f5dc82108f14e310a0c6b5f04b3c7.zip
bug fixes
-rwxr-xr-xfr.py30
-rw-r--r--submitter/make_dag.py10
-rw-r--r--submitter/submit.sub8
-rw-r--r--utils/gf.py12
-rw-r--r--utils/mcmc.py9
-rw-r--r--utils/misc.py4
6 files changed, 41 insertions, 32 deletions
diff --git a/fr.py b/fr.py
index 7a53956..4c95f81 100755
--- a/fr.py
+++ b/fr.py
@@ -17,7 +17,7 @@ import numpy as np
from utils import mcmc as mcmc_utils
from utils import misc as misc_utils
-from utils.enums import ParamTag
+from utils.enums import Likelihood, ParamTag
from utils.fr import MASS_EIGENVALUES, normalise_fr
from utils.gf import gf_argparse
from utils.misc import Param, ParamSet
@@ -52,17 +52,21 @@ def get_paramsets(args):
"""Make the paramsets for generating the Asmimov MC sample and also running
the MCMC.
"""
- nuisance_paramset = define_nuisance()
- for parm in nuisance_paramset:
- parm.value = args.__getattribute__(parm.name)
- asimov_paramset = ParamSet(
- nuisance_paramset.params +
- [Param(name='astroENorm' , value=args.measured_ratio[0], ranges=[0., 1.], std=0.2),
- Param(name='astroMuNorm' , value=args.measured_ratio[1], ranges=[0., 1.], std=0.2),
- Param(name='astroTauNorm' , value=args.measured_ratio[2], ranges=[0., 1.], std=0.2)]
- )
-
+ asimov_paramset = []
mcmc_paramset = []
+ if args.likelihood == Likelihood.GOLEMFIT:
+ nuisance_paramset = define_nuisance()
+ asimov_paramset.extend([nuisance_paramset.params])
+ mcmc_paramset.extend([nuisance_paramset.params])
+ for parm in nuisance_paramset:
+ parm.value = args.__getattribute__(parm.name)
+ asimov_paramset.extend([
+ Param(name='astroENorm' , value=args.measured_ratio[0], ranges=[0., 1.], std=0.2),
+ Param(name='astroMuNorm' , value=args.measured_ratio[1], ranges=[0., 1.], std=0.2),
+ Param(name='astroTauNorm', value=args.measured_ratio[2], ranges=[0., 1.], std=0.2)
+ ])
+ asimov_paramset = ParamSet(asimov_paramset)
+
if not args.fix_mixing:
tag = ParamTag.MMANGLES
mcmc_paramset.extend([
@@ -84,8 +88,8 @@ def get_paramsets(args):
Param(name='s_phi4', value=0.5, ranges=[0., 1.], std=0.2, tex=r'sin^4(\phi)', tag=tag),
Param(name='c_2psi', value=0.5, ranges=[0., 1.], std=0.2, tex=r'cos(2\psi)', tag=tag)
])
- mcmc_paramset = ParamSet(nuisance_paramset.params + mcmc_paramset)
- return nuisance_paramset, mcmc_paramset
+ mcmc_paramset = ParamSet(mcmc_paramset)
+ return asimov_paramset, mcmc_paramset
def process_args(args):
diff --git a/submitter/make_dag.py b/submitter/make_dag.py
index ccd1fee..daddb65 100644
--- a/submitter/make_dag.py
+++ b/submitter/make_dag.py
@@ -75,7 +75,7 @@ with open(outfile, 'w') as f:
for en in energy:
print 'energy {0:.0E}'.format(en)
- outchain_head = '/data/user/smandalia/flavour_ratio/data/DIM{0}/{1:.0E}'.format(dim, en)
+ outchain_head = '/data/user/smandalia/flavour_ratio/data/{0}/DIM{1}/{2:.0E}'.format(likelihood, dim, en)
for sig in sigma_ratio:
print 'sigma', sig
@@ -109,11 +109,15 @@ with open(outfile, 'w') as f:
f.write('VARS\tjob{0}\tconvNorm="{1}"\n'.format(job_number, convNorm))
f.write('VARS\tjob{0}\tmuonNorm="{1}"\n'.format(job_number, muonNorm))
f.write('VARS\tjob{0}\tpromptNorm="{1}"\n'.format(job_number, promptNorm))
+ f.write('VARS\tjob{0}\tdata="{1}"\n'.format(job_number, data))
+ f.write('VARS\tjob{0}\tpriors="{1}"\n'.format(job_number, priors))
f.write('VARS\tjob{0}\taft="{1}"\n'.format(job_number, aft))
f.write('VARS\tjob{0}\tast="{1}"\n'.format(job_number, ast))
f.write('VARS\tjob{0}\taxs="{1}"\n'.format(job_number, axs))
f.write('VARS\tjob{0}\tplot_angles="{1}"\n'.format(job_number, plot_angles))
f.write('VARS\tjob{0}\tplot_elements="{1}"\n'.format(job_number, plot_elements))
+ f.write('VARS\tjob{0}\tseed="{1}"\n'.format(job_number, seed))
+ f.write('VARS\tjob{0}\tthreads="{1}"\n'.format(job_number, threads))
job_number += 1
for frs in full_scan_mfr:
@@ -146,9 +150,13 @@ with open(outfile, 'w') as f:
f.write('VARS\tjob{0}\tconvNorm="{1}"\n'.format(job_number, convNorm))
f.write('VARS\tjob{0}\tmuonNorm="{1}"\n'.format(job_number, muonNorm))
f.write('VARS\tjob{0}\tpromptNorm="{1}"\n'.format(job_number, promptNorm))
+ f.write('VARS\tjob{0}\tdata="{1}"\n'.format(job_number, data))
+ f.write('VARS\tjob{0}\tpriors="{1}"\n'.format(job_number, priors))
f.write('VARS\tjob{0}\taft="{1}"\n'.format(job_number, aft))
f.write('VARS\tjob{0}\tast="{1}"\n'.format(job_number, ast))
f.write('VARS\tjob{0}\taxs="{1}"\n'.format(job_number, axs))
f.write('VARS\tjob{0}\tplot_angles="{1}"\n'.format(job_number, plot_angles))
f.write('VARS\tjob{0}\tplot_elements="{1}"\n'.format(job_number, plot_elements))
+ f.write('VARS\tjob{0}\tseed="{1}"\n'.format(job_number, seed))
+ f.write('VARS\tjob{0}\tthreads="{1}"\n'.format(job_number, threads))
job_number += 1
diff --git a/submitter/submit.sub b/submitter/submit.sub
index 07c0a85..b57c64c 100644
--- a/submitter/submit.sub
+++ b/submitter/submit.sub
@@ -1,10 +1,10 @@
-Executable = /home/smandalia/Documents/flavour_ratio/mcmc_scan.py
+Executable = /data/user/smandalia/GolemTools/sources/GolemFit/scripts/flavour_ratio/fr.py
Arguments = "--aft $(aft) --ast $(ast) --astroDeltaGamma $(astroDeltaGamma) --astroNorm $(astroNorm) --axs $(axs) --burnin $(burnin) --convNorm $(convNorm) --data $(data) --dimension $(dimension) --energy $(energy) --fix-mixing $(fix_mixing) --fix-scale $(fix_scale) --fix-source-ratio $(fix_source_ratio) --likelihood $(likelihood) --measured-ratio $(mr0) $(mr1) $(mr2) --muonNorm $(muonNorm) --no-bsm $(no_bsm) --nsteps $(nsteps) --nwalkers $(nwalkers) --outfile $(outfile) --plot-angles $(plot_angles) --plot-elements $(plot_elements) --priors $(priors) --promptNorm $(promptNorm) --run-mcmc $(run_mcmc) --scale $(scale) --scale-region $(scale_region) --seed $(seed) --sigma-ratio $(sigma_ratio) --source-ratio $(sr0) $(sr1) $(sr2) --threads $(threads)"
# All logs will go to a single file
-log = /home/smandalia/Documents/flavour_ratio/submitter/logs/job_$(Cluster).log
-output = /home/smandalia/Documents/flavour_ratio/submitter/logs/job_$(Cluster).out
-error = /home/smandalia/Documents/flavour_ratio/submitter/logs/job_$(Cluster).err
+log = /data/user/smandalia/GolemTools/sources/GolemFit/scripts/flavour_ratio/submitter/logs/job_$(Cluster).log
+output = /data/user/smandalia/GolemTools/sources/GolemFit/scripts/flavour_ratio/submitter/logs/job_$(Cluster).out
+error = /data/user/smandalia/GolemTools/sources/GolemFit/scripts/flavour_ratio/submitter/logs/job_$(Cluster).err
getenv = True
# environment = "X509_USER_PROXY=x509up_u14830"
diff --git a/utils/gf.py b/utils/gf.py
index 766c161..99b1f24 100644
--- a/utils/gf.py
+++ b/utils/gf.py
@@ -15,7 +15,7 @@ from functools import partial
import GolemFitPy as gf
from utils.enums import *
-from utils.misc import enum_keys, enum_parse
+from utils.misc import enum_parse
def data_distributions(fitter):
@@ -81,25 +81,25 @@ def gen_steering_params(steering_categ, quiet=False):
def gf_argparse(parser):
parser.add_argument(
'--data', default='real', type=partial(enum_parse, c=DataType),
- choices=enum_keys(DataType), help='select datatype'
+ choices=DataType, help='select datatype'
)
parser.add_argument(
'--ast', default='baseline', type=partial(enum_parse, c=SteeringCateg),
- choices=enum_keys(SteeringCateg),
+ choices=SteeringCateg,
help='use asimov/fake dataset with specific steering'
)
parser.add_argument(
'--aft', default='hesespl', type=partial(enum_parse, c=FitCateg),
- choices=enum_keys(FitCateg),
+ choices=FitCateg,
help='use asimov/fake dataset with specific Fit'
)
parser.add_argument(
'--axs', default='nom', type=partial(enum_parse, c=XSCateg),
- choices=enum_keys(XSCateg),
+ choices=XSCateg,
help='use asimov/fake dataset with xs scaling'
)
parser.add_argument(
'--priors', default='uniform', type=partial(enum_parse, c=Priors),
- choices=enum_keys(Priors), help='Bayesian priors'
+ choices=Priors, help='Bayesian priors'
)
diff --git a/utils/mcmc.py b/utils/mcmc.py
index aebe12f..995a338 100644
--- a/utils/mcmc.py
+++ b/utils/mcmc.py
@@ -18,9 +18,11 @@ import tqdm
import numpy as np
from scipy.stats import multivariate_normal
+import GolemFitPy as gf
+
from utils import fr as fr_utils
from utils.enums import Likelihood
-from utils.misc import enum_keys, enum_parse, make_dir, parse_bool
+from utils.misc import enum_parse, make_dir, parse_bool
def lnprior(theta, paramset):
@@ -65,7 +67,7 @@ def mcmc(p0, triangle_llh, lnprior, ndim, nwalkers, burnin, nsteps, ntemps=1, th
def mcmc_argparse(parser):
parser.add_argument(
'--likelihood', default='gaussian', type=partial(enum_parse, c=Likelihood),
- choices=enum_keys(Likelihood), help='likelihood contour'
+ choices=Likelihood, help='likelihood contour'
)
parser.add_argument(
'--run-mcmc', type=parse_bool, default='True',
@@ -137,14 +139,13 @@ def triangle_llh(theta, args):
)
fr = fr_utils.u_to_fr((fr1, fr2, fr3), u)
- fr_bf = args.measured_ratio
if args.likelihood is Likelihood.FLAT:
return 1.
elif args.likelihood is Likelihood.GAUSSIAN:
+ fr_bf = args.measured_ratio
return gaussian_llh(fr, fr_bf, args.sigma_ratio)
elif args.likelihood is Likelihood.GOLEMFIT:
raise NotImplementedError('TODO')
- import GolemFitPy as gf
from collections import namedtuple
datapaths = gf.DataPaths()
IceModels = namedtuple('IceModels', 'std_half2')
diff --git a/utils/misc.py b/utils/misc.py
index 2ff0664..108a458 100644
--- a/utils/misc.py
+++ b/utils/misc.py
@@ -252,10 +252,6 @@ def print_args(args):
print '== {0:<25} = {1}'.format(key, arg_vars[key])
-def enum_keys(e):
- return e.__members__.keys()
-
-
def enum_parse(s, c):
return c[s.upper()]