1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
#! /usr/bin/env python
# author : S. Mandalia
# s.p.mandalia@qmul.ac.uk
#
# date : November 26, 2018
"""
HESE flavour ratio contour
"""
from __future__ import absolute_import, division
import os
import argparse
from functools import partial
import numpy as np
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.param import Param, ParamSet, get_paramsets
def define_nuisance():
"""Define the nuisance parameters."""
nuisance = []
tag = ParamTag.NUISANCE
nuisance.extend([
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.1, 2. ], ranges=[0. , 50.], std=0.1, tag=tag),
Param(name='astroNorm', value=6.9, seed=[0.1, 10.], ranges=[0. , 50.], std=0.1, tag=tag),
Param(name='astroDeltaGamma', value=2.5, seed=[1. , 3. ], ranges=[-5., 5. ], std=0.1, tag=tag)
])
return ParamSet(nuisance)
def nuisance_argparse(parser):
nuisance = define_nuisance()
for parm in nuisance:
parser.add_argument(
'--'+parm.name, type=float, default=parm.value,
help=parm.name+' to inject'
)
def parse_args(args=None):
"""Parse command line arguments"""
parser = argparse.ArgumentParser(
description="BSM flavour ratio analysis",
formatter_class=misc_utils.SortingHelpFormatter,
)
parser.add_argument(
'--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(
'--seed', type=misc_utils.seed_parse, default='25',
help='Set the random seed value'
)
parser.add_argument(
'--threads', type=misc_utils.thread_type, default='1',
help='Set the number of threads to use (int or "max")'
)
parser.add_argument(
'--outfile', type=str, default='./untitled',
help='Path to output results'
)
try:
gf_utils.gf_argparse(parser)
except: pass
llh_utils.likelihood_argparse(parser)
nuisance_argparse(parser)
if args is None: return parser.parse_args()
else: return parser.parse_args(args.split())
def main():
args = parse_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
print "DONE!"
main.__doc__ = __doc__
if __name__ == '__main__':
main()
|