From c93fdd6d39f8adf059a61ac7e1bc017699e8bfa7 Mon Sep 17 00:00:00 2001 From: shivesh Date: Tue, 20 Nov 2018 23:28:31 -0600 Subject: Tue 20 Nov 23:28:31 CST 2018 --- utils/gf.py | 8 +++++++- utils/likelihood.py | 27 ++++++++++++--------------- utils/multinest.py | 15 +++++++++++---- utils/plot.py | 24 ++++++++++++------------ 4 files changed, 42 insertions(+), 32 deletions(-) (limited to 'utils') diff --git a/utils/gf.py b/utils/gf.py index 6ce7863..92e64f3 100644 --- a/utils/gf.py +++ b/utils/gf.py @@ -19,7 +19,7 @@ except: print 'Running without GolemFit' pass -from utils.enums import DataType, SteeringCateg +from utils.enums import DataType, Likelihood, SteeringCateg from utils.misc import enum_parse, thread_factors from utils.param import ParamSet @@ -62,10 +62,16 @@ def steering_params(args): params = gf.SteeringParams(gf.sampleTag.MagicTau) params.quiet = False params.fastmode = True + # params.fastmode = False params.simToLoad= steering_categ.name.lower() params.evalThreads = args.threads # params.evalThreads = thread_factors(args.threads)[1] + if args.likelihood is Likelihood.GOLEMFIT: + params.frequentist = false; + elif args.likelihood is Likelihood.GF_FREQ: + params.frequentist = true; + # For Tianlu # params.years = [999] diff --git a/utils/likelihood.py b/utils/likelihood.py index 7079d52..f4404c4 100644 --- a/utils/likelihood.py +++ b/utils/likelihood.py @@ -72,8 +72,6 @@ def lnprior(theta, paramset): prior += Gaussian().logpdf( param.nominal_value, param.value, param.std ) - print 'prioring param', param.name, '=', param.value - print 'prior', prior elif param.prior is PriorsCateg.HALFGAUSS: prior += Gaussian().logpdf( param.nominal_value, param.value, param.std @@ -175,15 +173,6 @@ def triangle_llh(theta, args, asimov_paramset, llh_paramset, fitter): intergrated_measured_flux fr = averaged_measured_flux / np.sum(averaged_measured_flux) - if args.save_measured_fr and args.burnin is False: - n = gen_identifier(args) + '.txt' - with open(args.output_measured_fr + n, 'a') as f: - f.write(r'{0:.3f} {1:.3f} {2:.3f} {3:.1f}'.format( - float(fr[0]), float(fr[1]), float(fr[2]), - llh_paramset['logLam'].value - )) - f.write('\n') - flavour_angles = fr_utils.fr_to_angles(fr) # print 'flavour_angles', map(float, flavour_angles) for idx, param in enumerate(hypo_paramset.from_tag(ParamTag.BESTFIT)): @@ -198,6 +187,18 @@ def triangle_llh(theta, args, asimov_paramset, llh_paramset, fitter): llh = gf_utils.get_llh(fitter, hypo_paramset) elif args.likelihood is Likelihood.GF_FREQ: llh = gf_utils.get_llh_freq(fitter, hypo_paramset) + + if args.save_measured_fr and args.burnin is False: + n = gen_identifier(args) + '.txt' + with open(args.output_measured_fr + n, 'a') as f: + f.write(r'{0:.3f} {1:.3f} {2:.3f}'.format( + float(fr[0]), float(fr[1]), float(fr[2]) + )) + for p in llh_paramset: + f.write(r' {0:.3f}'.format(p.value)) + f.write(' LLH = {0:.3f}'.format(llh)) + f.write('\n') + return llh @@ -205,10 +206,6 @@ def ln_prob(theta, args, asimov_paramset, llh_paramset, fitter): lp = lnprior(theta, paramset=llh_paramset) if not np.isfinite(lp): return -np.inf - llh = triangle_llh( - theta, args=args, asimov_paramset=asimov_paramset, - llh_paramset=llh_paramset, fitter=fitter - ) return lp + triangle_llh( theta, args=args, asimov_paramset=asimov_paramset, llh_paramset=llh_paramset, fitter=fitter diff --git a/utils/multinest.py b/utils/multinest.py index e9eece9..fdd87cd 100644 --- a/utils/multinest.py +++ b/utils/multinest.py @@ -16,7 +16,7 @@ import numpy as np from pymultinest import analyse, run from utils import likelihood -from utils.misc import gen_identifier, make_dir +from utils.misc import gen_identifier, make_dir, solve_ratio def CubePrior(cube, ndim, n_params): @@ -63,7 +63,8 @@ def mn_argparse(parser): ) -def mn_evidence(mn_paramset, llh_paramset, asimov_paramset, args, fitter): +def mn_evidence(mn_paramset, llh_paramset, asimov_paramset, args, fitter, + identifier='mn'): """Run the MultiNest algorithm to calculate the evidence.""" n_params = len(mn_paramset) @@ -79,8 +80,14 @@ def mn_evidence(mn_paramset, llh_paramset, asimov_paramset, args, fitter): fitter = fitter ) - prefix = './mnrun/DIM{0}/{1}_{2}_{3:>010}_'.format( - args.dimension, args.likelihood, gen_identifier(args), np.random.randint(0, 2**30) + # prefix = './mnrun/DIM{0}/{1}_{2}_{3:>010}_'.format( + # args.dimension, args.likelihood, gen_identifier(args), np.random.randint(0, 2**30) + # ) + llh = '{0}'.format(args.likelihood).split('.')[1] + data = '{0}'.format(args.data).split('.')[1] + sr1, sr2, sr3 = solve_ratio(args.source_ratio) + prefix = './mnrun/DIM{0}/{1}/{2}/s{3}{4}{5}/{6}'.format( + args.dimension, data, llh, sr1, sr2, sr3, identifier ) make_dir(prefix) print 'Running evidence calculation for {0}'.format(prefix) diff --git a/utils/plot.py b/utils/plot.py index 53a4a84..6cbc4f5 100644 --- a/utils/plot.py +++ b/utils/plot.py @@ -627,18 +627,18 @@ def plot_sens_fixed_angle_pretty(data, outfile, outformat, args): plt.setp(legend.get_title(), fontsize='11') legend.get_frame().set_linestyle('-') - # if show_data: ybound = 0.595 - # else: ybound = 0.73 - # if args.data is DataType.REAL and show_data: - # # fig.text(0.295, 0.684, 'IceCube Preliminary', color='red', fontsize=13, - # fig.text(0.278, ybound, r'\bf IceCube Preliminary', color='red', fontsize=13, - # ha='center', va='center', zorder=11) - # elif args.data is DataType.REALISATION: - # fig.text(0.278, ybound-0.05, r'\bf IceCube Simulation', color='red', fontsize=13, - # ha='center', va='center', zorder=11) - # else: - # fig.text(0.278, ybound, r'\bf IceCube Simulation', color='red', fontsize=13, - # ha='center', va='center', zorder=11) + if show_data: ybound = 0.595 + else: ybound = 0.73 + if args.data is DataType.REAL and show_data: + # fig.text(0.295, 0.684, 'IceCube Preliminary', color='red', fontsize=13, + fig.text(0.278, ybound, r'\bf IceCube Preliminary', color='red', fontsize=13, + ha='center', va='center', zorder=11) + elif args.data is DataType.REALISATION: + fig.text(0.278, ybound-0.05, r'\bf IceCube Simulation', color='red', fontsize=13, + ha='center', va='center', zorder=11) + else: + fig.text(0.278, ybound, r'\bf IceCube Simulation', color='red', fontsize=13, + ha='center', va='center', zorder=11) misc_utils.make_dir(outfile) for of in outformat: -- cgit v1.2.3