Skip to content
Snippets Groups Projects
Commit 3fca6065 authored by Joseph Ramsay's avatar Joseph Ramsay
Browse files

Re #20603 Convert unsplined vanadium to TOF and system test

parent f875ce8b
No related merge requests found
...@@ -25,6 +25,7 @@ output_folder_name = "output" ...@@ -25,6 +25,7 @@ output_folder_name = "output"
calibration_folder_name = os.path.join("calibration", inst_name.lower()) calibration_folder_name = os.path.join("calibration", inst_name.lower())
calibration_map_rel_path = os.path.join("yaml_files", "polaris_system_test_mapping.yaml") calibration_map_rel_path = os.path.join("yaml_files", "polaris_system_test_mapping.yaml")
spline_rel_path = os.path.join("17_1", "VanSplined_98532_cycle_16_3_silicon_all_spectra.cal.nxs") spline_rel_path = os.path.join("17_1", "VanSplined_98532_cycle_16_3_silicon_all_spectra.cal.nxs")
unsplined_van_rel_path = os.path.join("17_1", "Van_98532_cycle_16_3_silicon_all_spectra.cal.nxs")
# Generate paths for the tests # Generate paths for the tests
# This implies DIRS[0] is the system test data folder # This implies DIRS[0] is the system test data folder
...@@ -36,6 +37,7 @@ output_dir = os.path.join(working_dir, output_folder_name) ...@@ -36,6 +37,7 @@ output_dir = os.path.join(working_dir, output_folder_name)
calibration_map_path = os.path.join(input_dir, calibration_map_rel_path) calibration_map_path = os.path.join(input_dir, calibration_map_rel_path)
calibration_dir = os.path.join(input_dir, calibration_folder_name) calibration_dir = os.path.join(input_dir, calibration_folder_name)
spline_path = os.path.join(calibration_dir, spline_rel_path) spline_path = os.path.join(calibration_dir, spline_rel_path)
unsplined_van_path = os.path.join(calibration_dir, unsplined_van_rel_path)
class CreateVanadiumTest(stresstesting.MantidStressTest): class CreateVanadiumTest(stresstesting.MantidStressTest):
...@@ -110,8 +112,9 @@ def run_vanadium_calibration(): ...@@ -110,8 +112,9 @@ def run_vanadium_calibration():
if not os.path.exists(spline_path): if not os.path.exists(spline_path):
raise RuntimeError("Could not find output spline at the following path: " + spline_path) raise RuntimeError("Could not find output spline at the following path: " + spline_path)
splined_ws = mantid.Load(Filename=spline_path) splined_ws = mantid.Load(Filename=spline_path)
unsplined_ws = mantid.Load(Filename=unsplined_van_path)
return splined_ws return splined_ws, unsplined_ws
def run_focus(): def run_focus():
...@@ -132,9 +135,12 @@ def run_focus(): ...@@ -132,9 +135,12 @@ def run_focus():
def calibration_validator(results): def calibration_validator(results):
splined_ws, unsplined_ws = results
# Get the name of the grouped workspace list # Get the name of the grouped workspace list
reference_file_name = "ISIS_Powder-POLARIS00098533_splined.nxs" splined_reference_file_name = "ISIS_Powder-POLARIS00098533_splined.nxs"
return _compare_ws(reference_file_name=reference_file_name, results=results) unsplined_reference_file_name = "ISIS_Powder-POLARIS00098533_unsplined.nxs"
return _compare_ws(reference_file_name=splined_reference_file_name, results=splined_ws) and \
_compare_ws(reference_file_name=unsplined_reference_file_name, results=unsplined_ws)
def focus_validation(results): def focus_validation(results):
...@@ -145,7 +151,7 @@ def focus_validation(results): ...@@ -145,7 +151,7 @@ def focus_validation(results):
def _compare_ws(reference_file_name, results): def _compare_ws(reference_file_name, results):
ref_ws = mantid.Load(Filename=reference_file_name) ref_ws = mantid.Load(Filename=reference_file_name)
is_valid = True if len(results) > 0 else False is_valid = len(results) > 0
for ws, ref in zip(results, ref_ws): for ws, ref in zip(results, ref_ws):
if not (mantid.CompareWorkspaces(Workspace1=ws, Workspace2=ref)): if not (mantid.CompareWorkspaces(Workspace1=ws, Workspace2=ref)):
......
a8fb08bb0f2b7fee05ead4691d012895
\ No newline at end of file
...@@ -35,7 +35,7 @@ class Polaris(AbstractInst): ...@@ -35,7 +35,7 @@ class Polaris(AbstractInst):
self._inst_settings.update_attributes(kwargs=kwargs) self._inst_settings.update_attributes(kwargs=kwargs)
vanadium_d = self._create_vanadium(run_number_string=self._inst_settings.run_in_range, vanadium_d = self._create_vanadium(run_number_string=self._inst_settings.run_in_range,
do_absorb_corrections=self._inst_settings.do_absorb_corrections) do_absorb_corrections=self._inst_settings.do_absorb_corrections)
run_details = self._get_run_details(run_number_string=self._inst_settings.run_in_range) run_details = self._get_run_details(run_number_string=self._inst_settings.run_in_range)
polaris_algs.save_unsplined_vanadium(vanadium_ws=vanadium_d, polaris_algs.save_unsplined_vanadium(vanadium_ws=vanadium_d,
output_path=run_details.unsplined_vanadium_file_path) output_path=run_details.unsplined_vanadium_file_path)
......
...@@ -2,7 +2,8 @@ from __future__ import (absolute_import, division, print_function) ...@@ -2,7 +2,8 @@ from __future__ import (absolute_import, division, print_function)
import mantid.simpleapi as mantid import mantid.simpleapi as mantid
from isis_powder.routines import absorb_corrections, common, common_enums from isis_powder.routines import absorb_corrections, common
from isis_powder.routines.common_enums import WORKSPACE_UNITS
from isis_powder.routines.run_details import create_run_details_object, \ from isis_powder.routines.run_details import create_run_details_object, \
CustomFuncForRunDetails, RunDetailsWrappedCommonFuncs CustomFuncForRunDetails, RunDetailsWrappedCommonFuncs
from isis_powder.polaris_routines import polaris_advanced_config from isis_powder.polaris_routines import polaris_advanced_config
...@@ -58,8 +59,21 @@ def process_vanadium_for_focusing(bank_spectra, mask_path, spline_number): ...@@ -58,8 +59,21 @@ def process_vanadium_for_focusing(bank_spectra, mask_path, spline_number):
def save_unsplined_vanadium(vanadium_ws, output_path): def save_unsplined_vanadium(vanadium_ws, output_path):
# TODO: convert vanadium_ws to TOF converted_workspaces = []
mantid.SaveNexus(InputWorkspace=vanadium_ws, Filename=output_path, Append=False)
for ws_index in range(vanadium_ws.getNumberOfEntries()):
ws = vanadium_ws.getItem(ws_index)
previous_units = ws.getAxis(0).getUnit().unitID()
if previous_units != WORKSPACE_UNITS.tof:
ws = mantid.ConvertUnits(InputWorkspace=ws, Target=WORKSPACE_UNITS.tof)
ws = mantid.RenameWorkspace(InputWorkspace=ws, OutputWorkspace="van_bank_{}".format(ws_index + 1))
converted_workspaces.append(ws)
converted_group = mantid.GroupWorkspaces(",".join(ws.getName() for ws in converted_workspaces))
mantid.SaveNexus(InputWorkspace=converted_group, Filename=output_path, Append=False)
mantid.DeleteWorkspace(converted_group)
def _apply_bragg_peaks_masking(workspaces_to_mask, mask_list): def _apply_bragg_peaks_masking(workspaces_to_mask, mask_list):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment