aboutsummaryrefslogtreecommitdiffstats
path: root/submitter
diff options
context:
space:
mode:
authorshivesh <s.p.mandalia@qmul.ac.uk>2018-04-27 18:37:45 -0500
committershivesh <s.p.mandalia@qmul.ac.uk>2018-04-27 18:37:45 -0500
commit45e8e4fa58e0c04c16b3000152dd08f2f6f8926e (patch)
treec05db01ced0f89ffa64d12d9f3f277e568eb80c9 /submitter
parentcfe60732b09544e304e66129383ceaf92ac8cdff (diff)
downloadGolemFlavor-45e8e4fa58e0c04c16b3000152dd08f2f6f8926e.tar.gz
GolemFlavor-45e8e4fa58e0c04c16b3000152dd08f2f6f8926e.zip
Fri Apr 27 18:37:45 CDT 2018
Diffstat (limited to 'submitter')
-rw-r--r--submitter/make_dag.py241
-rw-r--r--submitter/mcmc_dag.py116
-rw-r--r--submitter/mcmc_submit.sub39
-rw-r--r--submitter/sens_dag.py134
-rw-r--r--submitter/sens_submit.sub39
-rw-r--r--submitter/submit.sub41
6 files changed, 328 insertions, 282 deletions
diff --git a/submitter/make_dag.py b/submitter/make_dag.py
deleted file mode 100644
index 0e41c9a..0000000
--- a/submitter/make_dag.py
+++ /dev/null
@@ -1,241 +0,0 @@
-#! /usr/bin/env python
-
-import os
-import numpy as np
-
-a_fr = (1, 2, 0)
-b_fr = (1, 0, 0)
-c_fr = (0, 1, 0)
-d_fr = (0, 0, 1)
-e_fr = (1, 1, 1)
-f_fr = (2, 1, 0)
-g_fr = (1, 1, 0)
-
-full_scan_mfr = [
- # (1, 1, 1), (1, 1, 0)
-]
-
-fix_sfr_mfr = [
- (1, 1, 1, 1, 2, 0),
- (1, 1, 1, 1, 0, 0),
- (1, 1, 1, 0, 1, 0),
- (1, 1, 1, 0, 0, 1),
- # (1, 1, 0, 1, 2, 0),
- # (1, 1, 0, 1, 0, 0),
- # (1, 1, 0, 0, 1, 0),
- # (1, 0, 0, 1, 0, 0),
- # (0, 1, 0, 0, 1, 0),
- # (1, 2, 0, 1, 2, 0),
- # (1, 2, 0, 0, 1, 0),
-]
-
-# MCMC
-run_mcmc = 'True'
-burnin = 2500
-nsteps = 10000
-nwalkers = 60
-seed = 'None'
-threads = 1
-mcmc_seed_type = 'uniform'
-
-# FR
-dimension = [3, 6]
-energy = [1e6]
-no_bsm = 'False'
-sigma_ratio = ['0.01']
-scale = "1E-20 1E-30"
-scale_region = "1E10"
-energy_dependance = 'spectral'
-spectral_index = -2
-binning = [1e4, 1e7, 5]
-fix_mixing = 'False'
-fix_mixing_almost = 'False'
-
-# Likelihood
-likelihood = 'gaussian'
-
-# Nuisance
-convNorm = 1.
-promptNorm = 0.
-muonNorm = 1.
-astroNorm = 6.9
-astroDeltaGamma = 2.5
-
-# GolemFit
-ast = 'p2_0'
-data = 'real'
-
-# Bayes Factor
-run_bayes_factor = 'False'
-run_angles_limit = 'False'
-run_angles_correlation = 'False'
-bayes_bins = 100
-bayes_live_points = 3000
-bayes_tolerance = 0.01
-bayes_eval_bin = 'all' # set to 'all' to run normally
-
-# Plot
-plot_angles = 'True'
-plot_elements = 'False'
-plot_bayes = 'False'
-plot_angles_limit = 'False'
-
-outfile = 'dagman_FR.submit'
-golemfitsourcepath = os.environ['GOLEMSOURCEPATH'] + '/GolemFit'
-condor_script = golemfitsourcepath + '/scripts/flavour_ratio/submitter/submit.sub'
-
-if bayes_eval_bin != 'all':
- if run_angles_correlation == 'True':
- b_runs = bayes_bins**2
- else:
- b_runs = bayes_bins
-else: b_runs = 1
-
-with open(outfile, 'w') as f:
- job_number = 1
- for dim in dimension:
- print 'dimension', dim
- for en in energy:
- print 'energy {0:.0E}'.format(en)
-
- if energy_dependance == 'mono':
- outchain_head = '/data/user/smandalia/flavour_ratio/data/{0}/DIM{1}/{2:.0E}'.format(likelihood, dim, en)
- elif energy_dependance == 'spectral':
- outchain_head = '/data/user/smandalia/flavour_ratio/data/{0}/DIM{1}/SI_{2}'.format(likelihood, dim, spectral_index)
-
- bayes_output = 'None'
- angles_lim_output = 'None'
- angles_corr_output = 'None'
- for sig in sigma_ratio:
- print 'sigma', sig
- for frs in fix_sfr_mfr:
- print frs
- outchains = outchain_head + '/fix_ifr/{0}/'.format(str(sig).replace('.', '_'))
- if run_bayes_factor == 'True':
- bayes_output = outchains + '/bayes_factor/'
- if run_angles_limit == 'True':
- angles_lim_output = outchains + '/angles_limit/'
- if run_angles_correlation == 'True':
- angles_corr_output = outchains + '/angles_corr/'
- outchains += 'mcmc_chain'
- for r in range(b_runs):
- print 'run', r
- 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, '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}\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, fix_mixing))
- 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}\tdata="{1}"\n'.format(job_number, data))
- f.write('VARS\tjob{0}\tast="{1}"\n'.format(job_number, ast))
- 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))
- f.write('VARS\tjob{0}\tseed="{1}"\n'.format(job_number, seed))
- f.write('VARS\tjob{0}\tthreads="{1}"\n'.format(job_number, threads))
- f.write('VARS\tjob{0}\tmcmc_seed_type="{1}"\n'.format(job_number, mcmc_seed_type))
- f.write('VARS\tjob{0}\tenergy_dependance="{1}"\n'.format(job_number, energy_dependance))
- f.write('VARS\tjob{0}\tspectral_index="{1}"\n'.format(job_number, spectral_index))
- 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))
- # f.write('VARS\tjob{0}\trun_bayes_factor="{1}"\n'.format(job_number, run_bayes_factor))
- # f.write('VARS\tjob{0}\tbayes_bins="{1}"\n'.format(job_number, bayes_bins))
- # f.write('VARS\tjob{0}\tbayes_output="{1}"\n'.format(job_number, bayes_output))
- # f.write('VARS\tjob{0}\tbayes_live_points="{1}"\n'.format(job_number, bayes_live_points))
- # f.write('VARS\tjob{0}\tbayes_tolerance="{1}"\n'.format(job_number, bayes_tolerance))
- # f.write('VARS\tjob{0}\tplot_bayes="{1}"\n'.format(job_number, plot_bayes))
- # f.write('VARS\tjob{0}\tbayes_eval_bin="{1}"\n'.format(job_number, r))
- # f.write('VARS\tjob{0}\trun_angles_limit="{1}"\n'.format(job_number, run_angles_limit))
- # f.write('VARS\tjob{0}\tangles_lim_output="{1}"\n'.format(job_number, angles_lim_output))
- # f.write('VARS\tjob{0}\tplot_angles_limit="{1}"\n'.format(job_number, plot_angles_limit))
- # f.write('VARS\tjob{0}\trun_angles_correlation="{1}"\n'.format(job_number, run_angles_correlation))
- # f.write('VARS\tjob{0}\tangles_corr_output="{1}"\n'.format(job_number, angles_corr_output))
- job_number += 1
-
- for frs in full_scan_mfr:
- print frs
- outchains = outchain_head + '/full_scan/{0}'.format(str(sig).replace('.', '_'))
- if run_bayes_factor == 'True':
- bayes_output = outchains + '/bayes_factor/'
- if run_angles_limit == 'True':
- angles_lim_output = outchains + '/angles_limit/'
- if run_angles_correlation == 'True':
- angles_corr_output = outchains + '/angles_corr/'
- outchains += 'mcmc_chain'
- for r in range(b_runs):
- print 'run', r
- 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, fix_mixing))
- 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}\tdata="{1}"\n'.format(job_number, data))
- f.write('VARS\tjob{0}\tast="{1}"\n'.format(job_number, ast))
- 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))
- f.write('VARS\tjob{0}\tseed="{1}"\n'.format(job_number, seed))
- f.write('VARS\tjob{0}\tthreads="{1}"\n'.format(job_number, threads))
- f.write('VARS\tjob{0}\tmcmc_seed_type="{1}"\n'.format(job_number, mcmc_seed_type))
- f.write('VARS\tjob{0}\tenergy_dependance="{1}"\n'.format(job_number, energy_dependance))
- f.write('VARS\tjob{0}\tspectral_index="{1}"\n'.format(job_number, spectral_index))
- 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))
- f.write('VARS\tjob{0}\trun_bayes_factor="{1}"\n'.format(job_number, run_bayes_factor))
- f.write('VARS\tjob{0}\tbayes_bins="{1}"\n'.format(job_number, bayes_bins))
- f.write('VARS\tjob{0}\tbayes_output="{1}"\n'.format(job_number, bayes_output))
- f.write('VARS\tjob{0}\tbayes_live_points="{1}"\n'.format(job_number, bayes_live_points))
- f.write('VARS\tjob{0}\tbayes_tolerance="{1}"\n'.format(job_number, bayes_tolerance))
- f.write('VARS\tjob{0}\tplot_bayes="{1}"\n'.format(job_number, plot_bayes))
- f.write('VARS\tjob{0}\tbayes_eval_bin="{1}"\n'.format(job_number, r))
- f.write('VARS\tjob{0}\trun_angles_limit="{1}"\n'.format(job_number, run_angles_limit))
- f.write('VARS\tjob{0}\tangles_lim_output="{1}"\n'.format(job_number, angles_lim_output))
- f.write('VARS\tjob{0}\tplot_angles_limit="{1}"\n'.format(job_number, plot_angles_limit))
- f.write('VARS\tjob{0}\trun_angles_correlation="{1}"\n'.format(job_number, run_angles_correlation))
- f.write('VARS\tjob{0}\tangles_corr_output="{1}"\n'.format(job_number, angles_corr_output))
- job_number += 1
diff --git a/submitter/mcmc_dag.py b/submitter/mcmc_dag.py
new file mode 100644
index 0000000..79f9b6d
--- /dev/null
+++ b/submitter/mcmc_dag.py
@@ -0,0 +1,116 @@
+#! /usr/bin/env python
+
+import os
+import numpy as np
+
+full_scan_mfr = [
+ # (1, 1, 1), (1, 0, 0)
+]
+
+fix_sfr_mfr = [
+ (1, 1, 1, 1, 2, 0),
+ (1, 1, 1, 1, 0, 0),
+ (1, 1, 1, 0, 1, 0),
+ (1, 1, 1, 0, 0, 1),
+ # (1, 1, 0, 1, 2, 0),
+ # (1, 1, 0, 1, 0, 0),
+ # (1, 1, 0, 0, 1, 0),
+ # (1, 0, 0, 1, 0, 0),
+ # (0, 1, 0, 0, 1, 0),
+ # (1, 2, 0, 1, 2, 0),
+ # (1, 2, 0, 0, 1, 0),
+]
+
+GLOBAL_PARAMS = {}
+
+# MCMC
+GLOBAL_PARAMS.update(dict(
+ run_mcmc = 'True',
+ burnin = 2500,
+ nsteps = 10000,
+ nwalkers = 60,
+ seed = 'None',
+ mcmc_seed_type = 'uniform'
+))
+
+# FR
+dimension = [3, 6]
+GLOBAL_PARAMS.update(dict(
+ threads = 1,
+ binning = '1e4 1e7 5',
+ no_bsm = 'False',
+ scale_region = "1E10",
+ energy_dependance = 'spectral',
+ spectral_index = -2,
+ fix_mixing = 'False',
+ fix_mixing_almost = 'False'
+))
+
+# Likelihood
+GLOBAL_PARAMS.update(dict(
+ likelihood = 'gaussian',
+ sigma_ratio = '0.01'
+))
+
+# GolemFit
+GLOBAL_PARAMS.update(dict(
+ ast = 'p2_0',
+ data = 'real'
+))
+
+# Plot
+GLOBAL_PARAMS.update(dict(
+ plot_angles = 'True',
+ plot_elements = 'False',
+))
+
+outfile = 'dagman_FR_MCMC.submit'
+golemfitsourcepath = os.environ['GOLEMSOURCEPATH'] + '/GolemFit'
+condor_script = golemfitsourcepath + '/scripts/flavour_ratio/submitter/mcmc_submit.sub'
+
+with open(outfile, 'w') as f:
+ job_number = 1
+ for dim in dimension:
+ print 'dimension', dim
+ outchain_head = '/data/user/smandalia/flavour_ratio/data/{0}/DIM{1}/SI_{2}'.format(
+ GLOBAL_PARAMS['likelihood'], dim, GLOBAL_PARAMS['spectral_index']
+ )
+ for frs in fix_sfr_mfr:
+ print 'frs', frs
+ outchains = outchain_head + '/fix_ifr/'
+ if GLOBAL_PARAMS['likelihood'].lower() == 'gaussian':
+ outchains += '{0}/'.format(str(GLOBAL_PARAMS['sigma_ratio']).replace('.', '_'))
+ outchains += 'mcmc_chain'
+ f.write('JOB\tjob{0}\t{1}\n'.format(job_number, condor_script))
+ f.write('VARS\tjob{0}\tdimension="{1}"\n'.format(job_number, dim))
+ 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}\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]))
+ for key in GLOBAL_PARAMS.keys():
+ f.write('VARS\tjob{0}\tmr0="{1}"\n'.format(job_number, GLOBAL_PARAMS[key]))
+ f.write('VARS\tjob{0}\toutfile="{1}"\n'.format(job_number, outfile))
+ job_number += 1
+
+ for frs in full_scan_mfr:
+ print 'frs', frs
+ outchains = outchain_head + '/full/'
+ if GLOBAL_PARAMS['likelihood'].lower() == 'gaussian':
+ outchains += '{0}/'.format(str(GLOBAL_PARAMS['sigma_ratio']).replace('.', '_'))
+ outchains += 'mcmc_chain'
+ f.write('JOB\tjob{0}\t{1}\n'.format(job_number, condor_script))
+ f.write('VARS\tjob{0}\tdimension="{1}"\n'.format(job_number, dim))
+ 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}\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))
+ for key in GLOBAL_PARAMS.keys():
+ f.write('VARS\tjob{0}\tmr0="{1}"\n'.format(job_number, GLOBAL_PARAMS[key]))
+ f.write('VARS\tjob{0}\toutfile="{1}"\n'.format(job_number, outfile))
+ job_number += 1
diff --git a/submitter/mcmc_submit.sub b/submitter/mcmc_submit.sub
new file mode 100644
index 0000000..2032cb6
--- /dev/null
+++ b/submitter/mcmc_submit.sub
@@ -0,0 +1,39 @@
+Executable = /data/user/smandalia/GolemTools/sources/GolemFit/scripts/flavour_ratio/fr.py
+Arguments = "--ast $(ast) --burnin $(burnin) --data $(data) --dimension $(dimension) --fix-mixing $(fix_mixing) --fix-source-ratio $(fix_source_ratio) --likelihood $(likelihood) --measured-ratio $(mr0) $(mr1) $(mr2) --no-bsm $(no_bsm) --nsteps $(nsteps) --nwalkers $(nwalkers) --outfile $(outfile) --plot-angles $(plot_angles) --plot-elements $(plot_elements) --run-mcmc $(run_mcmc) --scale-region $(scale_region) --seed $(seed) --sigma-ratio $(sigma_ratio) --source-ratio $(sr0) $(sr1) $(sr2) --threads $(threads) --energy-dependance $(energy_dependance) --spectral-index $(spectral_index) --binning $(binning) --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
+output = /data/user/smandalia/GolemTools/sources/GolemFit/scripts/flavour_ratio/submitter/logs/job_$(Cluster).out
+error = /data/user/smandalia/GolemTools/sources/GolemFit/scripts/flavour_ratio/submitter/logs/job_$(Cluster).err
+
+getenv = True
+# environment = "X509_USER_PROXY=x509up_u14830"
+
+# Stage user cert to the node (Gridftp-Users is already on CVMFS)
+# transfer_input_files = /tmp/x509up_u14830
+
+# but do not try to copy outputs back (see: https://htcondor-wiki.cs.wisc.edu/index.cgi/tktview?tn=3081)
+# +TransferOutput=""
+Transfer_output_files = /data/user/smandalia/GolemTools/sources/GolemFit/scripts/flavour_ratio/submitter/metaouts/
+
+request_memory = 1GB
+request_cpus = 1
+
+Universe = vanilla
+Notification = never
+
+# run on both SL5 and 6
+# +WantRHEL6 = True
+# +WantSLC6 = False
+
+# # run on OSG
+# +WantGlidein = True
+
+# +TransferOutput=""
+
+# Requirements = IS_GLIDEIN && HAS_CVMFS_icecube_opensciencegrid_org && (OpSysAndVer =?= "CentOS6" || OpSysAndVer =?= "RedHat6" || OpSysAndVer =?= "SL6")
+# Requirements = IS_GLIDEIN
+# Requirements = (OpSysMajorVer =?= 6)
+
+# GO!
+queue
diff --git a/submitter/sens_dag.py b/submitter/sens_dag.py
new file mode 100644
index 0000000..2cecfe9
--- /dev/null
+++ b/submitter/sens_dag.py
@@ -0,0 +1,134 @@
+#! /usr/bin/env python
+
+import os
+import numpy as np
+
+full_scan_mfr = [
+ # (1, 1, 1), (1, 2, 0)
+]
+
+fix_sfr_mfr = [
+ (1, 1, 1, 1, 2, 0),
+ (1, 1, 1, 1, 0, 0),
+ (1, 1, 1, 0, 1, 0),
+ (1, 1, 1, 0, 0, 1),
+ # (1, 1, 0, 1, 2, 0),
+ # (1, 1, 0, 1, 0, 0),
+ # (1, 1, 0, 0, 1, 0),
+ # (1, 0, 0, 1, 0, 0),
+ # (0, 1, 0, 0, 1, 0),
+ # (1, 2, 0, 1, 2, 0),
+ # (1, 2, 0, 0, 1, 0),
+]
+
+GLOBAL_PARAMS = {}
+
+# Bayes Factor
+GLOBAL_PARAMS.update(dict(
+ sens_run = 'True',
+ run_method = 'full',
+ stat_method = 'bayesian',
+ sens_bins = 10,
+ sens_eval_bin = 'all' # set to 'all' to run normally
+))
+
+# MultiNest
+GLOBAL_PARAMS.update(dict(
+ mn_live_points = 400,
+ mn_tolerance = 0.01,
+ mn_output = './mnrun'
+))
+
+# FR
+dimension = [3, 6]
+GLOBAL_PARAMS.update(dict(
+ threads = 1,
+ binning = '1e4 1e7 5',
+ no_bsm = 'False',
+ scale_region = "1E10",
+ energy_dependance = 'spectral',
+ spectral_index = -2,
+ fix_mixing = 'False',
+ fix_mixing_almost = 'False'
+))
+
+# Likelihood
+GLOBAL_PARAMS.update(dict(
+ likelihood = 'gaussian',
+ sigma_ratio = '0.01'
+))
+
+# GolemFit
+GLOBAL_PARAMS.update(dict(
+ ast = 'p2_0',
+ data = 'real'
+))
+
+# Plot
+GLOBAL_PARAMS.update(dict(
+ plot_statistic = 'True'
+))
+
+outfile = 'dagman_FR_SENS.submit'
+golemfitsourcepath = os.environ['GOLEMSOURCEPATH'] + '/GolemFit'
+condor_script = golemfitsourcepath + '/scripts/flavour_ratio/submitter/sens_submit.sub'
+
+if GLOBAL_PARAMS['sens_eval_bin'].lower() != 'all':
+ if GLOBAL_PARAMS['run_method'].lower() == 'corr_angle':
+ sens_runs = GLOBAL_PARAMS['sens_bins']**2
+ else:
+ sens_runs = GLOBAL_PARAMS['sens_bins']
+else: sens_runs = 1
+
+with open(outfile, 'w') as f:
+ job_number = 1
+ for dim in dimension:
+ print 'dimension', dim
+ outchain_head = '/data/user/smandalia/flavour_ratio/data/{0}/DIM{1}/SI_{2}'.format(
+ GLOBAL_PARAMS['likelihood'], dim, GLOBAL_PARAMS['spectral_index']
+ )
+ for frs in fix_sfr_mfr:
+ print 'frs', frs
+ output = outchain_head + '/fix_ifr/'
+ if GLOBAL_PARAMS['likelihood'].lower() == 'gaussian':
+ output += '{0}/'.format(str(GLOBAL_PARAMS['sigma_ratio']).replace('.', '_'))
+ output += 'fr_stat'
+ for r in xrange(sens_runs):
+ print 'run', r
+ f.write('JOB\tjob{0}\t{1}\n'.format(job_number, condor_script))
+ f.write('VARS\tjob{0}\tdimension="{1}"\n'.format(job_number, dim))
+ 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}\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}\tsens_eval_bin="{1}"\n'.format(job_number, r))
+ for key in GLOBAL_PARAMS.keys():
+ f.write('VARS\tjob{0}\tmr0="{1}"\n'.format(job_number, GLOBAL_PARAMS[key]))
+ f.write('VARS\tjob{0}\toutfile="{1}"\n'.format(job_number, outfile))
+ job_number += 1
+
+ for frs in full_scan_mfr:
+ print 'frs', frs
+ output = outchain_head + '/full/'
+ if GLOBAL_PARAMS['likelihood'].lower() == 'gaussian':
+ output += '{0}/'.format(str(GLOBAL_PARAMS['sigma_ratio']).replace('.', '_'))
+ output += 'fr_stat'
+ for r in xrange(sens_runs):
+ print 'run', r
+ f.write('JOB\tjob{0}\t{1}\n'.format(job_number, condor_script))
+ f.write('VARS\tjob{0}\tdimension="{1}"\n'.format(job_number, dim))
+ 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}\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}\tsens_eval_bin="{1}"\n'.format(job_number, r))
+ for key in GLOBAL_PARAMS.keys():
+ f.write('VARS\tjob{0}\tmr0="{1}"\n'.format(job_number, GLOBAL_PARAMS[key]))
+ f.write('VARS\tjob{0}\toutfile="{1}"\n'.format(job_number, outfile))
+ job_number += 1
diff --git a/submitter/sens_submit.sub b/submitter/sens_submit.sub
new file mode 100644
index 0000000..1a02608
--- /dev/null
+++ b/submitter/sens_submit.sub
@@ -0,0 +1,39 @@
+Executable = /data/user/smandalia/GolemTools/sources/GolemFit/scripts/flavour_ratio/fr.py
+Arguments = "--ast $(ast) --data $(data) --dimension $(dimension) --fix-mixing $(fix_mixing) --fix-source-ratio $(fix_source_ratio) --likelihood $(likelihood) --measured-ratio $(mr0) $(mr1) $(mr2) --no-bsm $(no_bsm) --outfile $(outfile) --scale-region $(scale_region) --seed $(seed) --sigma-ratio $(sigma_ratio) --source-ratio $(sr0) $(sr1) $(sr2) --threads $(threads) --energy-dependance $(energy_dependance) --spectral-index $(spectral_index) --binning $(binning) --fix-mixing-almost $(fix_mixing_almost) --sens-run $(sens_run) --run-method $(run_method) --stat-method $(stat_method) --sens-bins $(sens_bins) --sens-eval-bin $(sens_eval_bin) --mn-live-points $(mn_live_points) --mn-tolerance $(mn_tolerance) --mn-output $(mn_output) --plot-statistic $(plot_statistic)"
+
+# All logs will go to a single file
+log = /data/user/smandalia/GolemTools/sources/GolemFit/scripts/flavour_ratio/submitter/logs/job_$(Cluster).log
+output = /data/user/smandalia/GolemTools/sources/GolemFit/scripts/flavour_ratio/submitter/logs/job_$(Cluster).out
+error = /data/user/smandalia/GolemTools/sources/GolemFit/scripts/flavour_ratio/submitter/logs/job_$(Cluster).err
+
+getenv = True
+# environment = "X509_USER_PROXY=x509up_u14830"
+
+# Stage user cert to the node (Gridftp-Users is already on CVMFS)
+# transfer_input_files = /tmp/x509up_u14830
+
+# but do not try to copy outputs back (see: https://htcondor-wiki.cs.wisc.edu/index.cgi/tktview?tn=3081)
+# +TransferOutput=""
+Transfer_output_files = /data/user/smandalia/GolemTools/sources/GolemFit/scripts/flavour_ratio/submitter/metaouts/
+
+request_memory = 1GB
+request_cpus = 1
+
+Universe = vanilla
+Notification = never
+
+# run on both SL5 and 6
+# +WantRHEL6 = True
+# +WantSLC6 = False
+
+# # run on OSG
+# +WantGlidein = True
+
+# +TransferOutput=""
+
+# Requirements = IS_GLIDEIN && HAS_CVMFS_icecube_opensciencegrid_org && (OpSysAndVer =?= "CentOS6" || OpSysAndVer =?= "RedHat6" || OpSysAndVer =?= "SL6")
+# Requirements = IS_GLIDEIN
+# Requirements = (OpSysMajorVer =?= 6)
+
+# GO!
+queue
diff --git a/submitter/submit.sub b/submitter/submit.sub
deleted file mode 100644
index 8e3c5af..0000000
--- a/submitter/submit.sub
+++ /dev/null
@@ -1,41 +0,0 @@
-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) --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)"
-
-# --run-bayes-factor $(run_bayes_factor) --bayes-bins $(bayes_bins) --bayes-output $(bayes_output) --bayes-live-points $(bayes_live_points) --plot-bayes $(plot_bayes) --bayes-tolerance $(bayes_tolerance) --bayes-eval-bin $(bayes_eval_bin) --run-angles-limit $(run_angles_limit) --angles-lim-out $(angles_lim_output) --plot-angles-limit $(plot_angles_limit) --run-angles-correlation $(run_angles_correlation) --angles-corr-output $(angles_corr_output)"
-
-# All logs will go to a single file
-log = /data/user/smandalia/GolemTools/sources/GolemFit/scripts/flavour_ratio/submitter/logs/job_$(Cluster).log
-output = /data/user/smandalia/GolemTools/sources/GolemFit/scripts/flavour_ratio/submitter/logs/job_$(Cluster).out
-error = /data/user/smandalia/GolemTools/sources/GolemFit/scripts/flavour_ratio/submitter/logs/job_$(Cluster).err
-
-getenv = True
-# environment = "X509_USER_PROXY=x509up_u14830"
-
-# Stage user cert to the node (Gridftp-Users is already on CVMFS)
-# transfer_input_files = /tmp/x509up_u14830
-
-# but do not try to copy outputs back (see: https://htcondor-wiki.cs.wisc.edu/index.cgi/tktview?tn=3081)
-# +TransferOutput=""
-Transfer_output_files = /data/user/smandalia/GolemTools/sources/GolemFit/scripts/flavour_ratio/submitter/metaouts/
-
-request_memory = 1GB
-request_cpus = 4
-
-Universe = vanilla
-Notification = never
-
-# run on both SL5 and 6
-# +WantRHEL6 = True
-# +WantSLC6 = False
-
-# # run on OSG
-# +WantGlidein = True
-
-# +TransferOutput=""
-
-# Requirements = IS_GLIDEIN && HAS_CVMFS_icecube_opensciencegrid_org && (OpSysAndVer =?= "CentOS6" || OpSysAndVer =?= "RedHat6" || OpSysAndVer =?= "SL6")
-# Requirements = IS_GLIDEIN
-# Requirements = (OpSysMajorVer =?= 6)
-
-# GO!
-queue