def run(self): kicked = gen.fs_filter_active_sort_load( {"sample":"TTJetsSignal", "analyzer":"ttbarPhotonMergerSingleCall", "name":re.compile("\S*Kicked")} ) whizard = gen.fs_filter_active_sort_load( {"sample":"whiz2to5", "analyzer":"photonsSignalMEanalyzer"} ) zipped = itertools.izip(kicked, whizard) zipped = (gen.callback(z, lambda x: x.histo.SetBinContent(1,0.)) for z in zipped) # remove first bin zipped = (gen.apply_histo_linecolor(z) for z in zipped) zipped = (gen.apply_histo_linewidth(z) for z in zipped) zipped = list(list(z) for z in zipped) # load all to memory if not (zipped and zipped[0]): self.message("WARNING Histograms not found!! Quitting..") return zipped[0][0].legend = "removed (madgraph)" zipped[0][1].legend = "tt#gamma (whizard)" def save_canvas(wrps, postfix): canvas = gen.canvas( wrps, [rnd.BottomPlotRatio, rnd.LegendRight, com.SimpleTitleBox] ) canvas = gen.save( canvas, lambda c: self.plot_output_dir + c.name + postfix ) canvas = gen.switch_log_scale(canvas) canvas = gen.save( canvas, lambda c: self.plot_output_dir + c.name + postfix + "_log" ) gen.consume_n_count(canvas) # norm to integral / lumi and save save_canvas( (gen.gen_norm_to_lumi(z) for z in zipped), "_lumi" )
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)