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):
def _process_focus_output(self, processed_spectra, run_details, attenuate=False):
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
def _apply_van_calibration_tof_rebinning(self, vanadium_ws, tof_rebin_pass, return_units):
......
......@@ -21,7 +21,8 @@ class Polaris(AbstractInst):
_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,
output_dir=output_dir, kwargs=kwargs)
......@@ -33,10 +34,9 @@ class Polaris(AbstractInst):
self._run_details_cached_obj = None
# 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
def focus(self, run_number, do_attenuation=True, do_van_normalisation=True):
return self._focus(run_number=run_number, do_attenuation=do_attenuation,
do_van_normalisation=do_van_normalisation)
......@@ -90,9 +90,8 @@ class Polaris(AbstractInst):
@staticmethod
def _generate_inst_file_name(run_number):
if isinstance(run_number, list):
for val in run_number:
val = "POL" + str(val)
return run_number
updated_list = ["POL" + str(val) for val in run_number]
return updated_list
else:
return "POL" + str(run_number)
......@@ -125,7 +124,10 @@ class Polaris(AbstractInst):
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)
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
corrected_van_ws = mantid.AlignDetectors(InputWorkspace=corrected_van_ws,
CalibrationFile=run_details.calibration)
corrected_van_ws = instrument._apply_solid_angle_efficiency_corr(ws_to_correct=corrected_van_ws,
vanadium_number=van)
corrected_van_ws = instrument.apply_solid_angle_efficiency_corr(ws_to_correct=corrected_van_ws,
vanadium_number=van)
if absorb:
corrected_van_ws = _apply_absorb_corrections(instrument=instrument,
run_details=run_details,
......
......@@ -31,8 +31,8 @@ def _run_focus(instrument, run_number, perform_attenuation, perform_vanadium_nor
input_workspace = mantid.AlignDetectors(InputWorkspace=input_workspace,
CalibrationFile=run_details.calibration)
input_workspace = instrument._apply_solid_angle_efficiency_corr(ws_to_correct=input_workspace,
run_details=run_details)
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)
......
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