def __init__(self, all, passed, dataset): self.all = all self.passed = passed if all == 0: self.eff = 0 else: self.eff = passed/all self.eff_up = ROOT.TEfficiency.ClopperPearson(int(all), int(passed), 0.95, True) self.eff_down = ROOT.TEfficiency.ClopperPearson(int(all), int(passed), 0.95, False) self.eff_up = self.eff_up - self.eff self.eff_down = self.eff - self.eff_down a = ROOT.TH1F("hall_"+dataset.getName(), "all", 1, 0, 1) a.SetBinContent(1, all) p = ROOT.TH1F("hpassed_"+dataset.getName(), "passed", 1, 0, 1) p.SetBinContent(1, passed) self.effobj = ROOT.TEfficiency(p, a) self.effobj.SetStatisticOption(ROOT.TEfficiency.kFCP) if dataset.isMC(): self.effobj.SetWeight(dataset.getCrossSection())
def addConfigInfo(of, dataset): d = of.mkdir("configInfo") d.cd() # configinfo histogram configinfo = ROOT.TH1F("configinfo", "configinfo", 3, 0, 3) axis = configinfo.GetXaxis() def setValue(bin, name, value): axis.SetBinLabel(bin, name) configinfo.SetBinContent(bin, value) setValue(1, "control", 1) if dataset.isData(): setValue(2, "luminosity", dataset.getLuminosity()) setValue(3, "isData", 1) elif dataset.isMC(): setValue(2, "crossSection", dataset.getCrossSection()) setValue(3, "isData", 0) configinfo.Write() configinfo.Delete() # dataVersion ds = dataset if dataset.isData(): ds = dataset.datasets[0] dataVersion = ROOT.TNamed("dataVersion", ds.dataVersion) dataVersion.Write() dataVersion.Delete() # codeVersion codeVersion = ROOT.TNamed("codeVersion", git.getCommitId()) codeVersion.Write() codeVersion.Delete() of.cd()
def __init__(self, all, passed, dataset): self.all = all self.passed = passed if all == 0: self.eff = 0 else: self.eff = passed / all self.eff_up = ROOT.TEfficiency.ClopperPearson(int(all), int(passed), 0.95, True) self.eff_down = ROOT.TEfficiency.ClopperPearson( int(all), int(passed), 0.95, False) self.eff_up = self.eff_up - self.eff self.eff_down = self.eff - self.eff_down a = ROOT.TH1F("hall_" + dataset.getName(), "all", 1, 0, 1) a.SetBinContent(1, all) p = ROOT.TH1F("hpassed_" + dataset.getName(), "passed", 1, 0, 1) p.SetBinContent(1, passed) self.effobj = ROOT.TEfficiency(p, a) self.effobj.SetStatisticOption(ROOT.TEfficiency.kFCP) if dataset.isMC(): self.effobj.SetWeight(dataset.getCrossSection())
def __init__(self, all, passed, dataset): self.effobj = ROOT.TEfficiency(passed, all) self.effobj.SetStatisticOption(ROOT.TEfficiency.kFCP) if dataset.isMC(): self.effobj.SetWeight(dataset.getCrossSection())