def calc_lumi(self): """ Walk over samples, take xSecAndNumber, calc lumi, put back to settings. """ from UserCode.RWTH3b.cmsRunController.classes.CRRootStyle import CRRootStyle root_style = CRRootStyle() qset = root_style.get_main_settings() for group in qset.childGroups(): qset.beginGroup(group) if qset.contains("xSecAndNumber"): x_sec_and_number = qset.value("xSecAndNumber").toStringList() x_sec = float(str(x_sec_and_number[0])) number = int(str(x_sec_and_number[1])) qset.setValue("lumi", number/x_sec) qset.endGroup()
def build_follow_up(self): """ Make follow-up .ini file. Takes output info from given .ini. """ from PyQt4 import QtCore from os.path import basename from UserCode.RWTH3b.cmsRunController.classes.CRRootStyle import CRRootStyle root_style = CRRootStyle() ini_name = root_style.get_ini_file() ini_name = basename(ini_name[:-4] + "_FOLLOWUP.ini") qset = root_style.get_main_settings() new_set = QtCore.QSettings(ini_name, 1) new_set.setValue("tryReuseResults", False) new_set.setValue("enableByDefault", True) new_set.setValue("commonInputPath", qset.value("commonOutputPath")) new_set.setValue("commonOutputPath", "") new_set.setValue("cfgFile", "") for sample in qset.childGroups(): qset.beginGroup(sample) new_set.beginGroup(sample) if qset.contains("eventOutput"): new_set.beginGroup("eventInput") file = str(qset.value("eventOutput", "").toString()) if file[-5:] != ".root": file += str(sample) + ".root" new_set.setValue("files", file) new_set.endGroup() if qset.contains("lumi"): new_set.setValue("lumi", qset.value("lumi")) if qset.contains("isData"): new_set.setValue("isData", qset.value("isData")) if qset.contains("enable"): new_set.setValue("enable", qset.value("enable")) new_set.setValue("eventOutput", "") qset.endGroup() new_set.endGroup() new_set.sync() print "'" + ini_name + "' created." return True
def data_lumi_sum(self): """ Walk over data samples, add up lumi, store in [General]/dataLumiSum """ from UserCode.RWTH3b.cmsRunController.classes.CRRootStyle import CRRootStyle root_style = CRRootStyle() qset = root_style.get_main_settings() data_lumi_sum = 0. for group in qset.childGroups(): qset.beginGroup(group) if qset.value("isData", False).toBool(): lumi, parse_ok = qset.value("lumi", 0.).toDouble() if parse_ok and lumi: data_lumi_sum += lumi qset.endGroup() if data_lumi_sum > 0: qset.setValue("dataLumiSum", data_lumi_sum)