From 7a370c9499060adb69475ef4329ba2a991ae2efc Mon Sep 17 00:00:00 2001
From: Harriet Brown <harriet.brown@stfc.ac.uk>
Date: Wed, 2 Oct 2019 14:15:15 +0100
Subject: [PATCH] undo running vanadium and corrections withiout focussing

---
 scripts/Diffraction/isis_powder/polaris.py    |  5 +-
 .../polaris_routines/polaris_algs.py          | 29 +++++------
 .../isis_powder/routines/calibrate.py         | 35 ++++++-------
 .../Diffraction/isis_powder/routines/focus.py | 52 ++++++++-----------
 4 files changed, 54 insertions(+), 67 deletions(-)

diff --git a/scripts/Diffraction/isis_powder/polaris.py b/scripts/Diffraction/isis_powder/polaris.py
index 2196abb39ba..cb078aaf55a 100644
--- a/scripts/Diffraction/isis_powder/polaris.py
+++ b/scripts/Diffraction/isis_powder/polaris.py
@@ -57,8 +57,9 @@ class Polaris(AbstractInst):
         pdf_output = polaris_algs.generate_ts_pdf(run_number=self._inst_settings.run_number,
                                                   focus_file_path=focus_file_path,
                                                   merge_banks=self._inst_settings.merge_banks,
-                                                  q_lims=self._inst_settings.q_lims,
-                                                  grouping_file_path=run_details.grouping_file_path)
+                                                  # q_lims=self._inst_settings.q_lims,
+                                                  # grouping_file_path=run_details.grouping_file_path
+                                                  )
         return pdf_output
 
     def set_sample_details(self, **kwargs):
diff --git a/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py b/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py
index b1a1fa5047b..fd6e6062a4f 100644
--- a/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py
+++ b/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py
@@ -63,24 +63,25 @@ def get_run_details(run_number_string, inst_settings, is_vanadium_run):
 
 def save_unsplined_vanadium(vanadium_ws, output_path):
     converted_workspaces = []
+    if vanadium_ws.id() != "Workspace2D":
+        for ws_index in range(vanadium_ws.getNumberOfEntries()):
+            ws = vanadium_ws.getItem(ws_index)
+            previous_units = ws.getAxis(0).getUnit().unitID()
 
-    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)
 
-        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)
 
-        ws = mantid.RenameWorkspace(InputWorkspace=ws, OutputWorkspace="van_bank_{}".format(ws_index + 1))
-        converted_workspaces.append(ws)
-
-    converted_group = mantid.GroupWorkspaces(",".join(ws.name() for ws in converted_workspaces))
-    mantid.SaveNexus(InputWorkspace=converted_group, Filename=output_path, Append=False)
-    mantid.DeleteWorkspace(converted_group)
+        converted_group = mantid.GroupWorkspaces(",".join(ws.name() for ws in converted_workspaces))
+        mantid.SaveNexus(InputWorkspace=converted_group, Filename=output_path, Append=False)
+        mantid.DeleteWorkspace(converted_group)
+    else:
+        mantid.SaveNexus(InputWorkspace=vanadium_ws, Filename=output_path, Append=False)
 
 
-def generate_ts_pdf(run_number, focus_file_path, merge_banks=False, instrument=None, q_lims=None,
-                    grouping_file_path=None):
+def generate_ts_pdf(run_number, focus_file_path, merge_banks=False, q_lims=None):
     focused_ws = _obtain_focused_run(run_number, focus_file_path)
     pdf_output = mantid.ConvertUnits(InputWorkspace=focused_ws.name(), Target="MomentumTransfer")
 
@@ -88,8 +89,6 @@ def generate_ts_pdf(run_number, focus_file_path, merge_banks=False, instrument=N
         placzek_self_scattering = mantid.CalculatePlaczekSelfScattering(InputWorkspace=pdf_output)
         pdf_output = mantid.Subtract(LHSWorkspace=pdf_output, RHSWorkspace=placzek_self_scattering)
 
-        pdf_output = mantid.DiffractionFocussing(InputWorkspace=pdf_output,
-                                                 GroupingFileName=grouping_file_path)
         pdf_output = mantid.MatchSpectra(InputWorkspace=pdf_output, ReferenceSpectrum=1)
         if type(q_lims) == str:
             q_min = []
diff --git a/scripts/Diffraction/isis_powder/routines/calibrate.py b/scripts/Diffraction/isis_powder/routines/calibrate.py
index a5a238c9c0a..8e211edf8fa 100644
--- a/scripts/Diffraction/isis_powder/routines/calibrate.py
+++ b/scripts/Diffraction/isis_powder/routines/calibrate.py
@@ -47,33 +47,28 @@ def create_van(instrument, run_details, absorb):
                                        CalibrationFile=run_details.offset_file_path)
     solid_angle = instrument.get_solid_angle_corrections(run_details.run_number, run_details)
     if solid_angle:
-        aligned_ws = mantid.Divide(LHSWorkspace=aligned_ws, RHSWorkspace=solid_angle)
+        aligned_ws = mantid.Divide(LHSWorkspace=aligned_ws,RHSWorkspace=solid_angle)
         mantid.DeleteWorkspace(solid_angle)
+    focused_vanadium = mantid.DiffractionFocussing(InputWorkspace=aligned_ws,
+                                                   GroupingFileName=run_details.grouping_file_path)
 
-    if instrument._inst_settings.mode != 'PDF':
-        focused_vanadium = mantid.DiffractionFocussing(InputWorkspace=aligned_ws,
-                                                       GroupingFileName=run_details.grouping_file_path)
+    focused_spectra = common.extract_ws_spectra(focused_vanadium)
+    focused_spectra = instrument._crop_van_to_expected_tof_range(focused_spectra)
 
-        focused_spectra = common.extract_ws_spectra(focused_vanadium)
-        focused_spectra = instrument._crop_van_to_expected_tof_range(focused_spectra)
+    d_spacing_group, tof_group = instrument._output_focused_ws(processed_spectra=focused_spectra,
+                                                               run_details=run_details)
 
-        d_spacing_group, tof_group = instrument._output_focused_ws(processed_spectra=focused_spectra,
-                                                                   run_details=run_details)
+    _create_vanadium_splines(focused_spectra, instrument, run_details)
 
-        _create_vanadium_splines(focused_spectra, instrument, run_details)
+    common.keep_single_ws_unit(d_spacing_group=d_spacing_group, tof_group=tof_group,
+                               unit_to_keep=instrument._get_unit_to_keep())
 
-        common.keep_single_ws_unit(d_spacing_group=d_spacing_group, tof_group=tof_group,
-                                   unit_to_keep=instrument._get_unit_to_keep())
+    common.remove_intermediate_workspace(corrected_van_ws)
+    common.remove_intermediate_workspace(aligned_ws)
+    common.remove_intermediate_workspace(focused_vanadium)
+    common.remove_intermediate_workspace(focused_spectra)
 
-        common.remove_intermediate_workspace(corrected_van_ws)
-        common.remove_intermediate_workspace(aligned_ws)
-        common.remove_intermediate_workspace(focused_vanadium)
-        common.remove_intermediate_workspace(focused_spectra)
-
-        return d_spacing_group
-    else:
-        common.remove_intermediate_workspace(corrected_van_ws)
-        return aligned_ws
+    return d_spacing_group
 
 
 def _create_vanadium_splines(focused_spectra, instrument, run_details):
diff --git a/scripts/Diffraction/isis_powder/routines/focus.py b/scripts/Diffraction/isis_powder/routines/focus.py
index ab10416d755..8f59f279656 100644
--- a/scripts/Diffraction/isis_powder/routines/focus.py
+++ b/scripts/Diffraction/isis_powder/routines/focus.py
@@ -65,43 +65,35 @@ def _focus_one_ws(input_workspace, run_number, instrument, perform_vanadium_norm
         mantid.DeleteWorkspace(solid_angle)
 
     # Focus the spectra into banks
-    if instrument._inst_settings.mode != 'PDF':
-        focused_ws = mantid.DiffractionFocussing(InputWorkspace=aligned_ws,
-                                                 GroupingFileName=run_details.grouping_file_path)
+    focused_ws = mantid.DiffractionFocussing(InputWorkspace=aligned_ws,
+                                             GroupingFileName=run_details.grouping_file_path)
 
-        calibrated_spectra = _apply_vanadium_corrections(instrument=instrument,
-                                                         input_workspace=focused_ws,
-                                                         perform_vanadium_norm=perform_vanadium_norm,
-                                                         vanadium_splines=vanadium_path)
+    calibrated_spectra = _apply_vanadium_corrections(instrument=instrument,
+                                                     input_workspace=focused_ws,
+                                                     perform_vanadium_norm=perform_vanadium_norm,
+                                                     vanadium_splines=vanadium_path)
 
-        output_spectra = instrument._crop_banks_to_user_tof(calibrated_spectra)
+    output_spectra = instrument._crop_banks_to_user_tof(calibrated_spectra)
 
-        bin_widths = instrument._get_instrument_bin_widths()
-        if bin_widths:
-            # Reduce the bin width if required on this instrument
-            output_spectra = common.rebin_workspace_list(workspace_list=output_spectra,
-                                                         bin_width_list=bin_widths)
+    bin_widths = instrument._get_instrument_bin_widths()
+    if bin_widths:
+        # Reduce the bin width if required on this instrument
+        output_spectra = common.rebin_workspace_list(workspace_list=output_spectra,
+                                                     bin_width_list=bin_widths)
 
-        # Output
-        d_spacing_group, tof_group = instrument._output_focused_ws(output_spectra, run_details=run_details)
+    # Output
+    d_spacing_group, tof_group = instrument._output_focused_ws(output_spectra, run_details=run_details)
 
-        common.keep_single_ws_unit(d_spacing_group=d_spacing_group, tof_group=tof_group,
-                                   unit_to_keep=instrument._get_unit_to_keep())
+    common.keep_single_ws_unit(d_spacing_group=d_spacing_group, tof_group=tof_group,
+                               unit_to_keep=instrument._get_unit_to_keep())
 
-        # Tidy workspaces from Mantid
-        common.remove_intermediate_workspace(input_workspace)
-        common.remove_intermediate_workspace(aligned_ws)
-        common.remove_intermediate_workspace(focused_ws)
-        common.remove_intermediate_workspace(output_spectra)
+    # Tidy workspaces from Mantid
+    common.remove_intermediate_workspace(input_workspace)
+    common.remove_intermediate_workspace(aligned_ws)
+    common.remove_intermediate_workspace(focused_ws)
+    common.remove_intermediate_workspace(output_spectra)
 
-        return d_spacing_group
-    else:
-        calibrated_spectra = _apply_vanadium_corrections(instrument=instrument,
-                                                         input_workspace=aligned_ws,
-                                                         perform_vanadium_norm=perform_vanadium_norm,
-                                                         vanadium_splines=vanadium_path)
-        common.remove_intermediate_workspace(input_workspace)
-        return calibrated_spectra
+    return d_spacing_group
 
 
 def _apply_vanadium_corrections(instrument, input_workspace, perform_vanadium_norm, vanadium_splines):
-- 
GitLab