def test_gen_load(self): aliases = gen.fs_content() zjets_cutflow = gen.filter(aliases, { "name": "cutflow", "sample": "zjets" }) wrp = gen.load(zjets_cutflow).next() self.assertTrue(isinstance(wrp.histo, TH1F)) self.assertAlmostEqual(wrp.histo.Integral(), 2889.0)
def gen_mixer_input(input_dict): for d in input_dict: yield op.norm_to_integral( op.merge( list( gen.load( gen.filter( gen.fs_content(), d )))))
def test_gen_sort(self): aliases = list(gen.fs_content()) tmplt = gen.filter(aliases, {"analyzer": "fakeTemplate"}) sorted = list(gen.sort(tmplt)) s_name = map(lambda x: x.name, sorted) s_sample = map(lambda x: x.sample, sorted) s_is_data = map(lambda x: x.is_data, sorted) self.assertTrue(s_sample.index("ttgamma") < s_sample.index("zjets")) self.assertTrue(s_name.index("sihihEB") < s_name.index("sihihEE")) self.assertTrue(s_is_data.index(False) < s_is_data.index(True))
def test_gen_sort(self): aliases = list(gen.fs_content()) tmplt = gen.filter(aliases, {"analyzer": "fakeTemplate"}) sorted = list(gen.sort(tmplt)) s_name = map(lambda x: x.name, sorted) s_sample = map(lambda x: x.sample, sorted) s_is_data = map(lambda x: x.is_data, sorted) self.assertTrue(s_sample.index("ttgamma") < s_sample.index("zjets")) self.assertTrue(s_name.index("sihihEB") < s_name.index("sihihEE")) self.assertTrue(s_is_data.index(False) < s_is_data.index(True))
def test_gen_filter(self): import re aliases = list(gen.fs_content()) data = gen.filter(aliases, {"is_data": True}) tmplt = gen.filter(aliases, {"analyzer": "fakeTemplate"}) crtlplt = gen.filter(aliases, {"analyzer": re.compile("CrtlFilt*")}) crtlplt2 = gen.filter(aliases, {"analyzer": [re.compile("CrtlFilt*")]}) ttgam_cf = gen.filter(aliases, {"name": "cutflow", "sample": ["ttgamma", "tt"]}) self.assertEqual(gen.consume_n_count(data), 52) self.assertEqual(gen.consume_n_count(tmplt), 9) self.assertEqual(gen.consume_n_count(crtlplt), 39) self.assertEqual(gen.consume_n_count(crtlplt2), 39) self.assertEqual(gen.consume_n_count(ttgam_cf), 2)
def test_gen_group(self): from_fs = gen.fs_content() filtered = gen.filter(from_fs, {"name": "histo"}) sorted = gen.sort(filtered) grouped = gen.group(sorted) group_list = [] for group in grouped: group_list.append(list(group)) # length: 3 samples: 3 histos per group self.assertEqual(len(group_list), 26) for g in group_list: self.assertEqual(len(g), 3) self.assertEqual(g[0].analyzer, g[1].analyzer) self.assertEqual(g[0].analyzer, g[2].analyzer)
def test_gen_group(self): from_fs = gen.fs_content() filtered = gen.filter(from_fs, {"name": "histo"}) sorted = gen.sort(filtered) grouped = gen.group(sorted) group_list = [] for group in grouped: group_list.append(list(group)) # length: 3 samples: 3 histos per group self.assertEqual(len(group_list), 26) for g in group_list: self.assertEqual(len(g), 3) self.assertEqual(g[0].analyzer, g[1].analyzer) self.assertEqual(g[0].analyzer, g[2].analyzer)
def test_gen_filter(self): import re aliases = list(gen.fs_content()) data = gen.filter(aliases, {"is_data": True}) tmplt = gen.filter(aliases, {"analyzer": "fakeTemplate"}) crtlplt = gen.filter(aliases, {"analyzer": re.compile("CrtlFilt*")}) crtlplt2 = gen.filter(aliases, {"analyzer": [re.compile("CrtlFilt*")]}) ttgam_cf = gen.filter(aliases, { "name": "cutflow", "sample": ["ttgamma", "tt"] }) self.assertEqual(gen.consume_n_count(data), 52) self.assertEqual(gen.consume_n_count(tmplt), 9) self.assertEqual(gen.consume_n_count(crtlplt), 39) self.assertEqual(gen.consume_n_count(crtlplt2), 39) self.assertEqual(gen.consume_n_count(ttgam_cf), 2)
def run(self): wrps = gen.fs_content() wrps = gen.filter( wrps, {"analyzer": re.compile("CutFlow*")} ) wrps = gen.filter_active_samples(wrps) wrps = sorted(wrps, key = sample_key_func) wrps = gen.load(wrps) grps = gen.group(wrps, sample_key_func) wrps = (self.combine_cutflow_histo(g) for g in grps) wrps = gen.pool_store_items(wrps) wrps = list(wrps) self.result = wrps count = len(wrps) self.message("INFO: "+self.name+" stored "+str(count)+" histos in pool.")
def test_gen_special_treat(self): sample = ["tt", "zjets"] name = "cutflow" class TreatCls(object): def __init__(self, test): self.test = test self.n_times_called = 0 def __call__(self, alias): self.n_times_called += 1 self.test.assertTrue(alias.sample in sample) self.test.assertEqual(alias.name, name) treat_func = TreatCls(self) treated = gen.callback(gen.fs_content(), treat_func, {"sample": sample, "name": name}) self.assertEqual(gen.consume_n_count(treated), 150) self.assertEqual(treat_func.n_times_called, 2)
def test_gen_special_treat(self): sample = ["tt", "zjets"] name = "cutflow" class TreatCls(object): def __init__(self, test): self.test = test self.n_times_called = 0 def __call__(self, alias): self.n_times_called += 1 self.test.assertTrue(alias.sample in sample) self.test.assertEqual(alias.name, name) treat_func = TreatCls(self) treated = gen.callback(gen.fs_content(), treat_func, { "sample": sample, "name": name }) self.assertEqual(gen.consume_n_count(treated), 150) self.assertEqual(treat_func.n_times_called, 2)
def test_gen_fs_content(self): aliases = list(gen.fs_content()) self.assertEqual(len(aliases), 150)
def test_gen_load(self): aliases = gen.fs_content() zjets_cutflow = gen.filter(aliases, {"name": "cutflow", "sample": "zjets"}) wrp = gen.load(zjets_cutflow).next() self.assertTrue(isinstance(wrp.histo, TH1F)) self.assertAlmostEqual(wrp.histo.Integral(), 2889.0)
def test_gen_fs_content(self): aliases = list(gen.fs_content()) self.assertEqual(len(aliases), 150)