From 6d59ef63e754c9f5d77c4016feec73f64ec5ca64 Mon Sep 17 00:00:00 2001
From: Conor Finn <conor.finn@stfc.ac.uk>
Date: Fri, 11 Oct 2019 10:26:53 +0100
Subject: [PATCH] RE #27004 Make calibration create parameter table workspace

---
 .../tabs/calibration/model.py                 | 27 ++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/model.py b/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/model.py
index 8e298f501a2..d6d0c8cbad2 100644
--- a/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/model.py
+++ b/scripts/Engineering/gui/engineering_diffraction/tabs/calibration/model.py
@@ -12,7 +12,7 @@ from os import path, makedirs
 from mantid.api import AnalysisDataService as Ads
 from mantid.kernel import logger
 from mantid.simpleapi import Load, EnggVanadiumCorrections, EnggCalibrate, DeleteWorkspace, CloneWorkspace, \
-    CreateWorkspace, AppendSpectra
+    CreateWorkspace, AppendSpectra, CreateEmptyTableWorkspace
 from mantidqt.plotting.functions import plot
 from Engineering.EnggUtils import write_ENGINX_GSAS_iparam_file
 
@@ -20,6 +20,7 @@ from Engineering.EnggUtils import write_ENGINX_GSAS_iparam_file
 VANADIUM_INPUT_WORKSPACE_NAME = "engggui_vanadium_ws"
 CURVES_WORKSPACE_NAME = "engggui_vanadium_curves"
 INTEGRATED_WORKSPACE_NAME = "engggui_vanadium_integration"
+CALIB_PARAMS_WORKSPACE_NAME = "engggui_calibration_banks_parameters"
 
 OUT_FILES_ROOT_DIR = path.join(path.expanduser("~"), "Engineering_Mantid")
 CALIBRATION_DIR = path.join(OUT_FILES_ROOT_DIR, "Calibration", "")
@@ -57,6 +58,11 @@ class CalibrationModel(object):
         difc = [output[0].DIFC, output[1].DIFC]
         tzero = [output[0].TZERO, output[1].TZERO]
 
+        params_table = []
+        for i in range(2):
+            params_table.append([i, difc[i], 0.0, tzero[i]])
+        self.update_calibration_params_table(params_table)
+
         self.create_output_files(CALIBRATION_DIR, difc, tzero, ceria_path, vanadium_path,
                                  instrument)
         if rb_num:
@@ -64,6 +70,25 @@ class CalibrationModel(object):
             self.create_output_files(user_calib_dir, difc, tzero, ceria_path, vanadium_path,
                                      instrument)
 
+    @staticmethod
+    def update_calibration_params_table(params_table):
+        if len(params_table) == 0:
+            return
+
+        # Create blank or clear existing params table.
+        if Ads.doesExist(CALIB_PARAMS_WORKSPACE_NAME):
+            workspace = Ads.retrieve(CALIB_PARAMS_WORKSPACE_NAME)
+            workspace.setRowCount(0)
+        else:
+            workspace = CreateEmptyTableWorkspace(OutputWorkspace=CALIB_PARAMS_WORKSPACE_NAME)
+            workspace.addColumn("int", "bankid")
+            workspace.addColumn("double", "difc")
+            workspace.addColumn("double", "difa")
+            workspace.addColumn("double", "tzero")
+
+        for row in params_table:
+            workspace.addRow(row)
+
     @staticmethod
     def _plot_vanadium_curves():
         van_curve_twin_ws = "__engggui_vanadium_curves_twin_ws"
-- 
GitLab