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,