class Analyzer(BaseAnalyzer): def __init__(self, config, **kwargs): super(Analyzer, self).__init__("study_met", config) self.eff_caloMET_BE = EfficiencyPlot("CaloMETBE", "OfflineMETBE") self.register_plotter(self.eff_caloMET_BE) def prepare_for_events(self, reader): # TODO: Get these from a common place, and / or the config file puBins = range(0, 50, 10) + [999] thresholds = [70, 90, 110] self.eff_caloMET_BE.build("CaloMET BE (GeV)", "Offline MET BE (GeV)", puBins, thresholds, 50, 0, 300) return True def fill_histograms(self, entry, event): pileup = event.nVertex if pileup < 5 or not event.passesMETFilter(): return True if len(event.caloTowers) <= 0: return True offlineMetBE = event.sums.caloMetBE onlineMet = recalc.l1MetNot28(event.caloTowers).mag self.eff_caloMET_BE.fill(pileup, offlineMetBE, onlineMet) return True
def prepare_fake_eff_plots(): on_vs_off_efficiency = EfficiencyPlot("online", "offline") off_vs_off_efficiency = EfficiencyPlot("offline", "offline") on_vs_on_efficiency = EfficiencyPlot("online", "online") plotters = {"on_v_off": on_vs_off_efficiency, "off_v_off": off_vs_off_efficiency, "on_v_on": on_vs_on_efficiency} return plotters
def __init__(self, config, **kwargs): super(Analyzer, self).__init__("weekly_analyzer", config) for name in sum_types: eff_plot = EfficiencyPlot("L1", "offline_" + name) res_plot = ResolutionPlot("energy", "L1", "offline_" + name) twoD_plot = OnlineVsOffline("L1", "offline_" + name) self.register_plotter(eff_plot) self.register_plotter(res_plot) self.register_plotter(twoD_plot) setattr(self, name + "_eff", eff_plot) setattr(self, name + "_res", res_plot) setattr(self, name + "_2D", twoD_plot) eff_plot_HR = EfficiencyPlot("L1", "offline_" + name + "_HiRange") twoD_plot_HR = OnlineVsOffline( "L1", "offline_" + name + "_HiRange") self.register_plotter(eff_plot_HR) self.register_plotter(twoD_plot_HR) setattr(self, name + "_eff_HR", eff_plot_HR) setattr(self, name + "_2D_HR", twoD_plot_HR) for angle in sum_types: name = angle + "_phi" if 'HTT' in angle: continue res_plot = ResolutionPlot("phi", "L1", "offline_" + name) twoD_plot = OnlineVsOffline("L1", "offline_" + name) self.register_plotter(res_plot) self.register_plotter(twoD_plot) setattr(self, name + "_res", res_plot) setattr(self, name + "_2D", twoD_plot) for name in jet_types: eff_plot = EfficiencyPlot("L1", "offline_" + name) res_plot = ResolutionPlot("energy", "L1", "offline_" + name) twoD_plot = OnlineVsOffline("L1", "offline_" + name) self.register_plotter(eff_plot) self.register_plotter(res_plot) self.register_plotter(twoD_plot) setattr(self, name + "_eff", eff_plot) setattr(self, name + "_res", res_plot) setattr(self, name + "_2D", twoD_plot) eff_plot_HR = EfficiencyPlot("L1", "offline_" + name + "_HiRange") twoD_plot_HR = OnlineVsOffline( "L1", "offline_" + name + "_HiRange") self.register_plotter(eff_plot_HR) self.register_plotter(twoD_plot_HR) setattr(self, name + "_eff_HR", eff_plot_HR) setattr(self, name + "_2D_HR", twoD_plot_HR) self.res_vs_eta_CentralJets = ResolutionVsXPlot( "energy", "onlineJet", "offlineJet", "offlineJet_eta") self.register_plotter(self.res_vs_eta_CentralJets)
def __init__(self, config, **kwargs): super(Analyzer, self).__init__("study_met", config) for name in sum_types: eff_plot = EfficiencyPlot("online" + name, "offline" + name) res_plot = ResolutionPlot("energy", "online" + name, "offline" + name) twoD_plot = OnlineVsOffline("online" + name, "offline" + name) self.register_plotter(eff_plot) self.register_plotter(res_plot) self.register_plotter(twoD_plot) setattr(self, name + "_eff", eff_plot) setattr(self, name + "_res", res_plot) setattr(self, name + "_2D", twoD_plot) for angle in sum_types[1:]: name = angle + "_phi" res_plot = ResolutionPlot("phi", "online" + name, "offline" + name) twoD_plot = OnlineVsOffline("online" + name, "offline" + name) self.register_plotter(res_plot) self.register_plotter(twoD_plot) setattr(self, name + "_res", res_plot) setattr(self, name + "_2D", twoD_plot) self.res_vs_eta_CentralJets = ResolutionVsXPlot("energy", "onlineJet", "offlineJet", "offlineJet_eta") self.register_plotter(self.res_vs_eta_CentralJets)
def __init__(self, config, **kwargs): super(Analyzer, self).__init__("jetMet_analyzer", config) self._lumiFilter = None self._lumiJson = config.try_get('input', 'lumi_json', '') if self._lumiJson: self._lumiFilter = LuminosityFilter(self._lumiJson) self._lastRunAndLumi = (-1, -1) self._processLumi = True loaded_trees = config.try_get('analysis', 'load_trees') self._doVertex = 'recoTree' in loaded_trees self._doEmu = 'emuUpgrade' in loaded_trees self._doReco = 'recoTree' in loaded_trees self._doGen = 'genTree' in loaded_trees self._sumTypes, self._jetTypes = types(self._doEmu, self._doReco, self._doGen) for name in self._sumTypes: eff_plot = EfficiencyPlot("L1", "offline_" + name) res_plot = ResolutionPlot("energy", "L1", "offline_" + name) twoD_plot = OnlineVsOffline("L1", "offline_" + name) self.register_plotter(eff_plot) self.register_plotter(res_plot) self.register_plotter(twoD_plot) setattr(self, name + "_eff", eff_plot) setattr(self, name + "_res", res_plot) setattr(self, name + "_2D", twoD_plot) eff_plot_HR = EfficiencyPlot("L1", "offline_" + name + "_HiRange") twoD_plot_HR = OnlineVsOffline("L1", "offline_" + name + "_HiRange") self.register_plotter(eff_plot_HR) self.register_plotter(twoD_plot_HR) setattr(self, name + "_eff_HR", eff_plot_HR) setattr(self, name + "_2D_HR", twoD_plot_HR) for angle in self._sumTypes: name = angle + "_phi" if 'HT' in angle: continue res_plot = ResolutionPlot("phi", "L1", "offline_" + name) twoD_plot = OnlineVsOffline("L1", "offline_" + name) self.register_plotter(res_plot) self.register_plotter(twoD_plot) setattr(self, name + "_res", res_plot) setattr(self, name + "_2D", twoD_plot) for name in self._jetTypes: eff_plot = EfficiencyPlot("L1", "offline_" + name) res_plot = ResolutionPlot("energy", "L1", "offline_" + name) twoD_plot = OnlineVsOffline("L1", "offline_" + name) self.register_plotter(eff_plot) self.register_plotter(res_plot) self.register_plotter(twoD_plot) setattr(self, name + "_eff", eff_plot) setattr(self, name + "_res", res_plot) setattr(self, name + "_2D", twoD_plot) eff_plot_HR = EfficiencyPlot("L1", "offline_" + name + "_HiRange") twoD_plot_HR = OnlineVsOffline("L1", "offline_" + name + "_HiRange") self.register_plotter(eff_plot_HR) self.register_plotter(twoD_plot_HR) setattr(self, name + "_eff_HR", eff_plot_HR) setattr(self, name + "_2D_HR", twoD_plot_HR) self.res_vs_eta_CentralJets = ResolutionVsXPlot( "energy", "", "", "pfJet_eta") self.register_plotter(self.res_vs_eta_CentralJets) self.res_vs_eta_CentralGenJets = ResolutionVsXPlot( "energy", "", "", "genJet_eta") self.register_plotter(self.res_vs_eta_CentralGenJets)
def __init__(self, **kwargs): super(Analyzer, self).__init__(**kwargs) lumiMuDict = dict() run_lumi_csv = os.path.join(cmsl1t.PROJECT_ROOT, 'run_lumi.csv') with open(run_lumi_csv, 'rb') as runLumiFile: reader = csv.reader(runLumiFile, delimiter=',') for line in reader: lumiMuDict[(int(line[1]), int(line[2]))] = float(line[3]) self._lumiMu = lumiMuDict self._lumiFilter = None self._lumiJson = self.params['lumiJson'] if self._lumiJson: self._lumiFilter = LuminosityFilter(self._lumiJson) self._lastRunAndLumi = (-1, -1) self._processLumi = True # TODO: this needs changing, these should be analyser parameters # or even move out into separate calls of the same analyzer loaded_trees = self.params['load_trees'] self._doVertex = 'recoTree' in loaded_trees self._doEmu = 'emuUpgrade' in loaded_trees or 'p2UpgradeEmu' in loaded_trees self._doReco = 'recoTree' in loaded_trees self._doGen = 'genTree' in loaded_trees or 'p2Upgrade' in loaded_trees self._doPhase2 = 'p2Upgrade' in loaded_trees self._sumTypes, self._jetTypes = types(self._doEmu, self._doReco, self._doGen) for name in self._sumTypes: eff_plot = EfficiencyPlot("L1", "offline_" + name) res_plot = ResolutionPlot("energy", "L1", "offline_" + name) twoD_plot = OnlineVsOffline("L1", "offline_" + name) self.register_plotter(eff_plot) self.register_plotter(res_plot) self.register_plotter(twoD_plot) setattr(self, name + "_eff", eff_plot) setattr(self, name + "_res", res_plot) setattr(self, name + "_2D", twoD_plot) eff_plot_HR = EfficiencyPlot("L1", "offline_" + name + "_HiRange") twoD_plot_HR = OnlineVsOffline("L1", "offline_" + name + "_HiRange") self.register_plotter(eff_plot_HR) self.register_plotter(twoD_plot_HR) setattr(self, name + "_eff_HR", eff_plot_HR) setattr(self, name + "_2D_HR", twoD_plot_HR) for angle in self._sumTypes: name = angle + "_phi" if 'HT' in angle: continue res_plot = ResolutionPlot("phi", "L1", "offline_" + name) twoD_plot = OnlineVsOffline("L1", "offline_" + name) self.register_plotter(res_plot) self.register_plotter(twoD_plot) setattr(self, name + "_res", res_plot) setattr(self, name + "_2D", twoD_plot) for name in self._jetTypes: eff_plot = EfficiencyPlot("L1", "offline_" + name) res_plot = ResolutionPlot("energy", "L1", "offline_" + name) twoD_plot = OnlineVsOffline("L1", "offline_" + name) self.register_plotter(eff_plot) self.register_plotter(res_plot) self.register_plotter(twoD_plot) setattr(self, name + "_eff", eff_plot) setattr(self, name + "_res", res_plot) setattr(self, name + "_2D", twoD_plot) eff_plot_HR = EfficiencyPlot("L1", "offline_" + name + "_HiRange") twoD_plot_HR = OnlineVsOffline("L1", "offline_" + name + "_HiRange") self.register_plotter(eff_plot_HR) self.register_plotter(twoD_plot_HR) setattr(self, name + "_eff_HR", eff_plot_HR) setattr(self, name + "_2D_HR", twoD_plot_HR) self.res_vs_eta_CentralJets = ResolutionVsXPlot( "energy", "", "", "pfJet_eta") self.register_plotter(self.res_vs_eta_CentralJets) self.res_vs_eta_CentralGenJets = ResolutionVsXPlot( "energy", "", "", "genJet_eta") self.register_plotter(self.res_vs_eta_CentralGenJets)
def __init__(self, **kwargs): super(Analyzer, self).__init__(**kwargs) self._lumiFilter = None self._lumiJson = self.params['lumiJson'] if self._lumiJson: self._lumiFilter = LuminosityFilter(self._lumiJson) self._lastRunAndLumi = (-1, -1) self._processLumi = True # TODO: this needs changing, these should be analyser parameters # or even move out into separate calls of the same analyzer loaded_trees = self.params['load_trees'] self._doVertex = 'recoTree' in loaded_trees self._doEmu = 'emuUpgrade' in loaded_trees self._doReco = 'recoTree' in loaded_trees self._doGen = 'genTree' in loaded_trees self._sumTypes, self._jetTypes = types(self._doEmu, self._doReco, self._doGen) for name in self._sumTypes: eff_plot = EfficiencyPlot("L1", "offline_" + name) res_plot = ResolutionPlot("energy", "L1", "offline_" + name) twoD_plot = OnlineVsOffline("L1", "offline_" + name) self.register_plotter(eff_plot) self.register_plotter(res_plot) self.register_plotter(twoD_plot) setattr(self, name + "_eff", eff_plot) setattr(self, name + "_res", res_plot) setattr(self, name + "_2D", twoD_plot) eff_plot_HR = EfficiencyPlot("L1", "offline_" + name + "_HiRange") twoD_plot_HR = OnlineVsOffline("L1", "offline_" + name + "_HiRange") self.register_plotter(eff_plot_HR) self.register_plotter(twoD_plot_HR) setattr(self, name + "_eff_HR", eff_plot_HR) setattr(self, name + "_2D_HR", twoD_plot_HR) for angle in self._sumTypes: name = angle + "_phi" if 'HT' in angle: continue res_plot = ResolutionPlot("phi", "L1", "offline_" + name) twoD_plot = OnlineVsOffline("L1", "offline_" + name) self.register_plotter(res_plot) self.register_plotter(twoD_plot) setattr(self, name + "_res", res_plot) setattr(self, name + "_2D", twoD_plot) for name in self._jetTypes: eff_plot = EfficiencyPlot("L1", "offline_" + name) res_plot = ResolutionPlot("energy", "L1", "offline_" + name) twoD_plot = OnlineVsOffline("L1", "offline_" + name) self.register_plotter(eff_plot) self.register_plotter(res_plot) self.register_plotter(twoD_plot) setattr(self, name + "_eff", eff_plot) setattr(self, name + "_res", res_plot) setattr(self, name + "_2D", twoD_plot) eff_plot_HR = EfficiencyPlot("L1", "offline_" + name + "_HiRange") twoD_plot_HR = OnlineVsOffline("L1", "offline_" + name + "_HiRange") self.register_plotter(eff_plot_HR) self.register_plotter(twoD_plot_HR) setattr(self, name + "_eff_HR", eff_plot_HR) setattr(self, name + "_2D_HR", twoD_plot_HR) self.res_vs_eta_CentralJets = ResolutionVsXPlot( "energy", "", "", "pfJet_eta") self.register_plotter(self.res_vs_eta_CentralJets) self.res_vs_eta_CentralGenJets = ResolutionVsXPlot( "energy", "", "", "genJet_eta") self.register_plotter(self.res_vs_eta_CentralGenJets)
def __init__(self, config, **kwargs): super(Analyzer, self).__init__("study_met", config) self.eff_caloMET_BE = EfficiencyPlot("CaloMETBE", "OfflineMETBE") self.register_plotter(self.eff_caloMET_BE)
def __init__(self, config, **kwargs): super(Analyzer, self).__init__("jetMet_analyzer", config) self._lumiJson = config.try_get('input', 'lumi_json', '') self._lastLumi = -1 self._processLumi = True self._doEmu = config.try_get('analysis', 'do_emu', False) self._sumTypes, self._jetTypes = types(self._doEmu) for name in self._sumTypes: eff_plot = EfficiencyPlot("L1", "offline_" + name) res_plot = ResolutionPlot("energy", "L1", "offline_" + name) twoD_plot = OnlineVsOffline("L1", "offline_" + name) self.register_plotter(eff_plot) self.register_plotter(res_plot) self.register_plotter(twoD_plot) setattr(self, name + "_eff", eff_plot) setattr(self, name + "_res", res_plot) setattr(self, name + "_2D", twoD_plot) eff_plot_HR = EfficiencyPlot("L1", "offline_" + name + "_HiRange") twoD_plot_HR = OnlineVsOffline( "L1", "offline_" + name + "_HiRange") self.register_plotter(eff_plot_HR) self.register_plotter(twoD_plot_HR) setattr(self, name + "_eff_HR", eff_plot_HR) setattr(self, name + "_2D_HR", twoD_plot_HR) for angle in self._sumTypes: name = angle + "_phi" if 'HT' in angle: continue res_plot = ResolutionPlot("phi", "L1", "offline_" + name) twoD_plot = OnlineVsOffline("L1", "offline_" + name) self.register_plotter(res_plot) self.register_plotter(twoD_plot) setattr(self, name + "_res", res_plot) setattr(self, name + "_2D", twoD_plot) for name in self._jetTypes: eff_plot = EfficiencyPlot("L1", "offline_" + name) res_plot = ResolutionPlot("energy", "L1", "offline_" + name) twoD_plot = OnlineVsOffline("L1", "offline_" + name) self.register_plotter(eff_plot) self.register_plotter(res_plot) self.register_plotter(twoD_plot) setattr(self, name + "_eff", eff_plot) setattr(self, name + "_res", res_plot) setattr(self, name + "_2D", twoD_plot) eff_plot_HR = EfficiencyPlot("L1", "offline_" + name + "_HiRange") twoD_plot_HR = OnlineVsOffline( "L1", "offline_" + name + "_HiRange") self.register_plotter(eff_plot_HR) self.register_plotter(twoD_plot_HR) setattr(self, name + "_eff_HR", eff_plot_HR) setattr(self, name + "_2D_HR", twoD_plot_HR) self.res_vs_eta_CentralJets = ResolutionVsXPlot( "energy", "onlineJet", "offlineJet", "offlineJet_eta") self.register_plotter(self.res_vs_eta_CentralJets)