def checkDatacardRegions(self): datacardRegions = self.config.getDatacardRegions() samples = ParseInfo(config=self.config) availableSampleNames = [x.name for x in samples] for datacardRegion in datacardRegions: try: cutName = self.config.getDatacardCutName(datacardRegion) cutString = self.config.getCutString(cutName) print("datacard region:", datacardRegion) print(" ->", cutName) print(" ->", cutString) regionType = self.config.getDatacardRegionType(datacardRegion) print(" -> TYPE:", regionType) signals = self.config.getDatacardRegionSignals(datacardRegion) backgrounds = self.config.getDatacardRegionBackgrounds( datacardRegion) print(" -> SIG:\x1b[34m", signals, "\x1b[0m") print(" -> BKG:\x1b[35m", backgrounds, "\x1b[0m") for x in list(signals) + list(backgrounds): if x not in availableSampleNames: print("ERROR: not found: sample for datacard:", x) raise Exception("SampleNotFound") except Exception as e: self.addError('datacard region', datacardRegion + ' ' + repr(e))
def checkSamples(self): samples = ParseInfo(config=self.config) availableSampleNames = [x.name for x in samples] usedSampleNames = self.config.getUsedSamples() for sampleName in usedSampleNames: print(sampleName) if sampleName not in availableSampleNames: print("ERROR: not found sample:", sampleName) raise Exception("SampleNotFound")
def __init__(self, config): vhbb_name_space = config.get('VHbbNameSpace','library') ROOT.gSystem.Load(vhbb_name_space) self.__weight = config.get("TrainRegression","weight") self.__vars = config.get("TrainRegression","vars").split() self.__target = config.get("TrainRegression","target") self.__cut = config.get("TrainRegression","cut") self.__title = config.get("TrainRegression","name") self.__signals = config.get("TrainRegression","signals") self.__regOptions = config.get("TrainRegression","options") path = config.get('Directories','PREPout') samplesinfo=config.get('Directories','samplesinfo') self.__info = ParseInfo(samplesinfo,path) self.__samples = self.__info.get_samples(self.__signals) self.__tc = TreeCache([self.__cut],self.__samples,path,config) self.__trainCut = config.get("TrainRegression","trainCut") self.__testCut = config.get("TrainRegression","testCut") self.__config = config
'/mnt/t3nfs01/data01/shome/krgedia/CMSSW_10_1_0/src/Xbb/python/Zvv2017config/paths.ini' ) #parent class 'ConfigParser' method configFiles = pathconfig.get('Configuration', 'List').split(' ') config = BetterConfigParser.BetterConfigParser() for configFile in configFiles: print(configFile) config.read('Zvv2017config/' + configFile) #print(config.get('Weights','weightF')) #config = XbbConfigReader.read('Zvv2017') inputFile = 'root://t3dcachedb03.psi.ch:1094//pnfs/psi.ch/cms/trivcat/store/user/berger_p2/VHbb/VHbbPostNano2017/V5/Zvv/rerun/v4j/eval/ggZH_HToBB_ZToNuNu_M125_13TeV_powheg_pythia8/tree_aa5e971734ef4e885512748d534e6937ff03dc61feed21b6772ba943_000000_000000_0000_9_a6c5a52b56e5e0c7ad5aec31429c8926bf32cf39adbe087f05cfb323.root' path = 'root://t3dcachedb03.psi.ch:1094//pnfs/psi.ch/cms/trivcat/store/user/berger_p2/VHbb/VHbbPostNano2017/V5/Zvv/rerun/v4j/eval/' samplefiles = '../samples/VHbbPostNano2017_V5/merged_Zvv2017/' samplesinfo = 'Zvv2017config/samples_nosplit.ini' info = ParseInfo(samples_path=path, config=config) sample = [ x for x in info if x.identifier == 'ggZH_HToBB_ZToNuNu_M125_13TeV_powheg_pythia8' ][0] # read sample sampleTree = SampleTree([inputFile], config=config) # initialize module w = WeightAsBranch() w.customInit({ 'sampleTree': sampleTree, 'config': config, 'sample': sample,
pathOUT = config.get('Directories', 'SYSout') elif opts.mergeeval == 'True': pathIN = config.get('Directories', 'MVAin') pathOUT = config.get('Directories', 'MVAout') else: pathIN = config.get('Directories', 'PREPin') pathOUT = config.get('Directories', 'PREPout') samplesinfo = config.get('Directories', 'samplesinfo') sampleconf = BetterConfigParser() sampleconf.read(samplesinfo) whereToLaunch = config.get( 'Configuration', 'whereToLaunch') # USEFUL IN CASE OF SITE BY SITE OPTIONS prefix = sampleconf.get('General', 'prefix') info = ParseInfo(samplesinfo, pathIN) print "samplesinfo:", samplesinfo def mergetreePSI(pathIN, pathOUT, prefix, newprefix, folderName, Aprefix, Acut, config): ''' List of variables pathIN: path of the input file containing the data pathOUT: path of the output files prefix: "prefix" variable from "samples_nosplit.cfg" newprefix: "newprefix" variable from "samples_nosplit.cfg" file: sample header (as DYJetsToLL_M-50_TuneZ2Star_8TeV-madgraph-tarball) Aprefix: empty string '' Acut: the sample cut as defined in "samples_nosplit.cfg" '''
hash = hashlib.sha224(minCut).hexdigest() print 'pathOUT_orig', pathOUT_orig print hash grep_hash = '' if hash != '': grep_hash = ' |grep ' + hash mc_dataset_missing_files = [] data_dataset_missing_files = [] dataset_identifiers = [] if opts.filelist == "" or opts.names == 'nosample': # print "info:",info info = ParseInfo(samplesinfo, pathOUT_orig) # if opts.names == "" for job in info: dataset_identifiers.append(job.identifier) dataset_identifiers = set(dataset_identifiers) for identifier in dataset_identifiers: sampleType = config.get(identifier, 'sampleType') print 'sampleType', sampleType # print identifier # identifier=opts.names.split(',')[0] print "identifier:", identifier pathOUT = pathOUT_orig + '/' + identifier filenames = open(samplefiles + '/' + identifier + '.txt').readlines() print 'number of files on DAS:', len(filenames), #filenames[0]
def getSamplesInfo(self): if self.samplesInfo is None: self.samplesInfo = ParseInfo(config=self.config) return self.samplesInfo
self.quickloadWarningShown = True print("INFO: SetQuickLoad(1) called for formula:", formulaName) print( "INFO: -> EvalInstance(0) on formulas will not re-load branches but will take values from memory, which might have been modified by this module." ) treeFormula.SetQuickLoad(1) # print("\x1b[31mERROR: this module can't be used together with others which use formulas based on branches changed inside this module!\x1b[0m") # raise Exception("NotImplemented") if __name__ == '__main__': config = XbbConfigReader.read('Wlv2017') info = ParseInfo(config=config) sample = [ x for x in info if x.identifier == 'WplusH_HToBB_WToLNu_M125_13TeV_powheg_pythia8' ][0] # read sample sampleTree = SampleTree([ '/store/group/phys_higgs/hbb/ntuples/VHbbPostNano/2017/V11/WplusH_HToBB_WToLNu_M125_13TeV_powheg_pythia8/adewit-crab_nano2017_WplusH_HT81/190606_065851/0000/tree_1.root' ], treeName='Events', xrootdRedirector="root://eoscms.cern.ch/") # initialize module w = JetSmearer("2017") w.customInit({ 'sampleTree': sampleTree,