From 968f7f4e98c2ba67fd60a8b877d0ab401f9dcaee Mon Sep 17 00:00:00 2001 From: David Fairbrother <DavidFair@users.noreply.github.com> Date: Mon, 13 Feb 2017 15:15:33 +0000 Subject: [PATCH] Re #18666 Add multiple scattering and update output filenames --- scripts/Diffraction/isis_powder/polaris.py | 16 +++++++++++++--- .../isis_powder/polaris_routines/polaris_algs.py | 5 +++-- .../polaris_routines/polaris_output.py | 14 ++++++++++---- 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/scripts/Diffraction/isis_powder/polaris.py b/scripts/Diffraction/isis_powder/polaris.py index 523ae5863d8..a13fa7a835e 100644 --- a/scripts/Diffraction/isis_powder/polaris.py +++ b/scripts/Diffraction/isis_powder/polaris.py @@ -58,11 +58,20 @@ class Polaris(AbstractInst): @staticmethod def _generate_input_file_name(run_number): + polaris_old_name = "POL" + polaris_new_name = "POLARIS" + first_run_new_name = 96912 + if isinstance(run_number, list): - updated_list = ["POL" + str(val) for val in run_number] + # Lists use recursion to deal with individual entries + updated_list = [] + for run in run_number: + updated_list.append(Polaris._generate_input_file_name(run_number=run)) return updated_list else: - return "POL" + str(run_number) + # Select between old and new prefix + prefix = polaris_new_name if int(run_number) >= first_run_new_name else polaris_old_name + return prefix + str(run_number) def _generate_output_file_name(self, run_number_string): return self._generate_input_file_name(run_number=run_number_string) @@ -85,7 +94,8 @@ class Polaris(AbstractInst): return output def _apply_absorb_corrections(self, run_details, van_ws, gen_absorb=False): - return polaris_algs.calculate_absorb_corrections(ws_to_correct=van_ws) + return polaris_algs.calculate_absorb_corrections(ws_to_correct=van_ws, + multiple_scattering=self._inst_settings.multiple_scattering) def _output_focused_ws(self, processed_spectra, run_details, output_mode=None): d_spacing_group, tof_group = polaris_algs.split_into_tof_d_spacing_groups(run_details=run_details, diff --git a/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py b/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py index b753da8cd03..08e8259fe11 100644 --- a/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py +++ b/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py @@ -7,7 +7,7 @@ from isis_powder.routines.RunDetails import RunDetails from isis_powder.polaris_routines import polaris_advanced_config -def calculate_absorb_corrections(ws_to_correct): +def calculate_absorb_corrections(ws_to_correct, multiple_scattering): mantid.MaskDetectors(ws_to_correct, SpectraList=list(range(0, 55))) absorb_dict = polaris_advanced_config.absorption_correction_params @@ -18,7 +18,8 @@ def calculate_absorb_corrections(ws_to_correct): mantid.SetSample(InputWorkspace=ws_to_correct, Geometry=geometry_json, Material=material_json) ws_to_correct = mantid.ConvertUnits(InputWorkspace=ws_to_correct, OutputWorkspace=ws_to_correct, Target="TOF") - ws_to_correct = mantid.MayersSampleCorrection(InputWorkspace=ws_to_correct, OutputWorkspace=ws_to_correct) + ws_to_correct = mantid.MayersSampleCorrection(InputWorkspace=ws_to_correct, OutputWorkspace=ws_to_correct, + MultipleScattering=multiple_scattering) ws_to_correct = mantid.ConvertUnits(InputWorkspace=ws_to_correct, OutputWorkspace=ws_to_correct, Target="dSpacing") return ws_to_correct diff --git a/scripts/Diffraction/isis_powder/polaris_routines/polaris_output.py b/scripts/Diffraction/isis_powder/polaris_routines/polaris_output.py index 955286eece0..80dcf7d6115 100644 --- a/scripts/Diffraction/isis_powder/polaris_routines/polaris_output.py +++ b/scripts/Diffraction/isis_powder/polaris_routines/polaris_output.py @@ -8,16 +8,22 @@ def save_polaris_focused_data(d_spacing_group, tof_group, output_paths, run_numb mantid.SaveGSS(InputWorkspace=tof_group, Filename=output_paths["gss_filename"], SplitFiles=False, Append=False) mantid.SaveNexusProcessed(InputWorkspace=tof_group, Filename=output_paths["nxs_filename"], Append=False) - _save_xye(ws_group=d_spacing_group, ws_units="d_spacing", run_number=run_number, - output_folder=output_paths["output_folder"]) + dat_folder_name = "dat_files" + dat_file_destination = os.path.join(output_paths["output_folder"], dat_folder_name) + if not os.path.exists(dat_file_destination): + os.makedirs(dat_file_destination) + + _save_xye(ws_group=d_spacing_group, ws_units="d", run_number=run_number, + output_folder=dat_file_destination) _save_xye(ws_group=tof_group, ws_units="TOF", run_number=run_number, - output_folder=output_paths["output_folder"]) + output_folder=dat_file_destination) def _save_xye(ws_group, ws_units, run_number, output_folder): bank_index = 1 + prefix_filename = "POL" + str(run_number) for ws in ws_group: - outfile_name = str(run_number) + "-b_" + str(bank_index) + "-" + ws_units + ".dat" + outfile_name = prefix_filename + "-b_" + str(bank_index) + "-" + ws_units + ".dat" bank_index += 1 full_file_path = os.path.join(output_folder, outfile_name) -- GitLab