From 715a96b06fac934f49e270b39045a00bd192d58a Mon Sep 17 00:00:00 2001
From: Joseph Ramsay <joseph.ramsay@stfc.ac.uk>
Date: Fri, 18 Aug 2017 11:12:34 +0100
Subject: [PATCH] Re #20152 Changed mode from decoupling to tof windows

---
 scripts/Diffraction/isis_powder/gem.py        |  2 +-
 scripts/Diffraction/isis_powder/hrpd.py       |  9 ++-
 .../hrpd_routines/hrpd_advanced_config.py     | 55 ++++++++++++++-----
 .../isis_powder/hrpd_routines/hrpd_algs.py    |  2 +-
 4 files changed, 48 insertions(+), 20 deletions(-)

diff --git a/scripts/Diffraction/isis_powder/gem.py b/scripts/Diffraction/isis_powder/gem.py
index 7ea44ed983b..005320185be 100644
--- a/scripts/Diffraction/isis_powder/gem.py
+++ b/scripts/Diffraction/isis_powder/gem.py
@@ -63,7 +63,7 @@ class Gem(AbstractInst):
         else:
             return absorb_corrections.run_cylinder_absorb_corrections(
                 ws_to_correct=ws_to_correct, multiple_scattering=self._inst_settings.multiple_scattering,
-                sample_details_obj=self._sample_details, is_vanadium=self._is_vanadium)
+                sample_details_obj=self._sample_details)
 
     def _crop_banks_to_user_tof(self, focused_banks):
         return common.crop_banks_using_crop_list(focused_banks, self._inst_settings.focused_cropping_values)
diff --git a/scripts/Diffraction/isis_powder/hrpd.py b/scripts/Diffraction/isis_powder/hrpd.py
index 0a55a3f43fb..47338d7be30 100644
--- a/scripts/Diffraction/isis_powder/hrpd.py
+++ b/scripts/Diffraction/isis_powder/hrpd.py
@@ -27,21 +27,20 @@ class HRPD(AbstractInst):
         self._sample_details = None
 
     def focus(self, **kwargs):
-        self._switch_decoupled_mode_inst_settings(kwargs.get("decoupled_mode"))
+        self._switch_tof_window_inst_settings(kwargs.get("window"))
         self._inst_settings.update_attributes(kwargs=kwargs)
         return self._focus(
             run_number_string=self._inst_settings.run_number, do_van_normalisation=self._inst_settings.do_van_norm,
             do_absorb_corrections=self._inst_settings.do_absorb_corrections)
 
     def create_vanadium(self, **kwargs):
-        self._switch_decoupled_mode_inst_settings(kwargs.get("decoupled_mode"))
+        self._switch_tof_window_inst_settings(kwargs.get("window"))
         self._inst_settings.update_attributes(kwargs=kwargs)
 
         return self._create_vanadium(run_number_string=self._inst_settings.run_in_range,
                                      do_absorb_corrections=self._inst_settings.do_absorb_corrections)
 
     def set_sample_details(self, **kwargs):
-        self._switch_decoupled_mode_inst_settings(kwargs.get("decoupled_mode"))
         kwarg_name = "sample"
         sample_details_obj = common.dictionary_key_helper(
             dictionary=kwargs, key=kwarg_name,
@@ -87,6 +86,6 @@ class HRPD(AbstractInst):
                                                          spline_number=spline_coeff)
         return output
 
-    def _switch_decoupled_mode_inst_settings(self, decoupled_mode):
+    def _switch_tof_window_inst_settings(self, tof_window):
         self._inst_settings.update_attributes(
-            advanced_config=hrpd_advanced_config.get_decoupled_mode_dict(decoupled_mode), suppress_warnings=True)
+            advanced_config=hrpd_advanced_config.get_tof_window_dict(tof_window=tof_window))
diff --git a/scripts/Diffraction/isis_powder/hrpd_routines/hrpd_advanced_config.py b/scripts/Diffraction/isis_powder/hrpd_routines/hrpd_advanced_config.py
index d29153ef716..fb4b4289c4e 100644
--- a/scripts/Diffraction/isis_powder/hrpd_routines/hrpd_advanced_config.py
+++ b/scripts/Diffraction/isis_powder/hrpd_routines/hrpd_advanced_config.py
@@ -1,5 +1,7 @@
 from __future__ import (absolute_import, division, print_function)
 
+from isis_powder.hrpd_routines.hrpd_enums import HRPD_TOF_WINDOWS
+
 absorption_correction_params = {
     "cylinder_sample_height": 2.0,
     "cylinder_sample_radius": 0.3,
@@ -16,8 +18,31 @@ coupled_params = {
     ]
 }
 
-decoupled_params = {
-    # TODO: Implement these
+window_10_110_params = {
+    "vanadium_tof_cropping": (1e4, 1.2e5),
+    "focused_cropping_values" : [
+        (1e4, 1.1e5),    # Bank 1
+        (1e4, 1.2e5),    # Bank 2
+        (1.1e4, 1.15e5)  # Bank 3
+    ]
+}
+
+window_30_130_params = {
+    "vanadium_tof_cropping": (3e4, 1.4e5),
+    "focused_cropping_values": [
+        (3e4, 1.3e5),      # Bank 1
+        (2.84e4, 1.42e5),  # Bank 2
+        (3e4, 1.37e5)
+    ]
+}
+
+window_100_200_params = {
+    "vanadium_tof_cropping": (1e5, 2.15e5),
+    "focused_cropping_values": [
+        (1e5, 2.02e5),    # Bank 1
+        (9.6e4, 2.18e5),  # Bank 2
+        (1e5, 2.11e5)     # Bank 3
+    ]
 }
 
 file_names = {
@@ -27,23 +52,27 @@ file_names = {
 general_params = {
     "spline_coefficient": 70,
     "focused_bin_widths": [
-        -0.0005,
-        -0.0005,
-        -0.001
-    ]
+        -0.0005,  # Bank 1
+        -0.0005,  # Bank 2
+        -0.001    # Bank 3
+    ],
+    "mode": "coupled"
 }
 
 
-def get_all_adv_variables(is_decoupled_mode=False):
+def get_all_adv_variables(tof_window=HRPD_TOF_WINDOWS.window_10_110):
     advanced_config_dict = {}
     advanced_config_dict.update(file_names)
     advanced_config_dict.update(general_params)
-    advanced_config_dict.update(get_decoupled_mode_dict(decoupled_mode=is_decoupled_mode))
+    advanced_config_dict.update(get_tof_window_dict(tof_window=tof_window))
     return advanced_config_dict
 
 
-def get_decoupled_mode_dict(decoupled_mode):
-    if decoupled_mode:
-        return decoupled_params
-    else:
-        return coupled_params
+def get_tof_window_dict(tof_window):
+    if tof_window == HRPD_TOF_WINDOWS.window_10_110:
+        return window_10_110_params
+    if tof_window == HRPD_TOF_WINDOWS.window_30_130:
+        return window_30_130_params
+    if tof_window == HRPD_TOF_WINDOWS.window_100_200:
+        return window_100_200_params
+    raise RuntimeError("Invalid time-of-flight window: " + str(tof_window))
diff --git a/scripts/Diffraction/isis_powder/hrpd_routines/hrpd_algs.py b/scripts/Diffraction/isis_powder/hrpd_routines/hrpd_algs.py
index e0684251855..af0ca423119 100644
--- a/scripts/Diffraction/isis_powder/hrpd_routines/hrpd_algs.py
+++ b/scripts/Diffraction/isis_powder/hrpd_routines/hrpd_algs.py
@@ -72,7 +72,7 @@ def _apply_bragg_peaks_masking(workspaces_to_mask, mask_list):
 def _read_masking_file(masking_file_path):
     all_banks_masking_list = []
     bank_masking_list = []
-    ignore_line_prefixes = (' ', '\n', '\t', '#') # Matches whitespace or # symbol
+    ignore_line_prefixes = (' ', '\n', '\t', '#')  # Matches whitespace or # symbol
     with open(masking_file_path) as mask_file:
         for line in mask_file:
             if line.startswith(ignore_line_prefixes):
-- 
GitLab