diff options
Diffstat (limited to 'utils')
| -rw-r--r-- | utils/enums.py | 7 | ||||
| -rw-r--r-- | utils/fr.py | 21 | ||||
| -rw-r--r-- | utils/misc.py | 10 | ||||
| -rw-r--r-- | utils/param.py | 4 | ||||
| -rw-r--r-- | utils/plot.py | 4 |
5 files changed, 29 insertions, 17 deletions
diff --git a/utils/enums.py b/utils/enums.py index 7fcddae..2450ff7 100644 --- a/utils/enums.py +++ b/utils/enums.py @@ -28,6 +28,13 @@ class Likelihood(Enum): GF_FREQ = 4 +class MixingScenario(Enum): + T12 = 1 + T13 = 2 + T23 = 3 + NONE = 4 + + class ParamTag(Enum): NUISANCE = 1 SM_ANGLES = 2 diff --git a/utils/fr.py b/utils/fr.py index cb830ea..c6d7a52 100644 --- a/utils/fr.py +++ b/utils/fr.py @@ -13,7 +13,7 @@ from functools import partial import numpy as np -from utils.enums import EnergyDependance +from utils.enums import EnergyDependance, MixingScenario from utils.misc import enum_parse, parse_bool import mpmath as mp @@ -303,8 +303,9 @@ def fr_argparse(parser): help='Fix the source flavour ratio' ) parser.add_argument( - '--fix-mixing', type=parse_bool, default='False', - help='Fix all mixing parameters to bi-maximal mixing' + '--fix-mixing', type=partial(enum_parse, c=MixingScenario), + default='None', choices=MixingScenario, + help='Fix all mixing parameters to choice of maximal mixing' ) parser.add_argument( '--fix-mixing-almost', type=parse_bool, default='False', @@ -350,7 +351,7 @@ NUFIT_U = angles_to_u((0.307, (1-0.02195)**2, 0.565, 3.97935)) def params_to_BSMu(theta, dim, energy, mass_eigenvalues=MASS_EIGENVALUES, - sm_u=NUFIT_U, no_bsm=False, fix_mixing=False, + sm_u=NUFIT_U, no_bsm=False, fix_mixing=MixingScenario.NONE, fix_mixing_almost=False, fix_scale=False, scale=None, check_uni=True, epsilon=1e-7): """Construct the BSM mixing matrix from the BSM parameters. @@ -375,7 +376,7 @@ def params_to_BSMu(theta, dim, energy, mass_eigenvalues=MASS_EIGENVALUES, no_bsm : bool Turn off BSM behaviour - fix_mixing : bool + fix_mixing : MixingScenario Fix the BSM mixing angles fix_mixing_almost : bool @@ -409,13 +410,17 @@ def params_to_BSMu(theta, dim, energy, mass_eigenvalues=MASS_EIGENVALUES, 'got\n{0}'.format(sm_u) ) - if fix_mixing and fix_mixing_almost: + if fix_mixing is not MixingScenario.NONE and fix_mixing_almost: raise NotImplementedError( '--fix-mixing and --fix-mixing-almost cannot be used together' ) - if fix_mixing: - s12_2, c13_4, s23_2, dcp, sc2 = 0.5, 1.0-1E-6, 0.5, 0., theta + if fix_mixing is MixingScenario.T12: + s12_2, c13_4, s23_2, dcp, sc2 = 0.5, 1.0, 0.0, 0., theta + elif fix_mixing is MixingScenario.T13: + s12_2, c13_4, s23_2, dcp, sc2 = 0.0, 0.25, 0.0, 0., theta + elif fix_mixing is MixingScenario.T23: + s12_2, c13_4, s23_2, dcp, sc2 = 0.0, 1.0, 0.5, 0., theta elif fix_mixing_almost: s12_2, c13_4, dcp = 0.5, 1.0-1E-6, 0. s23_2, sc2 = theta diff --git a/utils/misc.py b/utils/misc.py index 837c145..ed14941 100644 --- a/utils/misc.py +++ b/utils/misc.py @@ -19,7 +19,7 @@ from operator import attrgetter import numpy as np -from utils.enums import Likelihood +from utils.enums import Likelihood, MixingScenario class SortingHelpFormatter(argparse.HelpFormatter): @@ -42,16 +42,16 @@ def gen_identifier(args): f += '_sfr_{0:G}_{1:G}_{2:G}_mfr_{3:G}_{4:G}_{5:G}'.format( sr1, sr2, sr3, mr1, mr2, mr3 ) - if args.fix_mixing: - f += '_fix_mixing' + if args.fix_mixing is not MixingScenario.NONE: + f += '_{0}'.format(args.fix_mixing) elif args.fix_mixing_almost: f += '_fix_mixing_almost' elif args.fix_scale: f += '_fix_scale_{0}'.format(args.scale) else: f += '_mfr_{3:03d}_{4:03d}_{5:03d}'.format(mr1, mr2, mr3) - if args.fix_mixing: - f += '_fix_mixing' + if args.fix_mixing is not MixingScenario.NONE: + f += '_{0}'.format(args.fix_mixing) elif args.fix_mixing_almost: f += '_fix_mixing_almost' elif args.fix_scale: diff --git a/utils/param.py b/utils/param.py index f8d64eb..fe0a0a0 100644 --- a/utils/param.py +++ b/utils/param.py @@ -18,7 +18,7 @@ import numpy as np from utils.plot import get_units from utils.fr import fr_to_angles -from utils.enums import DataType, Likelihood, ParamTag, PriorsCateg +from utils.enums import DataType, Likelihood, MixingScenario, ParamTag, PriorsCateg class Param(object): @@ -237,7 +237,7 @@ def get_paramsets(args, nuisance_paramset): ]) asimov_paramset = ParamSet(asimov_paramset) - if not args.fix_mixing and not args.fix_mixing_almost: + if args.fix_mixing is not MixingScenario.NONE and not args.fix_mixing_almost: tag = ParamTag.MMANGLES llh_paramset.extend([ Param(name='np_s_12^2', value=0.5, ranges=[0., 1.], std=0.2, tex=r'\tilde{s}_{12}^2', tag=tag), diff --git a/utils/plot.py b/utils/plot.py index 7a82f2b..43cc989 100644 --- a/utils/plot.py +++ b/utils/plot.py @@ -31,7 +31,7 @@ from getdist import plots, mcsamples from utils import misc as misc_utils from utils.enums import DataType, EnergyDependance -from utils.enums import Likelihood, ParamTag, StatCateg +from utils.enums import Likelihood, MixingScenario, ParamTag, StatCateg from utils.fr import angles_to_u, angles_to_fr plt.style.use(os.environ['GOLEMSOURCEPATH']+'/GolemFit/scripts/paper/paper.mplstyle') @@ -228,7 +228,7 @@ def chainer_plot(infile, outfile, outformat, args, llh_paramset): trns_ranges = np.array(ranges)[nu_index,].tolist() trns_axes_labels = np.array(axes_labels)[nu_index,].tolist() - if not args.fix_mixing: + if args.fix_mixing is not MixingScenario.NONE: trns_axes_labels += \ [r'\mid \tilde{U}_{e1} \mid' , r'\mid \tilde{U}_{e2} \mid' , r'\mid \tilde{U}_{e3} \mid' , \ r'\mid \tilde{U}_{\mu1} \mid' , r'\mid \tilde{U}_{\mu2} \mid' , r'\mid \tilde{U}_{\mu3} \mid' , \ |
