From e09ab9becffdd0225176bc8d01bb0bb29207e409 Mon Sep 17 00:00:00 2001 From: David Fairbrother <DavidFair@users.noreply.github.com> Date: Fri, 20 Jan 2017 11:40:13 +0000 Subject: [PATCH] Re #18108 Remove Solid Angle --- .../Diffraction/isis_powder/abstract_inst.py | 9 ---- scripts/Diffraction/isis_powder/polaris.py | 11 ----- .../polaris_advanced_config.py | 4 -- .../polaris_routines/polaris_algs.py | 48 +------------------ .../polaris_routines/polaris_param_mapping.py | 3 +- .../isis_powder/routines/calibrate.py | 3 -- .../Diffraction/isis_powder/routines/focus.py | 3 -- 7 files changed, 2 insertions(+), 79 deletions(-) diff --git a/scripts/Diffraction/isis_powder/abstract_inst.py b/scripts/Diffraction/isis_powder/abstract_inst.py index c6a2da4f4e9..380fe71341b 100644 --- a/scripts/Diffraction/isis_powder/abstract_inst.py +++ b/scripts/Diffraction/isis_powder/abstract_inst.py @@ -123,15 +123,6 @@ class AbstractInst(object): """ return input_workspace - def apply_solid_angle_efficiency_corr(self, ws_to_correct, run_details): - """ - Applies solid angle corrections calculating them if necessary for the workspace - :param ws_to_correct: The workspace to apply the solid angle corrections to - :param run_details: The run details for the associated run to allow for loading and saving - :return: The corrected workspace - """ - return ws_to_correct - @staticmethod def can_auto_gen_vanadium_cal(): """ diff --git a/scripts/Diffraction/isis_powder/polaris.py b/scripts/Diffraction/isis_powder/polaris.py index 575b9026988..b036cb080cc 100644 --- a/scripts/Diffraction/isis_powder/polaris.py +++ b/scripts/Diffraction/isis_powder/polaris.py @@ -75,17 +75,6 @@ class Polaris(AbstractInst): normalised_ws = mantid.NormaliseByCurrent(InputWorkspace=ws_to_correct, OutputWorkspace=ws_to_correct) return normalised_ws - def apply_solid_angle_efficiency_corr(self, ws_to_correct, run_details): - if not self._inst_settings.solid_angle_on: - return ws_to_correct - - corrections = polaris_algs.generate_solid_angle_corrections(run_details=run_details, instrument=self) - corrected_ws = mantid.Divide(LHSWorkspace=ws_to_correct, RHSWorkspace=corrections) - common.remove_intermediate_workspace(corrections) - common.remove_intermediate_workspace(ws_to_correct) - ws_to_correct = corrected_ws - return ws_to_correct - def spline_vanadium_ws(self, focused_vanadium_spectra, instrument_version=''): masking_file_name = self._inst_settings.masking_file_name spline_coeff = self._inst_settings.spline_coeff diff --git a/scripts/Diffraction/isis_powder/polaris_routines/polaris_advanced_config.py b/scripts/Diffraction/isis_powder/polaris_routines/polaris_advanced_config.py index a61b999c064..aa28de1003f 100644 --- a/scripts/Diffraction/isis_powder/polaris_routines/polaris_advanced_config.py +++ b/scripts/Diffraction/isis_powder/polaris_routines/polaris_advanced_config.py @@ -3,7 +3,6 @@ file_names = { } script_params = { - "apply_solid_angle": False, "raw_data_cropping_values": (750, 20000), "spline_coefficient": 100, "vanadium_cropping_values": (800, 19995) @@ -46,9 +45,6 @@ variable_help = { }, "script_params": { - "apply_solid_angle": "Specifies if the script should perform solid angle corrections. This is usually " - "defaulted to off and should be overridden in the basic configuration when necessary to " - "avoid them being performed accidentally.", "raw_data_cropping_values": "This specifies the valid range in TOF of the raw data. This is applied before any " "processing takes place to remove negative counts at very low TOF values", "spline_coefficient": "The coefficient to use when calculating the vanadium splines during the calibration " diff --git a/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py b/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py index 418e9f3083c..e6047fec305 100644 --- a/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py +++ b/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py @@ -28,15 +28,6 @@ def calculate_absorb_corrections(ws_to_correct): return ws_to_correct -def generate_solid_angle_corrections(run_details, instrument): - vanadium_ws = common.load_current_normalised_ws_list(run_number_string=run_details.vanadium_run_numbers, - instrument=instrument, input_batching=InputBatchingEnum.Summed) - corrections = _calculate_solid_angle_efficiency_corrections(vanadium_ws[0]) - mantid.SaveNexusProcessed(InputWorkspace=corrections, Filename=run_details.solid_angle_corr) - common.remove_intermediate_workspace(vanadium_ws) - return corrections - - def get_run_details(run_number, inst_settings): yaml_dict = yaml_parser.get_run_dictionary(run_number=run_number, file_path=inst_settings.cal_mapping_file) @@ -49,16 +40,12 @@ def get_run_details(run_number, inst_settings): empty_runs = chopper_config["empty_run_numbers"] vanadium_runs = chopper_config["vanadium_run_numbers"] - solid_angle_file_name = _generate_solid_angle_file_name(chopper_on=inst_settings.chopper_on, - vanadium_run_string=vanadium_runs) splined_vanadium_name = _generate_splined_van_name(chopper_on=inst_settings.chopper_on, - sac_applied=inst_settings.solid_angle_on, vanadium_run_string=vanadium_runs) in_calib_dir = os.path.join(inst_settings.calibration_dir, label) calibration_full_path = os.path.join(in_calib_dir, yaml_dict["offset_file_name"]) grouping_full_path = os.path.join(in_calib_dir, yaml_dict["offset_file_name"]) - solid_angle_file_path = os.path.join(in_calib_dir, solid_angle_file_name) splined_vanadium = os.path.join(in_calib_dir, splined_vanadium_name) run_details = RunDetails(run_number=run_number) @@ -69,7 +56,6 @@ def get_run_details(run_number, inst_settings): run_details.calibration_file_path = calibration_full_path run_details.grouping_file_path = grouping_full_path run_details.splined_vanadium_file_path = splined_vanadium - run_details.solid_angle_corr = solid_angle_file_path return run_details @@ -126,45 +112,13 @@ def _apply_bragg_peaks_masking(workspaces_to_mask, mask_list): return output_workspaces -def _calculate_solid_angle_efficiency_corrections(vanadium_ws): - solid_angle_ws = mantid.SolidAngle(InputWorkspace=vanadium_ws) - solid_angle_multiplicand = mantid.CreateSingleValuedWorkspace(DataValue=str(100)) - solid_angle_ws = mantid.Multiply(LHSWorkspace=solid_angle_ws, RHSWorkspace=solid_angle_multiplicand) - common.remove_intermediate_workspace(solid_angle_multiplicand) - - efficiency_ws = mantid.Divide(LHSWorkspace=vanadium_ws, RHSWorkspace=solid_angle_ws) - efficiency_ws = mantid.ConvertUnits(InputWorkspace=efficiency_ws, Target="Wavelength") - efficiency_ws = mantid.Integration(InputWorkspace=efficiency_ws) - - corrections_ws = mantid.Multiply(LHSWorkspace=solid_angle_ws, RHSWorkspace=efficiency_ws) - corrections_divisor_ws = mantid.CreateSingleValuedWorkspace(DataValue=str(100000)) - corrections_ws = mantid.Divide(LHSWorkspace=corrections_ws, RHSWorkspace=corrections_divisor_ws) - - common.remove_intermediate_workspace(corrections_divisor_ws) - common.remove_intermediate_workspace(solid_angle_ws) - common.remove_intermediate_workspace(efficiency_ws) - - return corrections_ws - - -def _generate_solid_angle_file_name(chopper_on, vanadium_run_string): - if chopper_on: - return "SAC_" + vanadium_run_string + "_chopperOn" - else: - return "SAC_" + vanadium_run_string + "_chopperOff" - - -def _generate_splined_van_name(chopper_on, sac_applied, vanadium_run_string): +def _generate_splined_van_name(chopper_on, vanadium_run_string): output_string = "SVan_" + str(vanadium_run_string) + "_chopper" if chopper_on: output_string += "On" else: output_string += "Off" - if sac_applied: - output_string += "_SAC" - else: - output_string += "_noSAC" return output_string diff --git a/scripts/Diffraction/isis_powder/polaris_routines/polaris_param_mapping.py b/scripts/Diffraction/isis_powder/polaris_routines/polaris_param_mapping.py index 7f14c85b42b..cf5ece39fca 100644 --- a/scripts/Diffraction/isis_powder/polaris_routines/polaris_param_mapping.py +++ b/scripts/Diffraction/isis_powder/polaris_routines/polaris_param_mapping.py @@ -1,8 +1,7 @@ from __future__ import (absolute_import, division, print_function) # Maps friendly user name -> script name -attr_mapping = [("apply_solid_angle", "solid_angle_on"), - ("calibration_directory", "calibration_dir"), +attr_mapping = [("calibration_directory", "calibration_dir"), ("calibration_mapping_file", "cal_mapping_file"), ("chopper_on", "chopper_on"), ("config_file", "config_file"), diff --git a/scripts/Diffraction/isis_powder/routines/calibrate.py b/scripts/Diffraction/isis_powder/routines/calibrate.py index 897060c6440..cb74664b533 100644 --- a/scripts/Diffraction/isis_powder/routines/calibrate.py +++ b/scripts/Diffraction/isis_powder/routines/calibrate.py @@ -21,9 +21,6 @@ def create_van(instrument, van, empty, absorb, gen_absorb): corrected_van_ws = mantid.AlignDetectors(InputWorkspace=corrected_van_ws, CalibrationFile=run_details.calibration_file_path) - corrected_van_ws = instrument.apply_solid_angle_efficiency_corr(ws_to_correct=corrected_van_ws, - run_details=run_details) - if absorb: corrected_van_ws = _apply_absorb_corrections(instrument=instrument, run_details=run_details, corrected_van_ws=corrected_van_ws, gen_absorb=gen_absorb) diff --git a/scripts/Diffraction/isis_powder/routines/focus.py b/scripts/Diffraction/isis_powder/routines/focus.py index 33fa533f5ea..f54bbb1592f 100644 --- a/scripts/Diffraction/isis_powder/routines/focus.py +++ b/scripts/Diffraction/isis_powder/routines/focus.py @@ -30,9 +30,6 @@ def _focus_one_ws(ws, run_number, instrument, perform_vanadium_norm): input_workspace = mantid.AlignDetectors(InputWorkspace=input_workspace, CalibrationFile=run_details.calibration_file_path) - input_workspace = instrument.apply_solid_angle_efficiency_corr(ws_to_correct=input_workspace, - run_details=run_details) - focused_ws = mantid.DiffractionFocussing(InputWorkspace=input_workspace, GroupingFileName=run_details.grouping_file_path) -- GitLab