def data(self, config, channel, category, weight, nick_suffix, exclude_cuts=None, cut_type="baseline", **kwargs): if exclude_cuts is None: exclude_cuts = [] scale_factor = 1.0 if not self.postfit_scales is None: scale_factor *= self.postfit_scales.get("data_obs", 1.0) data_weight = "(1.0)" if kwargs.get("project_to_lumi", False): data_weight = "({projection})*".format(projection=kwargs["project_to_lumi"]) + data_weight Samples._add_input( config, self.files_data(channel), self.root_file_folder(channel), 1.0, make_multiplication([data_weight, weight, "eventWeight", self._cut_string(channel, exclude_cuts=exclude_cuts, cut_type=cut_type)]), "data", nick_suffix=nick_suffix ) Samples._add_plot(config, "data", "E", "ELP", "data", nick_suffix) return config
json_filenames = [os.path.join(args.json_dir, "8TeV" if args.run1 else "13TeV", channel_dir, quantity+".json") for channel_dir in [channel, "default"]] for json_filename in json_filenames: json_filename = os.path.expandvars(json_filename) if os.path.exists(json_filename): json_config = jsonTools.JsonDict(json_filename).doIncludes().doComments() break quantity = json_config.pop("x_expressions", [quantity])[0] for lheweight_index, lheweight in enumerate(sorted(lheweights_names)): config = sample_settings.get_config( samples = list_of_samples, channel = channel, category = category_string, higgs_masses = args.higgs_masses, normalise_signal_to_one_pb = False, ztt_from_mc = args.ztt_from_mc, weight = lheweight + "*" + make_multiplication([clean_multiplication(json_config.pop("weights", ["1.0"])[0]), args.weight]), lumi = args.lumi * 1000, exclude_cuts = args.exclude_cuts + json_config.pop("exclude_cuts", []), blind_expression = channel + "_" + quantity, fakefactor_method = args.fakefactor_method, stack_signal = args.stack_signal, scale_signal = args.scale_signal, project_to_lumi = args.project_to_lumi, cut_mc_only = args.cut_mc_only, scale_mc_only = args.scale_mc_only, estimationMethod = background_method, mssm = args.mssm, controlregions = args.controlregions, cut_type = global_cut_type, nick_suffix = "_" + channel + "_" + category + "_" + lheweight, )
json_config = jsonTools.JsonDict( json_filename).doIncludes().doComments() break quantity = json_config.pop("x_expressions", [quantity])[0] for lheweight_index, lheweight in enumerate( sorted(lheweights_names)): config = sample_settings.get_config( samples=list_of_samples, channel=channel, category=category_string, higgs_masses=args.higgs_masses, normalise_signal_to_one_pb=False, ztt_from_mc=args.ztt_from_mc, weight=lheweight + "*" + make_multiplication([ clean_multiplication( json_config.pop("weights", ["1.0"])[0]), args.weight ]), lumi=args.lumi * 1000, exclude_cuts=args.exclude_cuts + json_config.pop("exclude_cuts", []), blind_expression=channel + "_" + quantity, fakefactor_method=args.fakefactor_method, stack_signal=args.stack_signal, scale_signal=args.scale_signal, project_to_lumi=args.project_to_lumi, cut_mc_only=args.cut_mc_only, scale_mc_only=args.scale_mc_only, estimationMethod=background_method, mssm=args.mssm, controlregions=args.controlregions,