diff options
| -rwxr-xr-x | fr.py | 17 | ||||
| -rw-r--r-- | submitter/make_dag.py | 11 | ||||
| -rw-r--r-- | submitter/submit.sub | 2 | ||||
| -rw-r--r-- | utils/fr.py | 14 | ||||
| -rw-r--r-- | utils/likelihood.py | 32 | ||||
| -rw-r--r-- | utils/misc.py | 10 | ||||
| -rw-r--r-- | utils/plot.py | 2 |
7 files changed, 65 insertions, 23 deletions
@@ -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) |
