Skip to content
Snippets Groups Projects
Commit eae3c237 authored by David Fairbrother's avatar David Fairbrother
Browse files

Re #17949 Make solid angle corrections optional in POLARIS

parent cf1bf58c
No related branches found
No related tags found
No related merge requests found
...@@ -231,7 +231,7 @@ class AbstractInst(object): ...@@ -231,7 +231,7 @@ class AbstractInst(object):
def _process_focus_output(self, processed_spectra, run_details, attenuate=False): def _process_focus_output(self, processed_spectra, run_details, attenuate=False):
return _empty_hook_return_none() return _empty_hook_return_none()
def _apply_solid_angle_efficiency_corr(self, ws_to_correct, vanadium_number=None, run_details=None): def apply_solid_angle_efficiency_corr(self, ws_to_correct, vanadium_number=None, run_details=None):
return ws_to_correct return ws_to_correct
def _apply_van_calibration_tof_rebinning(self, vanadium_ws, tof_rebin_pass, return_units): def _apply_van_calibration_tof_rebinning(self, vanadium_ws, tof_rebin_pass, return_units):
......
...@@ -21,7 +21,8 @@ class Polaris(AbstractInst): ...@@ -21,7 +21,8 @@ class Polaris(AbstractInst):
_number_of_banks = 5 _number_of_banks = 5
def __init__(self, user_name, chopper_on, calibration_dir=None, output_dir=None, **kwargs): def __init__(self, user_name, chopper_on, apply_solid_angle=True,
calibration_dir=None, output_dir=None, **kwargs):
super(Polaris, self).__init__(user_name=user_name, calibration_dir=calibration_dir, super(Polaris, self).__init__(user_name=user_name, calibration_dir=calibration_dir,
output_dir=output_dir, kwargs=kwargs) output_dir=output_dir, kwargs=kwargs)
...@@ -33,10 +34,9 @@ class Polaris(AbstractInst): ...@@ -33,10 +34,9 @@ class Polaris(AbstractInst):
self._run_details_cached_obj = None self._run_details_cached_obj = None
# Properties set in later calls: # Properties set in later calls:
self._apply_solid_angle = None
def focus(self, run_number, apply_solid_angle=True, do_attenuation=True, do_van_normalisation=True):
self._apply_solid_angle = apply_solid_angle self._apply_solid_angle = apply_solid_angle
def focus(self, run_number, do_attenuation=True, do_van_normalisation=True):
return self._focus(run_number=run_number, do_attenuation=do_attenuation, return self._focus(run_number=run_number, do_attenuation=do_attenuation,
do_van_normalisation=do_van_normalisation) do_van_normalisation=do_van_normalisation)
...@@ -90,9 +90,8 @@ class Polaris(AbstractInst): ...@@ -90,9 +90,8 @@ class Polaris(AbstractInst):
@staticmethod @staticmethod
def _generate_inst_file_name(run_number): def _generate_inst_file_name(run_number):
if isinstance(run_number, list): if isinstance(run_number, list):
for val in run_number: updated_list = ["POL" + str(val) for val in run_number]
val = "POL" + str(val) return updated_list
return run_number
else: else:
return "POL" + str(run_number) return "POL" + str(run_number)
...@@ -125,7 +124,10 @@ class Polaris(AbstractInst): ...@@ -125,7 +124,10 @@ class Polaris(AbstractInst):
return corrections_ws return corrections_ws
def _apply_solid_angle_efficiency_corr(self, ws_to_correct, vanadium_number=None, run_details=None): def apply_solid_angle_efficiency_corr(self, ws_to_correct, vanadium_number=None, run_details=None):
if not self._apply_solid_angle:
return ws_to_correct
assert(vanadium_number or run_details) assert(vanadium_number or run_details)
if not run_details or not os.path.isfile(run_details.solid_angle_corr): if not run_details or not os.path.isfile(run_details.solid_angle_corr):
......
...@@ -23,8 +23,8 @@ def create_van(instrument, van, empty, output_van_file_name, num_of_splines, abs ...@@ -23,8 +23,8 @@ def create_van(instrument, van, empty, output_van_file_name, num_of_splines, abs
corrected_van_ws = mantid.AlignDetectors(InputWorkspace=corrected_van_ws, corrected_van_ws = mantid.AlignDetectors(InputWorkspace=corrected_van_ws,
CalibrationFile=run_details.calibration) CalibrationFile=run_details.calibration)
corrected_van_ws = instrument._apply_solid_angle_efficiency_corr(ws_to_correct=corrected_van_ws, corrected_van_ws = instrument.apply_solid_angle_efficiency_corr(ws_to_correct=corrected_van_ws,
vanadium_number=van) vanadium_number=van)
if absorb: if absorb:
corrected_van_ws = _apply_absorb_corrections(instrument=instrument, corrected_van_ws = _apply_absorb_corrections(instrument=instrument,
run_details=run_details, run_details=run_details,
......
...@@ -31,8 +31,8 @@ def _run_focus(instrument, run_number, perform_attenuation, perform_vanadium_nor ...@@ -31,8 +31,8 @@ def _run_focus(instrument, run_number, perform_attenuation, perform_vanadium_nor
input_workspace = mantid.AlignDetectors(InputWorkspace=input_workspace, input_workspace = mantid.AlignDetectors(InputWorkspace=input_workspace,
CalibrationFile=run_details.calibration) CalibrationFile=run_details.calibration)
input_workspace = instrument._apply_solid_angle_efficiency_corr(ws_to_correct=input_workspace, input_workspace = instrument.apply_solid_angle_efficiency_corr(ws_to_correct=input_workspace,
run_details=run_details) run_details=run_details)
focused_ws = mantid.DiffractionFocussing(InputWorkspace=input_workspace, focused_ws = mantid.DiffractionFocussing(InputWorkspace=input_workspace,
GroupingFileName=run_details.grouping) GroupingFileName=run_details.grouping)
......
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