Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/unfolding_tests/create_toy_mc.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def get_new_set_of_histograms(h_truth, h_measured, h_response_AsymBins, h_fakes)
ROOT.TH1F.AddDirectory(False)
parser = OptionParser()
parser.add_option("-n", "--n_toy_mc",
dest="n_toy_mc", default=100,
dest="n_toy_mc", default=300,
help="number of toy MC to create", type=int)
parser.add_option("-o", "--output",
dest="output_folder", default='../data/toy_mc/',
Expand Down Expand Up @@ -98,7 +98,7 @@ def get_new_set_of_histograms(h_truth, h_measured, h_response_AsymBins, h_fakes)

# define output file
output = File(options.output_folder + '/toy_mc_' + variable + '_N_' + str(options.n_toy_mc) + '.root', 'recreate')
for channel in ['electron', 'muon']:
for channel in ['combined']:
# get histograms
h_truth, h_measured, h_response_AsymBins, h_fakes = get_unfold_histogram_tuple(input_file,
variable,
Expand Down
7 changes: 3 additions & 4 deletions src/unfolding_tests/create_unfolding_pull_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,8 +105,8 @@ def get_histograms(folder):
parser.add_option("-s", "--centre-of-mass-energy", dest="CoM", default=8,
help="set the centre of mass energy for analysis. Default = 8 [TeV]", type=int)
parser.add_option("-c", "--channel", type='string',
dest="channel", default='both',
help="channel to be analysed: electron|muon|both")
dest="channel", default='combined',
help="channel to be analysed: electron|muon|combined")

parser.add_option("--offset_toy_mc", type='int',
dest="offset_toy_mc", default=0,
Expand Down Expand Up @@ -155,8 +155,7 @@ def get_histograms(folder):
elif options.channel == 'muon':
check_multiple_data_multiple_unfolding(input_file, method, 'muon')
else:
check_multiple_data_multiple_unfolding(input_file, method, 'electron')
check_multiple_data_multiple_unfolding(input_file, method, 'muon')
check_multiple_data_multiple_unfolding(input_file, method, 'combined')

end1, end2 = clock(), time()

Expand Down
93 changes: 93 additions & 0 deletions src/unfolding_tests/do_pulls_workflow.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
mkdir -p pull_logs_MET/kv3
mkdir -p pull_logs_HT/kv3
mkdir -p pull_logs_ST/kv3
mkdir -p pull_logs_WPT/kv4
mkdir -p pull_logs_MT/kv2

echo 'Creating toy MC for all variables, 300x300, combined channel (default)'
python create_toy_mc.py -v MET -n 300
python create_toy_mc.py -v HT -n 300
python create_toy_mc.py -v ST -n 300
python create_toy_mc.py -v WPT -n 300
python create_toy_mc.py -v MT -n 300
wait

echo 'Producing pull data for MET variable, combined channel, kv=3'
python create_unfolding_pull_data.py -v MET -k 3 -f ../data/toy_mc/toy_mc_MET_N_300.root -n 100 --offset_toy_mc=0 --offset_toy_data=0 -c combined &>pull_logs_MET/kv3/1.log &
python create_unfolding_pull_data.py -v MET -k 3 -f ../data/toy_mc/toy_mc_MET_N_300.root -n 100 --offset_toy_mc=100 --offset_toy_data=0 -c combined &>pull_logs_MET/kv3/2.log &
python create_unfolding_pull_data.py -v MET -k 3 -f ../data/toy_mc/toy_mc_MET_N_300.root -n 100 --offset_toy_mc=200 --offset_toy_data=0 -c combined &>pull_logs_MET/kv3/3.log &
python create_unfolding_pull_data.py -v MET -k 3 -f ../data/toy_mc/toy_mc_MET_N_300.root -n 100 --offset_toy_mc=0 --offset_toy_data=100 -c combined &>pull_logs_MET/kv3/4.log &
python create_unfolding_pull_data.py -v MET -k 3 -f ../data/toy_mc/toy_mc_MET_N_300.root -n 100 --offset_toy_mc=0 --offset_toy_data=200 -c combined &>pull_logs_MET/kv3/5.log &
python create_unfolding_pull_data.py -v MET -k 3 -f ../data/toy_mc/toy_mc_MET_N_300.root -n 100 --offset_toy_mc=100 --offset_toy_data=100 -c combined &>pull_logs_MET/kv3/6.log &
python create_unfolding_pull_data.py -v MET -k 3 -f ../data/toy_mc/toy_mc_MET_N_300.root -n 100 --offset_toy_mc=200 --offset_toy_data=200 -c combined &>pull_logs_MET/kv3/7.log &
python create_unfolding_pull_data.py -v MET -k 3 -f ../data/toy_mc/toy_mc_MET_N_300.root -n 100 --offset_toy_mc=100 --offset_toy_data=200 -c combined &>pull_logs_MET/kv3/8.log &
python create_unfolding_pull_data.py -v MET -k 3 -f ../data/toy_mc/toy_mc_MET_N_300.root -n 100 --offset_toy_mc=200 --offset_toy_data=100 -c combined &>pull_logs_MET/kv3/9.log &
wait

echo 'Producing pull plots for MET variable, combined channel, kv=3'
python make_unfolding_pull_plots.py -i ../data/pull_data/MET/100_input_toy_mc/k_value_3 -c combined -v MET -k 3
wait

echo 'Producing pull data for HT variable, combined channel, kv=3'
python create_unfolding_pull_data.py -v HT -k 3 -f ../data/toy_mc/toy_mc_HT_N_300.root -n 100 --offset_toy_mc=0 --offset_toy_data=0 -c combined &>pull_logs_HT/kv3/1.log &
python create_unfolding_pull_data.py -v HT -k 3 -f ../data/toy_mc/toy_mc_HT_N_300.root -n 100 --offset_toy_mc=100 --offset_toy_data=0 -c combined &>pull_logs_HT/kv3/2.log &
python create_unfolding_pull_data.py -v HT -k 3 -f ../data/toy_mc/toy_mc_HT_N_300.root -n 100 --offset_toy_mc=200 --offset_toy_data=0 -c combined &>pull_logs_HT/kv3/3.log &
python create_unfolding_pull_data.py -v HT -k 3 -f ../data/toy_mc/toy_mc_HT_N_300.root -n 100 --offset_toy_mc=0 --offset_toy_data=100 -c combined &>pull_logs_HT/kv3/4.log &
python create_unfolding_pull_data.py -v HT -k 3 -f ../data/toy_mc/toy_mc_HT_N_300.root -n 100 --offset_toy_mc=0 --offset_toy_data=200 -c combined &>pull_logs_HT/kv3/5.log &
python create_unfolding_pull_data.py -v HT -k 3 -f ../data/toy_mc/toy_mc_HT_N_300.root -n 100 --offset_toy_mc=100 --offset_toy_data=100 -c combined &>pull_logs_HT/kv3/6.log &
python create_unfolding_pull_data.py -v HT -k 3 -f ../data/toy_mc/toy_mc_HT_N_300.root -n 100 --offset_toy_mc=200 --offset_toy_data=200 -c combined &>pull_logs_HT/kv3/7.log &
python create_unfolding_pull_data.py -v HT -k 3 -f ../data/toy_mc/toy_mc_HT_N_300.root -n 100 --offset_toy_mc=100 --offset_toy_data=200 -c combined &>pull_logs_HT/kv3/8.log &
python create_unfolding_pull_data.py -v HT -k 3 -f ../data/toy_mc/toy_mc_HT_N_300.root -n 100 --offset_toy_mc=200 --offset_toy_data=100 -c combined &>pull_logs_HT/kv3/9.log &
wait

echo 'Producing pull plots for HT variable, combined channel, kv=3'
python make_unfolding_pull_plots.py -i ../data/pull_data/HT/100_input_toy_mc/k_value_3 -c combined -v HT -k 3
wait

echo 'Producing pull data for ST variable, combined channel, kv=3'
python create_unfolding_pull_data.py -v ST -k 3 -f ../data/toy_mc/toy_mc_ST_N_300.root -n 100 --offset_toy_mc=0 --offset_toy_data=0 -c combined &>pull_logs_ST/kv3/1.log &
python create_unfolding_pull_data.py -v ST -k 3 -f ../data/toy_mc/toy_mc_ST_N_300.root -n 100 --offset_toy_mc=100 --offset_toy_data=0 -c combined &>pull_logs_ST/kv3/2.log &
python create_unfolding_pull_data.py -v ST -k 3 -f ../data/toy_mc/toy_mc_ST_N_300.root -n 100 --offset_toy_mc=200 --offset_toy_data=0 -c combined &>pull_logs_ST/kv3/3.log &
python create_unfolding_pull_data.py -v ST -k 3 -f ../data/toy_mc/toy_mc_ST_N_300.root -n 100 --offset_toy_mc=0 --offset_toy_data=100 -c combined &>pull_logs_ST/kv3/4.log &
python create_unfolding_pull_data.py -v ST -k 3 -f ../data/toy_mc/toy_mc_ST_N_300.root -n 100 --offset_toy_mc=0 --offset_toy_data=200 -c combined &>pull_logs_ST/kv3/5.log &
python create_unfolding_pull_data.py -v ST -k 3 -f ../data/toy_mc/toy_mc_ST_N_300.root -n 100 --offset_toy_mc=100 --offset_toy_data=100 -c combined &>pull_logs_ST/kv3/6.log &
python create_unfolding_pull_data.py -v ST -k 3 -f ../data/toy_mc/toy_mc_ST_N_300.root -n 100 --offset_toy_mc=200 --offset_toy_data=200 -c combined &>pull_logs_ST/kv3/7.log &
python create_unfolding_pull_data.py -v ST -k 3 -f ../data/toy_mc/toy_mc_ST_N_300.root -n 100 --offset_toy_mc=100 --offset_toy_data=200 -c combined &>pull_logs_ST/kv3/8.log &
python create_unfolding_pull_data.py -v ST -k 3 -f ../data/toy_mc/toy_mc_ST_N_300.root -n 100 --offset_toy_mc=200 --offset_toy_data=100 -c combined &>pull_logs_ST/kv3/9.log &
wait

echo 'Producing pull plots for ST variable, combined channel, kv=3'
python make_unfolding_pull_plots.py -i ../data/pull_data/ST/100_input_toy_mc/k_value_3 -c combined -v ST -k 3
wait

echo 'Producing pull data for WPT variable, combined channel, kv=4'
python create_unfolding_pull_data.py -v WPT -k 4 -f ../data/toy_mc/toy_mc_WPT_N_300.root -n 100 --offset_toy_mc=0 --offset_toy_data=0 -c combined &>pull_logs_WPT/kv4/1.log &
python create_unfolding_pull_data.py -v WPT -k 4 -f ../data/toy_mc/toy_mc_WPT_N_300.root -n 100 --offset_toy_mc=100 --offset_toy_data=0 -c combined &>pull_logs_WPT/kv4/2.log &
python create_unfolding_pull_data.py -v WPT -k 4 -f ../data/toy_mc/toy_mc_WPT_N_300.root -n 100 --offset_toy_mc=200 --offset_toy_data=0 -c combined &>pull_logs_WPT/kv4/3.log &
python create_unfolding_pull_data.py -v WPT -k 4 -f ../data/toy_mc/toy_mc_WPT_N_300.root -n 100 --offset_toy_mc=0 --offset_toy_data=100 -c combined &>pull_logs_WPT/kv4/4.log &
python create_unfolding_pull_data.py -v WPT -k 4 -f ../data/toy_mc/toy_mc_WPT_N_300.root -n 100 --offset_toy_mc=0 --offset_toy_data=200 -c combined &>pull_logs_WPT/kv4/5.log &
python create_unfolding_pull_data.py -v WPT -k 4 -f ../data/toy_mc/toy_mc_WPT_N_300.root -n 100 --offset_toy_mc=100 --offset_toy_data=100 -c combined &>pull_logs_WPT/kv4/6.log &
python create_unfolding_pull_data.py -v WPT -k 4 -f ../data/toy_mc/toy_mc_WPT_N_300.root -n 100 --offset_toy_mc=200 --offset_toy_data=200 -c combined &>pull_logs_WPT/kv4/7.log &
python create_unfolding_pull_data.py -v WPT -k 4 -f ../data/toy_mc/toy_mc_WPT_N_300.root -n 100 --offset_toy_mc=100 --offset_toy_data=200 -c combined &>pull_logs_WPT/kv4/8.log &
python create_unfolding_pull_data.py -v WPT -k 4 -f ../data/toy_mc/toy_mc_WPT_N_300.root -n 100 --offset_toy_mc=200 --offset_toy_data=100 -c combined &>pull_logs_WPT/kv4/9.log &
wait

echo 'Producing pull plots for WPT variable, combined channel, kv=4'
python make_unfolding_pull_plots.py -i ../data/pull_data/WPT/100_input_toy_mc/k_value_4 -c combined -v WPT -k 4
wait

echo 'Producing pull data for MT variable, combined channel, kv=2'
python create_unfolding_pull_data.py -v MT -k 2 -f ../data/toy_mc/toy_mc_MT_N_300.root -n 100 --offset_toy_mc=0 --offset_toy_data=0 -c combined &>pull_logs_MT/kv2/1.log &
python create_unfolding_pull_data.py -v MT -k 2 -f ../data/toy_mc/toy_mc_MT_N_300.root -n 100 --offset_toy_mc=100 --offset_toy_data=0 -c combined &>pull_logs_MT/kv2/2.log &
python create_unfolding_pull_data.py -v MT -k 2 -f ../data/toy_mc/toy_mc_MT_N_300.root -n 100 --offset_toy_mc=200 --offset_toy_data=0 -c combined &>pull_logs_MT/kv2/3.log &
python create_unfolding_pull_data.py -v MT -k 2 -f ../data/toy_mc/toy_mc_MT_N_300.root -n 100 --offset_toy_mc=0 --offset_toy_data=100 -c combined &>pull_logs_MT/kv2/4.log &
python create_unfolding_pull_data.py -v MT -k 2 -f ../data/toy_mc/toy_mc_MT_N_300.root -n 100 --offset_toy_mc=0 --offset_toy_data=200 -c combined &>pull_logs_MT/kv2/5.log &
python create_unfolding_pull_data.py -v MT -k 2 -f ../data/toy_mc/toy_mc_MT_N_300.root -n 100 --offset_toy_mc=100 --offset_toy_data=100 -c combined &>pull_logs_MT/kv2/6.log &
python create_unfolding_pull_data.py -v MT -k 2 -f ../data/toy_mc/toy_mc_MT_N_300.root -n 100 --offset_toy_mc=200 --offset_toy_data=200 -c combined &>pull_logs_MT/kv2/7.log &
python create_unfolding_pull_data.py -v MT -k 2 -f ../data/toy_mc/toy_mc_MT_N_300.root -n 100 --offset_toy_mc=100 --offset_toy_data=200 -c combined &>pull_logs_MT/kv2/8.log &
python create_unfolding_pull_data.py -v MT -k 2 -f ../data/toy_mc/toy_mc_MT_N_300.root -n 100 --offset_toy_mc=200 --offset_toy_data=100 -c combined &>pull_logs_MT/kv2/9.log &
wait

echo 'Producing pull plots for MT variable, combined channel, kv=2'
python make_unfolding_pull_plots.py -i ../data/pull_data/MT/100_input_toy_mc/k_value_2 -c combined -v MT -k 2
wait
8 changes: 5 additions & 3 deletions src/unfolding_tests/make_unfolding_pull_plots.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,10 @@ def plot_h_pull(h_pull, stats = 19596500, name = 'pull_test'):
channel_label = ''
if channel == 'electron':
channel_label = 'e+jets'
else:
elif channel == 'muon':
channel_label = '$\mu$+jets'
else:
channel_label = '$e/\mu$+jets combined'
title_template = 'Pull distribution for unfolding of $%s$ \n $\sqrt{s}$ = %d TeV, %s, k value = %d' % ( latex_labels.variables_latex[variable], centre_of_mass, channel_label, k_value )
plt.title(title_template, CMS.title)

Expand Down Expand Up @@ -214,8 +216,8 @@ def plot_difference(difference):
dest="output_folder", default='plots_unfolding_pull',
help="output folder for unfolding pull plots")
parser.add_option("-c", "--channel", type='string',
dest="channel", default='electron',
help="channel to be analysed: electron|muon|both")
dest="channel", default='combined',
help="channel to be analysed: electron|muon|combined")
parser.add_option("-k", "--k_value", type='int',
dest="k_value", default=3,
help="k-value used in SVD unfolding, only for categorisation purpose at this stage")
Expand Down
36 changes: 0 additions & 36 deletions src/unfolding_tests/unfolding_notes.txt

This file was deleted.