From 2a19e060fc9e982d6d4249a0e9eba0e4d6ac860d Mon Sep 17 00:00:00 2001 From: shivesh Date: Mon, 26 Nov 2018 21:46:18 -0600 Subject: Mon 26 Nov 21:46:18 CST 2018 --- contour.py | 35 ++++++++++++++++++++++++++++++++--- utils/enums.py | 4 ++++ utils/gf.py | 19 ++++++++++++++----- 3 files changed, 50 insertions(+), 8 deletions(-) diff --git a/contour.py b/contour.py index b0f2b99..db3e21a 100755 --- a/contour.py +++ b/contour.py @@ -20,7 +20,8 @@ from utils import gf as gf_utils from utils import llh as llh_utils from utils import misc as misc_utils from utils import plot as plot_utils -from utils.enums import ParamTag +from utils.enums import str_enum +from utils.enums import DataType, Likelihood, ParamTag from utils.param import Param, ParamSet, get_paramsets @@ -46,6 +47,17 @@ def nuisance_argparse(parser): help=parm.name+' to inject' ) +def process_args(args): + """Process the input args.""" + if args.likelihood is not Likelihood.GOLEMFIT \ + and args.likelihood is not Likelihood.GF_FREQ: + raise AssertionError( + 'Likelihood method {0} not supported for this ' + 'script!\nChoose either GOLEMFIT or GF_FREQ'.format( + str_enum(args.likelihood) + ) + ) + def parse_args(args=None): """Parse command line arguments""" @@ -57,6 +69,10 @@ def parse_args(args=None): '--injected-ratio', type=float, nargs=3, default=[1, 1, 1], help='Set the central value for the injected flavour ratio at IceCube' ) + parser.add_argument( + '--run-scan', type=misc_utils.parse_bool, default='True', + help='Do the scan from scratch' + ) parser.add_argument( '--seed', type=misc_utils.seed_parse, default='25', help='Set the random seed value' @@ -74,20 +90,33 @@ def parse_args(args=None): except: pass llh_utils.likelihood_argparse(parser) nuisance_argparse(parser) + misc_utils.remove_option(parser, 'sigma_ratio') if args is None: return parser.parse_args() else: return parser.parse_args(args.split()) +def gen_identifier(args): + f = '_{0}_{1}'.format(*map(str_enum, (args.likelihood, args.data))) + if args.data is not DataType.REAL: + ir1, ir2, ir3 = solve_ratio(args.injected_ratio) + f += '_INJ_{1:03d}_{2:03d}_{3:03d}'.format(ir1, ir2, ir3) + return f + + def main(): args = parse_args() + process_args(args) misc_utils.print_args(args) if args.seed is not None: np.random.seed(args.seed) asimov_paramset, llh_paramset = get_paramsets(args, define_nuisance()) - print 'asimov_paramset', asimov_paramset - print 'llh_paramset', llh_paramset + outfile = args.outfile + gen_identifier(args) + print '== {0:<25} = {1}'.format('outfile', outfile) + + if args.run_scan: + fitter = gf_utils.setup_fitter(args, asimov_paramset) print "DONE!" diff --git a/utils/enums.py b/utils/enums.py index 2450ff7..22f91b8 100644 --- a/utils/enums.py +++ b/utils/enums.py @@ -10,6 +10,10 @@ Define Enums for the BSM flavour ratio analysis from enum import Enum +def str_enum(x): + return '{0}'.format(str(x).split('.')[-1]) + + class DataType(Enum): REAL = 1 ASIMOV = 2 diff --git a/utils/gf.py b/utils/gf.py index dfab69a..1998484 100644 --- a/utils/gf.py +++ b/utils/gf.py @@ -20,7 +20,7 @@ except: pass from utils.enums import DataType, Likelihood, SteeringCateg -from utils.misc import enum_parse, thread_factors +from utils.misc import enum_parse, parse_bool, thread_factors from utils.param import ParamSet @@ -61,8 +61,10 @@ def steering_params(args): steering_categ = args.ast params = gf.SteeringParams(gf.sampleTag.MagicTau) params.quiet = False - params.fastmode = True - # params.fastmode = False + if args.debug: + params.fastmode = False + else: + params.fastmode = True params.simToLoad= steering_categ.name.lower() params.evalThreads = args.threads # params.evalThreads = thread_factors(args.threads)[1] @@ -75,8 +77,12 @@ def steering_params(args): # For Tianlu # params.years = [999] - params.minFitEnergy = args.binning[0] # GeV - params.maxFitEnergy = args.binning[-1] # GeV + if hasattr(args, 'binning'): + params.minFitEnergy = args.binning[0] # GeV + params.maxFitEnergy = args.binning[-1] # GeV + else: + params.minFitEnergy = 6E4 # GeV + params.maxFitEnergy = 1E7 # GeV params.load_data_from_text_file = False return params @@ -139,6 +145,9 @@ def data_distributions(fitter): def gf_argparse(parser): + parser.add_argument( + '--debug', default='False', type=parse_bool, help='Run without fastmode' + ) parser.add_argument( '--data', default='asimov', type=partial(enum_parse, c=DataType), choices=DataType, help='select datatype' -- cgit v1.2.3