aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xfr.py17
-rw-r--r--submitter/make_dag.py11
-rw-r--r--submitter/submit.sub2
-rw-r--r--utils/fr.py14
-rw-r--r--utils/likelihood.py32
-rw-r--r--utils/misc.py10
-rw-r--r--utils/plot.py2
7 files changed, 65 insertions, 23 deletions
diff --git a/fr.py b/fr.py
index cacee1e..d940550 100755
--- a/fr.py
+++ b/fr.py
@@ -71,7 +71,7 @@ def get_paramsets(args):
])
asimov_paramset = ParamSet(asimov_paramset)
- if not args.fix_mixing:
+ if not args.fix_mixing and not args.fix_mixing_almost:
tag = ParamTag.MMANGLES
mcmc_paramset.extend([
Param(name='s_12^2', value=0.5, ranges=[0., 1.], std=0.2, tex=r'\tilde{s}_{12}^2', tag=tag),
@@ -79,6 +79,11 @@ def get_paramsets(args):
Param(name='s_23^2', value=0.5, ranges=[0., 1.], std=0.2, tex=r'\tilde{s}_{23}^4', tag=tag),
Param(name='dcp', value=np.pi, ranges=[0., 2*np.pi], std=0.2, tex=r'\tilde{\delta_{CP}}', tag=tag)
])
+ if args.fix_mixing_almost:
+ tag = ParamTag.MMANGLES
+ mcmc_paramset.extend([
+ Param(name='s_23^2', value=0.5, ranges=[0., 1.], std=0.2, tex=r'\tilde{s}_{23}^4', tag=tag)
+ ])
if not args.fix_scale:
logLam, scale_region = np.log10(args.scale), np.log10(args.scale_region)
lL_range = (logLam-scale_region, logLam+scale_region)
@@ -101,6 +106,10 @@ def process_args(args):
"""Process the input args."""
if args.fix_mixing and args.fix_scale:
raise NotImplementedError('Fixed mixing and scale not implemented')
+ if args.fix_mixing and args.fix_mixing_almost:
+ raise NotImplementedError(
+ '--fix-mixing and --fix-mixing-almost cannot be used together'
+ )
args.measured_ratio = normalise_fr(args.measured_ratio)
if args.fix_source_ratio:
@@ -168,7 +177,11 @@ def parse_args():
)
parser.add_argument(
'--fix-mixing', type=misc_utils.parse_bool, default='False',
- help='Fix all mixing parameters except one'
+ help='Fix all mixing parameters to bi-maximal mixing'
+ )
+ parser.add_argument(
+ '--fix-mixing-almost', type=misc_utils.parse_bool, default='False',
+ help='Fix all mixing parameters except s23'
)
parser.add_argument(
'--fix-scale', type=misc_utils.parse_bool, default='False',
diff --git a/submitter/make_dag.py b/submitter/make_dag.py
index 627e3ff..15d195a 100644
--- a/submitter/make_dag.py
+++ b/submitter/make_dag.py
@@ -31,15 +31,15 @@ fix_sfr_mfr = [
# MCMC
run_mcmc = 'True'
-burnin = 1000
-nsteps = 4000
+burnin = 500
+nsteps = 2000
nwalkers = 60
seed = 24
threads = 4
mcmc_seed_type = 'uniform'
# FR
-dimension = [6]
+dimension = [3, 6]
energy = [1e6]
likelihood = 'golemfit'
no_bsm = 'False'
@@ -50,6 +50,7 @@ energy_dependance = 'spectral'
spectral_index = -2
binning = [1e4, 1e7, 10]
fix_mixing = 'False'
+fix_mixing_almost = 'True'
# Likelihood
likelihood = 'golemfit'
@@ -69,7 +70,7 @@ data = 'real'
plot_angles = 'True'
plot_elements = 'False'
-outfile = 'dagman_FR.submit'
+outfile = 'dagman_FR_fix_mixing_almost.submit'
golemfitsourcepath = os.environ['GOLEMSOURCEPATH'] + '/GolemFit'
condor_script = golemfitsourcepath + '/scripts/flavour_ratio/submitter/submit.sub'
@@ -130,6 +131,7 @@ with open(outfile, 'w') as f:
f.write('VARS\tjob{0}\tbinning_0="{1}"\n'.format(job_number, binning[0]))
f.write('VARS\tjob{0}\tbinning_1="{1}"\n'.format(job_number, binning[1]))
f.write('VARS\tjob{0}\tbinning_2="{1}"\n'.format(job_number, binning[2]))
+ f.write('VARS\tjob{0}\tfix_mixing_almost="{1}"\n'.format(job_number, fix_mixing_almost))
job_number += 1
# for frs in full_scan_mfr:
@@ -175,4 +177,5 @@ with open(outfile, 'w') as f:
# f.write('VARS\tjob{0}\tbinning_0="{1}"\n'.format(job_number, binning[0]))
# f.write('VARS\tjob{0}\tbinning_1="{1}"\n'.format(job_number, binning[1]))
# f.write('VARS\tjob{0}\tbinning_2="{1}"\n'.format(job_number, binning[2]))
+ # f.write('VARS\tjob{0}\tfix_mixing_almost="{1}"\n'.format(job_number, fix_mixing_almost))
# job_number += 1
diff --git a/submitter/submit.sub b/submitter/submit.sub
index 380a4e9..b984c89 100644
--- a/submitter/submit.sub
+++ b/submitter/submit.sub
@@ -1,5 +1,5 @@
Executable = /data/user/smandalia/GolemTools/sources/GolemFit/scripts/flavour_ratio/fr.py
-Arguments = "--ast $(ast) --astroDeltaGamma $(astroDeltaGamma) --astroNorm $(astroNorm) --burnin $(burnin) --convNorm $(convNorm) --data $(data) --dimension $(dimension) --energy $(energy) --fix-mixing $(fix_mixing) --fix-scale $(fix_scale) --fix-source-ratio $(fix_source_ratio) --likelihood $(likelihood) --measured-ratio $(mr0) $(mr1) $(mr2) --muonNorm $(muonNorm) --no-bsm $(no_bsm) --nsteps $(nsteps) --nwalkers $(nwalkers) --outfile $(outfile) --plot-angles $(plot_angles) --plot-elements $(plot_elements) --promptNorm $(promptNorm) --run-mcmc $(run_mcmc) --scale $(scale) --scale-region $(scale_region) --seed $(seed) --sigma-ratio $(sigma_ratio) --source-ratio $(sr0) $(sr1) $(sr2) --threads $(threads) --likelihood $(likelihood) --mcmc-seed-type $(mcmc_seed_type) --energy-dependance $(energy_dependance) --spectral-index $(spectral_index) --binning $(binning_0) $(binning_1) $(binning_2)"
+Arguments = "--ast $(ast) --astroDeltaGamma $(astroDeltaGamma) --astroNorm $(astroNorm) --burnin $(burnin) --convNorm $(convNorm) --data $(data) --dimension $(dimension) --energy $(energy) --fix-mixing $(fix_mixing) --fix-scale $(fix_scale) --fix-source-ratio $(fix_source_ratio) --likelihood $(likelihood) --measured-ratio $(mr0) $(mr1) $(mr2) --muonNorm $(muonNorm) --no-bsm $(no_bsm) --nsteps $(nsteps) --nwalkers $(nwalkers) --outfile $(outfile) --plot-angles $(plot_angles) --plot-elements $(plot_elements) --promptNorm $(promptNorm) --run-mcmc $(run_mcmc) --scale $(scale) --scale-region $(scale_region) --seed $(seed) --sigma-ratio $(sigma_ratio) --source-ratio $(sr0) $(sr1) $(sr2) --threads $(threads) --likelihood $(likelihood) --mcmc-seed-type $(mcmc_seed_type) --energy-dependance $(energy_dependance) --spectral-index $(spectral_index) --binning $(binning_0) $(binning_1) $(binning_2) --fix-mixing-almost $(fix_mixing_almost)"
# All logs will go to a single file
log = /data/user/smandalia/GolemTools/sources/GolemFit/scripts/flavour_ratio/submitter/logs/job_$(Cluster).log
diff --git a/utils/fr.py b/utils/fr.py
index 4242e97..7f9d855 100644
--- a/utils/fr.py
+++ b/utils/fr.py
@@ -200,7 +200,8 @@ 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,
nufit_u=NUFIT_U, no_bsm=False, fix_mixing=False,
- fix_scale=False, scale=None, check_uni=True):
+ fix_mixing_almost=False, fix_scale=False, scale=None,
+ check_uni=True):
"""Construct the BSM mixing matrix from the BSM parameters.
Parameters
@@ -226,6 +227,9 @@ def params_to_BSMu(theta, dim, energy, mass_eigenvalues=MASS_EIGENVALUES,
fix_mixing : bool
Fix the BSM mixing angles
+ fix_mixing_almost : bool
+ Fix the BSM mixing angles except one
+
fix_scale : bool
Fix the BSM scale
@@ -254,8 +258,16 @@ def params_to_BSMu(theta, dim, energy, mass_eigenvalues=MASS_EIGENVALUES,
'got\n{0}'.format(ham)
)
+ if fix_mixing 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
+ elif fix_mixing_almost:
+ s12_2, c13_4, dcp = 0.5, 1.0-1E-6, 0.
+ s23_2, sc2 = theta
elif fix_scale:
s12_2, c13_4, s23_2, dcp = theta
sc2 = np.log10(scale)
diff --git a/utils/likelihood.py b/utils/likelihood.py
index ec64823..fe4301d 100644
--- a/utils/likelihood.py
+++ b/utils/likelihood.py
@@ -88,26 +88,28 @@ def triangle_llh(theta, args, asimov_paramset, mcmc_paramset, fitter):
if args.energy_dependance is EnergyDependance.MONO:
u = fr_utils.params_to_BSMu(
- theta = bsm_angles,
- dim = args.dimension,
- energy = args.energy,
- no_bsm = args.no_bsm,
- fix_mixing = args.fix_mixing,
- fix_scale = args.fix_scale,
- scale = args.scale
+ theta = bsm_angles,
+ dim = args.dimension,
+ energy = args.energy,
+ no_bsm = args.no_bsm,
+ fix_mixing = args.fix_mixing,
+ fix_mixing_almost = args.fix_mixing_almost,
+ fix_scale = args.fix_scale,
+ scale = args.scale
)
fr = fr_utils.u_to_fr(source_flux, u)
elif args.energy_dependance is EnergyDependance.SPECTRAL:
mf_perbin = []
for i_sf, sf_perbin in enumerate(source_flux):
- u = fr_utils.params_to_BSMu(
- theta = bsm_angles,
- dim = args.dimension,
- energy = args.energy,
- no_bsm = args.no_bsm,
- fix_mixing = args.fix_mixing,
- fix_scale = args.fix_scale,
- scale = args.scale
+ u = fr_utils.params_to_BSMu(
+ theta = bsm_angles,
+ dim = args.dimension,
+ energy = args.energy,
+ no_bsm = args.no_bsm,
+ fix_mixing = args.fix_mixing,
+ fix_mixing_almost = args.fix_mixing_almost,
+ fix_scale = args.fix_scale,
+ scale = args.scale
)
fr = fr_utils.u_to_fr(sf_perbin, u)
mf_perbin.append(fr)
diff --git a/utils/misc.py b/utils/misc.py
index a189f07..331e78a 100644
--- a/utils/misc.py
+++ b/utils/misc.py
@@ -214,6 +214,11 @@ def gen_outfile_name(args):
int(mr[0]*100), int(mr[1]*100), int(mr[2]*100), int(si*1000),
int(sr[0]*100), int(sr[1]*100), int(sr[2]*100), args.dimension
)
+ elif args.fix_mixing_almost:
+ outfile = args.outfile+'_{0:03d}_{1:03d}_{2:03d}_{3:04d}_sfr_{4:03d}_{5:03d}_{6:03d}_DIM{7}_fix_mixing_almost'.format(
+ int(mr[0]*100), int(mr[1]*100), int(mr[2]*100), int(si*1000),
+ int(sr[0]*100), int(sr[1]*100), int(sr[2]*100), args.dimension
+ )
elif args.fix_scale:
outfile = args.outfile+'_{0:03d}_{1:03d}_{2:03d}_{3:04d}_sfr_{4:03d}_{5:03d}_{6:03d}_DIM{7}_fixed_scale_{8}'.format(
int(mr[0]*100), int(mr[1]*100), int(mr[2]*100), int(si*1000),
@@ -231,6 +236,11 @@ def gen_outfile_name(args):
int(mr[0]*100), int(mr[1]*100), int(mr[2]*100),
int(si*1000), args.dimension
)
+ elif args.fix_mixing_almost:
+ outfile = args.outfile+'_{0:03d}_{1:03d}_{2:03d}_{3:04d}_DIM{4}_fix_mixing_almost'.format(
+ int(mr[0]*100), int(mr[1]*100), int(mr[2]*100),
+ int(si*1000), args.dimension
+ )
elif args.fix_scale:
outfile = args.outfile+'_{0:03d}_{1:03d}_{2:03d}_{3:04d}_DIM{4}_fixed_scale_{5}'.format(
int(mr[0]*100), int(mr[1]*100), int(mr[2]*100),
diff --git a/utils/plot.py b/utils/plot.py
index c83181c..c70ffec 100644
--- a/utils/plot.py
+++ b/utils/plot.py
@@ -198,6 +198,8 @@ def chainer_plot(infile, outfile, outformat, args, mcmc_paramset):
g.export(outfile+'_angles.'+of)
if args.plot_elements:
+ if args.fix_mixing_almost:
+ raise NotImplementedError
nu_index = mcmc_paramset.from_tag(ParamTag.NUISANCE, index=True)
fr_index = mcmc_paramset.from_tag(ParamTag.MMANGLES, index=True)
sc_index = mcmc_paramset.from_tag(ParamTag.SCALE, index=True)