aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xcontour.py35
-rw-r--r--utils/enums.py4
-rw-r--r--utils/gf.py19
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"""
@@ -58,6 +70,10 @@ def parse_args(args=None):
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
@@ -140,6 +146,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'
)