aboutsummaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/enums.py7
-rw-r--r--utils/fr.py21
-rw-r--r--utils/misc.py10
-rw-r--r--utils/param.py4
-rw-r--r--utils/plot.py4
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 ea3c852..fb58176 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' , \