subsamplemap = dict(utils.flatten_samples(samples)) for sname in signals: for sub in list(subsamplemap[sname]): if obsname not in sub: samples.pop(sub) subsamplemap[sname].remove(sub) for cut in cuts.keys(): if obsname not in cut: cuts.pop(cut) categorymap = dict(utils.flatten_cuts(cuts)) nuisances_original = copy.deepcopy(nuisances) utils.update_nuisances_with_subsamples(nuisances, subsamplemap.items()) utils.update_nuisances_with_categories(nuisances, categorymap.items()) ### How we merge the bins & categories HistogramMerger.templateSpecs = [('mllVSmth_8x9', 72), ('mllVSmth_6x6', 36), ('met', (50, 20., 220.)), ('ptll', (20, 0., 200.)), ('dphill', (20, 0., 3.14)), ('mll', (31, 0., 310.)), ('mth', (30, 0., 300.))] HistogramMerger.templateSpecs.append(('events', 1)) HistogramMerger.secondarySpecs = [ ('mllfit', [10., 25., 35., 40., 45., 50., 55., 70., 90., 210.],
nuisances = {} if opt.nuisancesFile == None: print " Please provide the nuisances structure if you want to add nuisances " elif os.path.exists(opt.nuisancesFile): handle = open(opt.nuisancesFile, 'r') exec(handle) handle.close() import LatinoAnalysis.ShapeAnalysis.utils as utils subsamplesmap = utils.flatten_samples(samples) categoriesmap = utils.flatten_cuts(cuts) utils.update_variables_with_categories(variables, categoriesmap) utils.update_nuisances_with_subsamples(nuisances, subsamplesmap) utils.update_nuisances_with_categories(nuisances, categoriesmap) # check if only one cut or only one variable # is requested, and filter th elist of cuts and variables # using this piece of information if opt.onlyVariable != None: list_to_remove = [] for variableName, variable in variables.iteritems(): if variableName != opt.onlyVariable: list_to_remove.append(variableName) for toRemove in list_to_remove: del variables[toRemove] print " variables = ", variables