aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xfr.py5
-rw-r--r--submitter/make_dag.py121
-rw-r--r--submitter/submit.sub2
-rw-r--r--utils/misc.py14
4 files changed, 102 insertions, 40 deletions
diff --git a/fr.py b/fr.py
index 3e9581e..7a53956 100755
--- a/fr.py
+++ b/fr.py
@@ -109,7 +109,10 @@ def process_args(args):
def parse_args():
"""Parse command line arguments"""
- parser = argparse.ArgumentParser(description="BSM flavour ratio analysis")
+ parser = argparse.ArgumentParser(
+ description="BSM flavour ratio analysis",
+ formatter_class=misc_utils.SortingHelpFormatter,
+ )
parser.add_argument(
'--measured-ratio', type=int, nargs=3, default=[1, 1, 1],
help='Set the central value for the measured flavour ratio at IceCube'
diff --git a/submitter/make_dag.py b/submitter/make_dag.py
index 849020e..ccd1fee 100644
--- a/submitter/make_dag.py
+++ b/submitter/make_dag.py
@@ -29,15 +29,40 @@ fix_sfr_mfr = [
# (1, 2, 0, 1, 2, 0)
]
-sigmas = ['0.01']
-dimensions = [3]
-energy = [1e6]
-flat = False
-burnin = 20
+# MCMC
+run_mcmc = 'True'
+burnin = 20
+nsteps = 100
nwalkers = 200
-nsteps = 100
-scales = "1E-20 1E-30"
-no_bsm = False
+seed = 24
+threads = 1
+
+# FR
+dimension = [3]
+energy = [1e6]
+likelihood = 'gaussian'
+no_bsm = 'False'
+sigma_ratio = ['0.01']
+scale = "1E-20 1E-30"
+scale_region = "1E10"
+
+# Nuisance
+astroDeltaGamma = 2.
+astroNorm = 1.
+convNorm = 1.
+muonNorm = 1.
+promptNorm = 0.
+
+# GolemFit
+aft = 'hesespl'
+ast = 'baseline'
+axs = 'nom'
+data = 'real'
+priors = 'uniform'
+
+# Plot
+plot_angles = 'True'
+plot_elements = 'False'
outfile = 'dagman_FR.submit'
golemfitsourcepath = os.environ['GOLEMSOURCEPATH'] + '/GolemFit'
@@ -45,14 +70,14 @@ condor_script = golemfitsourcepath + '/scripts/flavour_ratio/submitter/submit.su
with open(outfile, 'w') as f:
job_number = 1
- for dim in dimensions:
+ for dim in dimension:
print 'dimension', dim
for en in energy:
print 'energy {0:.0E}'.format(en)
outchain_head = '/data/user/smandalia/flavour_ratio/data/DIM{0}/{1:.0E}'.format(dim, en)
- for sig in sigmas:
+ for sig in sigma_ratio:
print 'sigma', sig
for frs in fix_sfr_mfr:
print frs
@@ -61,45 +86,69 @@ with open(outfile, 'w') as f:
f.write('VARS\tjob{0}\tmr0="{1}"\n'.format(job_number, frs[0]))
f.write('VARS\tjob{0}\tmr1="{1}"\n'.format(job_number, frs[1]))
f.write('VARS\tjob{0}\tmr2="{1}"\n'.format(job_number, frs[2]))
- f.write('VARS\tjob{0}\tsigma="{1}"\n'.format(job_number, sig))
+ f.write('VARS\tjob{0}\tsigma_ratio="{1}"\n'.format(job_number, sig))
f.write('VARS\tjob{0}\tfix_source_ratio="{1}"\n'.format(job_number, 'True'))
f.write('VARS\tjob{0}\tsr0="{1}"\n'.format(job_number, frs[3]))
f.write('VARS\tjob{0}\tsr1="{1}"\n'.format(job_number, frs[4]))
f.write('VARS\tjob{0}\tsr2="{1}"\n'.format(job_number, frs[5]))
f.write('VARS\tjob{0}\tfix_scale="{1}"\n'.format(job_number, 'False'))
f.write('VARS\tjob{0}\tscale="{1}"\n'.format(job_number, 0))
+ f.write('VARS\tjob{0}\tscale_region="{1}"\n'.format(job_number, scale_region))
f.write('VARS\tjob{0}\tdimension="{1}"\n'.format(job_number, dim))
f.write('VARS\tjob{0}\tenergy="{1}"\n'.format(job_number, en))
- f.write('VARS\tjob{0}\tflat_llh="{1}"\n'.format(job_number, flat))
+ f.write('VARS\tjob{0}\tlikelihood="{1}"\n'.format(job_number, likelihood))
f.write('VARS\tjob{0}\tburnin="{1}"\n'.format(job_number, burnin))
f.write('VARS\tjob{0}\tnwalkers="{1}"\n'.format(job_number, nwalkers))
f.write('VARS\tjob{0}\tnsteps="{1}"\n'.format(job_number, nsteps))
f.write('VARS\tjob{0}\toutfile="{1}"\n'.format(job_number, outchains))
f.write('VARS\tjob{0}\tfix_mixing="{1}"\n'.format(job_number, 'False'))
f.write('VARS\tjob{0}\tno_bsm="{1}"\n'.format(job_number, no_bsm))
+ f.write('VARS\tjob{0}\trun_mcmc="{1}"\n'.format(job_number, run_mcmc))
+ f.write('VARS\tjob{0}\tastroDeltaGamma="{1}"\n'.format(job_number, astroDeltaGamma))
+ f.write('VARS\tjob{0}\tastroNorm="{1}"\n'.format(job_number, astroNorm))
+ f.write('VARS\tjob{0}\tconvNorm="{1}"\n'.format(job_number, convNorm))
+ f.write('VARS\tjob{0}\tmuonNorm="{1}"\n'.format(job_number, muonNorm))
+ f.write('VARS\tjob{0}\tpromptNorm="{1}"\n'.format(job_number, promptNorm))
+ f.write('VARS\tjob{0}\taft="{1}"\n'.format(job_number, aft))
+ f.write('VARS\tjob{0}\tast="{1}"\n'.format(job_number, ast))
+ f.write('VARS\tjob{0}\taxs="{1}"\n'.format(job_number, axs))
+ f.write('VARS\tjob{0}\tplot_angles="{1}"\n'.format(job_number, plot_angles))
+ f.write('VARS\tjob{0}\tplot_elements="{1}"\n'.format(job_number, plot_elements))
job_number += 1
- # for frs in full_scan_mfr:
- # print frs
- # outchains = outchain_head + '/full_scan/{0}/mcmc_chain'.format(str(sig).replace('.', '_'))
- # f.write('JOB\tjob{0}\t{1}\n'.format(job_number, condor_script))
- # f.write('VARS\tjob{0}\tmr0="{1}"\n'.format(job_number, frs[0]))
- # f.write('VARS\tjob{0}\tmr1="{1}"\n'.format(job_number, frs[1]))
- # f.write('VARS\tjob{0}\tmr2="{1}"\n'.format(job_number, frs[2]))
- # f.write('VARS\tjob{0}\tsigma="{1}"\n'.format(job_number, sig))
- # f.write('VARS\tjob{0}\tfix_source_ratio="{1}"\n'.format(job_number, 'False'))
- # f.write('VARS\tjob{0}\tsr0="{1}"\n'.format(job_number, 0))
- # f.write('VARS\tjob{0}\tsr1="{1}"\n'.format(job_number, 0))
- # f.write('VARS\tjob{0}\tsr2="{1}"\n'.format(job_number, 0))
- # f.write('VARS\tjob{0}\tfix_scale="{1}"\n'.format(job_number, 'False'))
- # f.write('VARS\tjob{0}\tscale="{1}"\n'.format(job_number, 0))
- # f.write('VARS\tjob{0}\tdimension="{1}"\n'.format(job_number, dim))
- # f.write('VARS\tjob{0}\tenergy="{1}"\n'.format(job_number, en))
- # f.write('VARS\tjob{0}\tflat_llh="{1}"\n'.format(job_number, flat))
- # f.write('VARS\tjob{0}\tburnin="{1}"\n'.format(job_number, burnin))
- # f.write('VARS\tjob{0}\tnwalkers="{1}"\n'.format(job_number, nwalkers))
- # f.write('VARS\tjob{0}\tnsteps="{1}"\n'.format(job_number, nsteps))
- # f.write('VARS\tjob{0}\toutfile="{1}"\n'.format(job_number, outchains))
- # f.write('VARS\tjob{0}\tfix_mixing="{1}"\n'.format(job_number, 'False'))
- # f.write('VARS\tjob{0}\tno_bsm="{1}"\n'.format(job_number, no_bsm))
- # job_number += 1
+ for frs in full_scan_mfr:
+ print frs
+ outchains = outchain_head + '/full_scan/{0}/mcmc_chain'.format(str(sig).replace('.', '_'))
+ f.write('JOB\tjob{0}\t{1}\n'.format(job_number, condor_script))
+ f.write('VARS\tjob{0}\tmr0="{1}"\n'.format(job_number, frs[0]))
+ f.write('VARS\tjob{0}\tmr1="{1}"\n'.format(job_number, frs[1]))
+ f.write('VARS\tjob{0}\tmr2="{1}"\n'.format(job_number, frs[2]))
+ f.write('VARS\tjob{0}\tsigma_ratio="{1}"\n'.format(job_number, sig))
+ f.write('VARS\tjob{0}\tfix_source_ratio="{1}"\n'.format(job_number, 'False'))
+ f.write('VARS\tjob{0}\tsr0="{1}"\n'.format(job_number, 0))
+ f.write('VARS\tjob{0}\tsr1="{1}"\n'.format(job_number, 0))
+ f.write('VARS\tjob{0}\tsr2="{1}"\n'.format(job_number, 0))
+ f.write('VARS\tjob{0}\tfix_scale="{1}"\n'.format(job_number, 'False'))
+ f.write('VARS\tjob{0}\tscale="{1}"\n'.format(job_number, 0))
+ f.write('VARS\tjob{0}\tscale_region="{1}"\n'.format(job_number, scale_region))
+ f.write('VARS\tjob{0}\tdimension="{1}"\n'.format(job_number, dim))
+ f.write('VARS\tjob{0}\tenergy="{1}"\n'.format(job_number, en))
+ f.write('VARS\tjob{0}\tlikelihood="{1}"\n'.format(job_number, likelihood))
+ f.write('VARS\tjob{0}\tburnin="{1}"\n'.format(job_number, burnin))
+ f.write('VARS\tjob{0}\tnwalkers="{1}"\n'.format(job_number, nwalkers))
+ f.write('VARS\tjob{0}\tnsteps="{1}"\n'.format(job_number, nsteps))
+ f.write('VARS\tjob{0}\toutfile="{1}"\n'.format(job_number, outchains))
+ f.write('VARS\tjob{0}\tfix_mixing="{1}"\n'.format(job_number, 'False'))
+ f.write('VARS\tjob{0}\tno_bsm="{1}"\n'.format(job_number, no_bsm))
+ f.write('VARS\tjob{0}\trun_mcmc="{1}"\n'.format(job_number, run_mcmc))
+ f.write('VARS\tjob{0}\tastroDeltaGamma="{1}"\n'.format(job_number, astroDeltaGamma))
+ f.write('VARS\tjob{0}\tastroNorm="{1}"\n'.format(job_number, astroNorm))
+ f.write('VARS\tjob{0}\tconvNorm="{1}"\n'.format(job_number, convNorm))
+ f.write('VARS\tjob{0}\tmuonNorm="{1}"\n'.format(job_number, muonNorm))
+ f.write('VARS\tjob{0}\tpromptNorm="{1}"\n'.format(job_number, promptNorm))
+ f.write('VARS\tjob{0}\taft="{1}"\n'.format(job_number, aft))
+ f.write('VARS\tjob{0}\tast="{1}"\n'.format(job_number, ast))
+ f.write('VARS\tjob{0}\taxs="{1}"\n'.format(job_number, axs))
+ f.write('VARS\tjob{0}\tplot_angles="{1}"\n'.format(job_number, plot_angles))
+ f.write('VARS\tjob{0}\tplot_elements="{1}"\n'.format(job_number, plot_elements))
+ job_number += 1
diff --git a/submitter/submit.sub b/submitter/submit.sub
index 45c8a58..07c0a85 100644
--- a/submitter/submit.sub
+++ b/submitter/submit.sub
@@ -1,5 +1,5 @@
Executable = /home/smandalia/Documents/flavour_ratio/mcmc_scan.py
-Arguments = --measured-ratio $(mr0) $(mr1) $(mr2) --sigma-ratio $(sigma) --fix-source-ratio $(fix_source_ratio) --source-ratio $(sr0) $(sr1) $(sr2) --fix-scale $(fix_scale) --scale $(scale) --dimension $(dimension) --energy $(energy) --flat-llh $(flat_llh) --burnin $(burnin) --nwalkers $(nwalkers) --nsteps $(nsteps) --seed 24 --outfile $(outfile) --fix-mixing $(fix_mixing) --no-bsm $(no_bsm)
+Arguments = "--aft $(aft) --ast $(ast) --astroDeltaGamma $(astroDeltaGamma) --astroNorm $(astroNorm) --axs $(axs) --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) --priors $(priors) --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)"
# All logs will go to a single file
log = /home/smandalia/Documents/flavour_ratio/submitter/logs/job_$(Cluster).log
diff --git a/utils/misc.py b/utils/misc.py
index c54d25c..2ff0664 100644
--- a/utils/misc.py
+++ b/utils/misc.py
@@ -11,9 +11,12 @@ from __future__ import absolute_import, division
import os
import errno
-from collections import Sequence
import multiprocessing
+import argparse
+from collections import Sequence
+from operator import attrgetter
+
import numpy as np
from utils.enums import Likelihood, ParamTag
@@ -152,6 +155,13 @@ class ParamSet(Sequence):
if obj.tag is tag])
+class SortingHelpFormatter(argparse.HelpFormatter):
+ """Sort argparse help options alphabetically."""
+ def add_arguments(self, actions):
+ actions = sorted(actions, key=attrgetter('option_strings'))
+ super(SortingHelpFormatter, self).add_arguments(actions)
+
+
def gen_outfile_name(args):
"""Generate a name for the output file based on the input args.
@@ -238,7 +248,7 @@ def print_args(args):
"""
arg_vars = vars(args)
- for key in arg_vars.iterkeys():
+ for key in sorted(arg_vars):
print '== {0:<25} = {1}'.format(key, arg_vars[key])