def setup_back_scattering(): test_ws = ms.LoadVesuvio(Filename="15039-15045", InstrumentParFile="IP0004_10.par", Mode="SingleDifference", SpectrumList="3-6") test_container_ws = ms.LoadVesuvio(Filename="15036", InstrumentParFile="IP0004_10.par", Mode="SingleDifference", SpectrumList="3-6") return test_ws, test_container_ws
def _run_load(self, runs, spectra, diff_opt, ip_file="", sum_runs=False, load_mon=False, do_size_check=True): ms.LoadVesuvio(Filename=runs,OutputWorkspace=self.ws_name, SpectrumList=spectra,Mode=diff_opt,InstrumentParFile=ip_file, SumSpectra=sum_runs, LoadMonitors=load_mon) self._do_ads_check(self.ws_name) def expected_size(): if sum_runs: if ";" in spectra: return 2 else: return 1 elif "-" in spectra: elements = spectra.split("-") min_e, max_e = (int(elements[0]), int(elements[1])) return max_e - min_e + 1 elif "," in spectra: elements = spectra.strip().split(",") return len(elements) else: return 1 if do_size_check: self._do_size_check(self.ws_name, expected_size()) loaded_data = mtd[self.ws_name] if "Difference" in diff_opt: self.assertTrue(not loaded_data.isHistogramData()) else: self.assertTrue(loaded_data.isHistogramData())
def load_and_crop_data(runs, spectra, ip_file, diff_mode='single', fit_mode='spectra', rebin_params=None): """ @param runs The string giving the runs to load @param spectra A list of spectra to load @param ip_file A string denoting the IP file @param diff_mode Either 'double' or 'single' @param fit_mode If bank then the loading is changed to summing each bank to a separate spectrum @param rebin_params Rebin parameter string to rebin data by (no rebin if None) """ instrument = VESUVIO() load_banks = (fit_mode == 'bank') output_name = _create_tof_workspace_suffix(runs, spectra) if load_banks: sum_spectra = True if spectra == "forward": bank_ranges = instrument.forward_banks elif spectra == "backward": bank_ranges = instrument.backward_banks else: raise ValueError("Fitting by bank requires selecting either 'forward' or 'backward' " "for the spectra to load") bank_ranges = ["{0}-{1}".format(x, y) for x, y in bank_ranges] spectra = ";".join(bank_ranges) else: sum_spectra = False if spectra == "forward": spectra = "{0}-{1}".format(*instrument.forward_spectra) elif spectra == "backward": spectra = "{0}-{1}".format(*instrument.backward_spectra) if diff_mode == "double": diff_mode = "DoubleDifference" else: diff_mode = "SingleDifference" kwargs = {"Filename": runs, "Mode": diff_mode, "InstrumentParFile": ip_file, "SpectrumList": spectra, "SumSpectra": sum_spectra, "OutputWorkspace": output_name} full_range = ms.LoadVesuvio(**kwargs) tof_data = ms.CropWorkspace(InputWorkspace=full_range, XMin=instrument.tof_range[0], XMax=instrument.tof_range[1], OutputWorkspace=output_name) if rebin_params is not None: tof_data = ms.Rebin(InputWorkspace=tof_data, OutputWorkspace=output_name, Params=rebin_params) return tof_data