diff --git a/Framework/API/src/Algorithm.cpp b/Framework/API/src/Algorithm.cpp
index f3faab12974680bde0ef301eba503b26e280ae06..7b678fb3edbf4e739a9d704b329c4b2fbee6671d 100644
--- a/Framework/API/src/Algorithm.cpp
+++ b/Framework/API/src/Algorithm.cpp
@@ -1600,8 +1600,8 @@ IPropertyManager::getValue<API::IAlgorithm_sptr>(
   if (prop) {
     return *prop;
   } else {
-    std::string message =
-        "Attempt to assign property " + name + " to incorrect type";
+    std::string message = "Attempt to assign property " + name +
+                          " to incorrect type. Expected shared_ptr<IAlgorithm>";
     throw std::runtime_error(message);
   }
 }
@@ -1623,7 +1623,8 @@ IPropertyManager::getValue<API::IAlgorithm_const_sptr>(
     return prop->operator()();
   } else {
     std::string message =
-        "Attempt to assign property " + name + " to incorrect type";
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected const shared_ptr<IAlgorithm>";
     throw std::runtime_error(message);
   }
 }
diff --git a/Framework/API/src/ExperimentInfo.cpp b/Framework/API/src/ExperimentInfo.cpp
index 3ddd52bfdf0bbefe09fb0864bbf10fd4f1ba0e93..62704d501404e41a88fc459c8a044e3c204e45ba 100644
--- a/Framework/API/src/ExperimentInfo.cpp
+++ b/Framework/API/src/ExperimentInfo.cpp
@@ -1245,8 +1245,9 @@ IPropertyManager::getValue<Mantid::API::ExperimentInfo_sptr>(
   if (prop) {
     return *prop;
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected ExperimentInfo.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected shared_ptr<ExperimentInfo>.";
     throw std::runtime_error(message);
   }
 }
@@ -1261,8 +1262,9 @@ IPropertyManager::getValue<Mantid::API::ExperimentInfo_const_sptr>(
   if (prop) {
     return prop->operator()();
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected const ExperimentInfo.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected const shared_ptr<ExperimentInfo>.";
     throw std::runtime_error(message);
   }
 }
diff --git a/Framework/API/src/IEventWorkspace.cpp b/Framework/API/src/IEventWorkspace.cpp
index 7eec83f3099d564869d2e334191978b8f67d9050..e802d949a231d2d1952157d9aafd9f2a37e37991 100644
--- a/Framework/API/src/IEventWorkspace.cpp
+++ b/Framework/API/src/IEventWorkspace.cpp
@@ -47,8 +47,9 @@ IPropertyManager::getValue<Mantid::API::IEventWorkspace_sptr>(
   if (prop) {
     return *prop;
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected IEventWorkspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected shared_ptr<IEventWorkspace>.";
     throw std::runtime_error(message);
   }
 }
@@ -63,8 +64,9 @@ IPropertyManager::getValue<Mantid::API::IEventWorkspace_const_sptr>(
   if (prop) {
     return prop->operator()();
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected const IEventWorkspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected const shared_ptr<IEventWorkspace>.";
     throw std::runtime_error(message);
   }
 }
diff --git a/Framework/API/src/IFunction.cpp b/Framework/API/src/IFunction.cpp
index 379ee94adba1b572e0e2f4da29316a1854c2431b..91f4f47621d840abf4d5c055e9537c51441e385d 100644
--- a/Framework/API/src/IFunction.cpp
+++ b/Framework/API/src/IFunction.cpp
@@ -1118,7 +1118,25 @@ IPropertyManager::getValue<boost::shared_ptr<Mantid::API::IFunction>>(
     return *prop;
   } else {
     std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected IFitFunction.";
+                          " to incorrect type. Expected shared_ptr<IFunction>.";
+    throw std::runtime_error(message);
+  }
+}
+
+template <>
+MANTID_API_DLL boost::shared_ptr<const Mantid::API::IFunction>
+IPropertyManager::getValue<boost::shared_ptr<const Mantid::API::IFunction>>(
+    const std::string &name) const {
+  PropertyWithValue<boost::shared_ptr<Mantid::API::IFunction>> *prop =
+      dynamic_cast<
+          PropertyWithValue<boost::shared_ptr<Mantid::API::IFunction>> *>(
+          getPointerToProperty(name));
+  if (prop) {
+    return prop->operator()();
+  } else {
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected const shared_ptr<IFunction>.";
     throw std::runtime_error(message);
   }
 }
diff --git a/Framework/API/src/IMDEventWorkspace.cpp b/Framework/API/src/IMDEventWorkspace.cpp
index 75ec797f8b7b8382d48a00b37d9dc3018779bca0..7828791412691129d27513e4d64449ed691d8e8d 100644
--- a/Framework/API/src/IMDEventWorkspace.cpp
+++ b/Framework/API/src/IMDEventWorkspace.cpp
@@ -85,8 +85,9 @@ IPropertyManager::getValue<Mantid::API::IMDEventWorkspace_sptr>(
   if (prop) {
     return *prop;
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected IMDEventWorkspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected shared_ptr<IMDEventWorkspace>.";
     throw std::runtime_error(message);
   }
 }
@@ -104,10 +105,20 @@ IPropertyManager::getValue<Mantid::API::IMDEventWorkspace_const_sptr>(
   if (prop) {
     return prop->operator()();
   } else {
-    std::string message =
-        "Attempt to assign property " + name +
-        " to incorrect type. Expected const IMDEventWorkspace.";
-    throw std::runtime_error(message);
+    // Every other class with this behaviour allows you to get a shared_ptr<T>
+    // property as a shared_ptr<const T>. This class should be consistent, so
+    // try that:
+    PropertyWithValue<Mantid::API::IMDEventWorkspace_sptr> *nonConstProp =
+        dynamic_cast<PropertyWithValue<Mantid::API::IMDEventWorkspace_sptr> *>(
+            getPointerToProperty(name));
+    if (nonConstProp) {
+      return nonConstProp->operator()();
+    } else {
+      std::string message =
+          "Attempt to assign property " + name +
+          " to incorrect type. Expected const shared_ptr<IMDEventWorkspace>.";
+      throw std::runtime_error(message);
+    }
   }
 }
 
diff --git a/Framework/API/src/IMDHistoWorkspace.cpp b/Framework/API/src/IMDHistoWorkspace.cpp
index a8cac829bec8b3d63e9d8469c03d9fbad71d7f80..3f4ce43023ef20737cbe016616156b1beec455d3 100644
--- a/Framework/API/src/IMDHistoWorkspace.cpp
+++ b/Framework/API/src/IMDHistoWorkspace.cpp
@@ -51,8 +51,9 @@ IPropertyManager::getValue<Mantid::API::IMDHistoWorkspace_sptr>(
   if (prop) {
     return *prop;
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected IMDHistoWorkspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected shared_ptr<IMDHistoWorkspace>.";
     throw std::runtime_error(message);
   }
 }
@@ -71,7 +72,7 @@ IPropertyManager::getValue<Mantid::API::IMDHistoWorkspace_const_sptr>(
   } else {
     std::string message =
         "Attempt to assign property " + name +
-        " to incorrect type. Expected const IMDHistoWorkspace.";
+        " to incorrect type. Expected const shared_ptr<IMDHistoWorkspace>.";
     throw std::runtime_error(message);
   }
 }
diff --git a/Framework/API/src/IMDWorkspace.cpp b/Framework/API/src/IMDWorkspace.cpp
index 20766404902d1ac05322116c7732dc4b442f8db6..ecc894f053f0067f76d887285636010129744e48 100644
--- a/Framework/API/src/IMDWorkspace.cpp
+++ b/Framework/API/src/IMDWorkspace.cpp
@@ -155,8 +155,9 @@ IPropertyManager::getValue<Mantid::API::IMDWorkspace_sptr>(
   if (prop) {
     return *prop;
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected IMDWorkspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected shared_ptr<IMDWorkspace>.";
     throw std::runtime_error(message);
   }
 }
@@ -173,8 +174,9 @@ IPropertyManager::getValue<Mantid::API::IMDWorkspace_const_sptr>(
   if (prop) {
     return prop->operator()();
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected const IMDWorkspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected const shared_ptr<IMDWorkspace>.";
     throw std::runtime_error(message);
   }
 }
diff --git a/Framework/API/src/IPeaksWorkspace.cpp b/Framework/API/src/IPeaksWorkspace.cpp
index bcbccf7ae2c54eefdba8a741aaaaba3bc792c6ee..813a7e6bcf9b0afde6a0512f2b50bd9813b2c454 100644
--- a/Framework/API/src/IPeaksWorkspace.cpp
+++ b/Framework/API/src/IPeaksWorkspace.cpp
@@ -37,8 +37,9 @@ IPropertyManager::getValue<Mantid::API::IPeaksWorkspace_sptr>(
   if (prop) {
     return *prop;
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected PeaksWorkspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected shared_ptr<PeaksWorkspace>.";
     throw std::runtime_error(message);
   }
 }
@@ -53,8 +54,9 @@ IPropertyManager::getValue<Mantid::API::IPeaksWorkspace_const_sptr>(
   if (prop) {
     return prop->operator()();
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected const PeaksWorkspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected const shared_ptr<PeaksWorkspace>.";
     throw std::runtime_error(message);
   }
 }
diff --git a/Framework/API/src/ITableWorkspace.cpp b/Framework/API/src/ITableWorkspace.cpp
index 6ad853d297a24c9eb9d29a3fbf7e7545b39f19e5..3a1e649c462df977cafcd8e57ac218d3a9404291 100644
--- a/Framework/API/src/ITableWorkspace.cpp
+++ b/Framework/API/src/ITableWorkspace.cpp
@@ -107,8 +107,9 @@ IPropertyManager::getValue<API::ITableWorkspace_sptr>(
   if (prop) {
     return *prop;
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected ITableWorkspace";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected shared_ptr<ITableWorkspace>";
     throw std::runtime_error(message);
   }
 }
@@ -123,8 +124,9 @@ IPropertyManager::getValue<API::ITableWorkspace_const_sptr>(
   if (prop) {
     return prop->operator()();
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected const ITableWorkspace";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected const shared_ptr<ITableWorkspace>";
     throw std::runtime_error(message);
   }
 }
diff --git a/Framework/API/src/MatrixWorkspace.cpp b/Framework/API/src/MatrixWorkspace.cpp
index 0d523b4a07c898f67bd9781d66df6e293fb683fe..10ce0e137d658b2acf76564a1de0e6c33e11da72 100644
--- a/Framework/API/src/MatrixWorkspace.cpp
+++ b/Framework/API/src/MatrixWorkspace.cpp
@@ -2049,8 +2049,9 @@ IPropertyManager::getValue<Mantid::API::MatrixWorkspace_sptr>(
   if (prop) {
     return *prop;
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected MatrixWorkspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected shared_ptr<MatrixWorkspace>.";
     throw std::runtime_error(message);
   }
 }
@@ -2065,8 +2066,9 @@ IPropertyManager::getValue<Mantid::API::MatrixWorkspace_const_sptr>(
   if (prop) {
     return prop->operator()();
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected const MatrixWorkspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected const shared_ptr<MatrixWorkspace>.";
     throw std::runtime_error(message);
   }
 }
diff --git a/Framework/API/src/Workspace.cpp b/Framework/API/src/Workspace.cpp
index 2b6dcfbf166f9272b176a9cd561cf9d497d27020..da102183943c340fb946557141623d42da607f23 100644
--- a/Framework/API/src/Workspace.cpp
+++ b/Framework/API/src/Workspace.cpp
@@ -99,7 +99,7 @@ IPropertyManager::getValue<Mantid::API::Workspace_sptr>(
     return *prop;
   } else {
     std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected Workspace.";
+                          " to incorrect type. Expected shared_ptr<Workspace>.";
     throw std::runtime_error(message);
   }
 }
@@ -114,8 +114,9 @@ IPropertyManager::getValue<Mantid::API::Workspace_const_sptr>(
   if (prop) {
     return prop->operator()();
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected const Workspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected const shared_ptr<Workspace>.";
     throw std::runtime_error(message);
   }
 }
diff --git a/Framework/API/src/WorkspaceGroup.cpp b/Framework/API/src/WorkspaceGroup.cpp
index d4a27585723d98ef140578fe43acdb7e6a536677..8f8c3d9bab5b6384ed7c61c953e7b66ce9d97c3e 100644
--- a/Framework/API/src/WorkspaceGroup.cpp
+++ b/Framework/API/src/WorkspaceGroup.cpp
@@ -401,8 +401,9 @@ IPropertyManager::getValue<Mantid::API::WorkspaceGroup_sptr>(
   if (prop) {
     return *prop;
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected WorkspaceGroup.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected shared_ptr<WorkspaceGroup>.";
     throw std::runtime_error(message);
   }
 }
@@ -417,8 +418,9 @@ IPropertyManager::getValue<Mantid::API::WorkspaceGroup_const_sptr>(
   if (prop) {
     return prop->operator()();
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected const WorkspaceGroup.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected const shared_ptr<WorkspaceGroup>.";
     throw std::runtime_error(message);
   }
 }
diff --git a/Framework/API/test/AlgorithmTest.h b/Framework/API/test/AlgorithmTest.h
index 338c84efe951f12f2d99a5808363795b5afe4e13..cf231805b9f04c07ec1908b740db6bce0786f45d 100644
--- a/Framework/API/test/AlgorithmTest.h
+++ b/Framework/API/test/AlgorithmTest.h
@@ -14,6 +14,7 @@
 #include "MantidKernel/ArrayProperty.h"
 #include "MantidKernel/RebinParamsValidator.h"
 #include "FakeAlgorithms.h"
+#include "PropertyManagerHelper.h"
 #include <map>
 
 using namespace Mantid::Kernel;
@@ -737,6 +738,39 @@ public:
     TS_ASSERT_EQUALS(ws3->getTitle(), "A3+D3+D3");
   }
 
+  /**
+  * Test declaring an algorithm property and retrieving as const
+  * and non-const
+  */
+  void testGetProperty_const_sptr() {
+    const std::string algName = "InputAlgorithm";
+    IAlgorithm_sptr algInput(new StubbedWorkspaceAlgorithm());
+    PropertyManagerHelper manager;
+    manager.declareProperty(algName, algInput,
+                            Mantid::Kernel::Direction::Input);
+
+    // Check property can be obtained as const or non-const sptr
+    IAlgorithm_const_sptr algConst;
+    IAlgorithm_sptr algNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        algConst = manager.getValue<IAlgorithm_const_sptr>(algName));
+    TS_ASSERT(algConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(algNonConst =
+                                 manager.getValue<IAlgorithm_sptr>(algName));
+    TS_ASSERT(algNonConst != NULL);
+    TS_ASSERT_EQUALS(algConst, algNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, algName);
+    IAlgorithm_const_sptr algCastConst;
+    IAlgorithm_sptr algCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(algCastConst = (IAlgorithm_const_sptr)val);
+    TS_ASSERT(algCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(algCastNonConst = (IAlgorithm_sptr)val);
+    TS_ASSERT(algCastNonConst != NULL);
+    TS_ASSERT_EQUALS(algCastConst, algCastNonConst);
+  }
+
 private:
   IAlgorithm_sptr runFromString(const std::string &input) {
     IAlgorithm_sptr testAlg;
diff --git a/Framework/API/test/ExperimentInfoTest.h b/Framework/API/test/ExperimentInfoTest.h
index 6fe00df70cd04aa29d5d171953dcbb56bf72b86d..c4acb15b37c1f02d0bf9407281fc405ec5383d2e 100644
--- a/Framework/API/test/ExperimentInfoTest.h
+++ b/Framework/API/test/ExperimentInfoTest.h
@@ -16,6 +16,7 @@
 
 #include "MantidTestHelpers/ComponentCreationHelper.h"
 #include "MantidTestHelpers/NexusTestHelper.h"
+#include "PropertyManagerHelper.h"
 
 #include <nexus/NeXusFile.hpp>
 #include <nexus/NeXusException.hpp>
@@ -693,6 +694,38 @@ public:
     TS_ASSERT_EQUALS(params.size(), 613); // Check size of parameter string
   }
 
+  /**
+  * Test declaring an ExperimentInfo property and retrieving as const or
+  * non-const
+  */
+  void testGetProperty_const_sptr() {
+    const std::string eiName = "InputEi";
+    ExperimentInfo_sptr eiInput(new ExperimentInfo());
+    PropertyManagerHelper manager;
+    manager.declareProperty(eiName, eiInput, Mantid::Kernel::Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    ExperimentInfo_const_sptr eiConst;
+    ExperimentInfo_sptr eiNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        eiConst = manager.getValue<ExperimentInfo_const_sptr>(eiName));
+    TS_ASSERT(eiConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(eiNonConst =
+                                 manager.getValue<ExperimentInfo_sptr>(eiName));
+    TS_ASSERT(eiNonConst != NULL);
+    TS_ASSERT_EQUALS(eiConst, eiNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, eiName);
+    ExperimentInfo_const_sptr eiCastConst;
+    ExperimentInfo_sptr eiCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(eiCastConst = (ExperimentInfo_const_sptr)val);
+    TS_ASSERT(eiCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(eiCastNonConst = (ExperimentInfo_sptr)val);
+    TS_ASSERT(eiCastNonConst != NULL);
+    TS_ASSERT_EQUALS(eiCastConst, eiCastNonConst);
+  }
+
 private:
   void addInstrumentWithParameter(ExperimentInfo &expt, const std::string &name,
                                   const std::string &value) {
diff --git a/Framework/API/test/FunctionTest.h b/Framework/API/test/FunctionTest.h
index 607c81f1ffb0e76517433e01d70c8f69b1947805..847e79c8b71959dfbf58f6cccd99c067fe6c062c 100644
--- a/Framework/API/test/FunctionTest.h
+++ b/Framework/API/test/FunctionTest.h
@@ -9,6 +9,7 @@
 #include "MantidAPI/FrameworkManager.h"
 #include "MantidAPI/WorkspaceFactory.h"
 #include "MantidAPI/ParameterTie.h"
+#include "PropertyManagerHelper.h"
 
 #include <cxxtest/TestSuite.h>
 
@@ -406,6 +407,38 @@ public:
     TS_ASSERT(!f.isExplicitlySet(3));
   }
 
+  /**
+  * Test declaring a const IFunction property and retrieving as const or
+  * non-const
+  */
+  void testGetProperty_const_sptr() {
+    const std::string funcName = "InputFunction";
+    IFunction_sptr funcInput(new IFT_Funct());
+    PropertyManagerHelper manager;
+    manager.declareProperty(funcName, funcInput, Kernel::Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    IFunction_const_sptr funcConst;
+    IFunction_sptr funcNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        funcConst = manager.getValue<IFunction_const_sptr>(funcName));
+    TS_ASSERT(funcConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(funcNonConst =
+                                 manager.getValue<IFunction_sptr>(funcName));
+    TS_ASSERT(funcNonConst != NULL);
+    TS_ASSERT_EQUALS(funcConst, funcNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, funcName);
+    IFunction_const_sptr funcCastConst;
+    IFunction_sptr funcCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(funcCastConst = (IFunction_const_sptr)val);
+    TS_ASSERT(funcCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(funcCastNonConst = (IFunction_sptr)val);
+    TS_ASSERT(funcCastNonConst != NULL);
+    TS_ASSERT_EQUALS(funcCastConst, funcCastNonConst);
+  }
+
   // void xtest_setWorkspace_works()
   //{
   //  MatrixWorkspace_sptr ws(new MocMatrixWorkspace(10,11,10));
diff --git a/Framework/API/test/IMDWorkspaceTest.h b/Framework/API/test/IMDWorkspaceTest.h
index 02a4369038b147c9ae51ff809b3ff3dba9d104b0..cf412a40b3baad77c62f6c8a62decefb5a7bcb1f 100644
--- a/Framework/API/test/IMDWorkspaceTest.h
+++ b/Framework/API/test/IMDWorkspaceTest.h
@@ -12,6 +12,7 @@
 #include "MantidGeometry/MDGeometry/IMDDimension.h"
 #include "MantidAPI/MatrixWSIndexCalculator.h"
 #include "MantidTestHelpers/FakeObjects.h"
+#include "PropertyManagerHelper.h"
 
 using std::size_t;
 using namespace Mantid::Kernel;
@@ -135,6 +136,37 @@ public:
     TSM_ASSERT_EQUALS("bin index has not been calculated correctly.", 2,
                       binIndexB);
   }
+
+  /**
+  * Test declaring an input workspace and retrieving as const_sptr or sptr
+  */
+  void testGetProperty_const_sptr() {
+    const std::string wsName = "InputWorkspace";
+    IMDWorkspace_sptr wsInput(new WorkspaceTester());
+    PropertyManagerHelper manager;
+    manager.declareProperty(wsName, wsInput, Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    IMDWorkspace_const_sptr wsConst;
+    IMDWorkspace_sptr wsNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        wsConst = manager.getValue<IMDWorkspace_const_sptr>(wsName));
+    TS_ASSERT(wsConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsNonConst =
+                                 manager.getValue<IMDWorkspace_sptr>(wsName));
+    TS_ASSERT(wsNonConst != NULL);
+    TS_ASSERT_EQUALS(wsConst, wsNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, wsName);
+    IMDWorkspace_const_sptr wsCastConst;
+    IMDWorkspace_sptr wsCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(wsCastConst = (IMDWorkspace_const_sptr)val);
+    TS_ASSERT(wsCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsCastNonConst = (IMDWorkspace_sptr)val);
+    TS_ASSERT(wsCastNonConst != NULL);
+    TS_ASSERT_EQUALS(wsCastConst, wsCastNonConst);
+  }
 };
 
 #endif /*IMD_MATRIX_WORKSPACETEST_H_*/
diff --git a/Framework/API/test/MatrixWorkspaceTest.h b/Framework/API/test/MatrixWorkspaceTest.h
index 6878f6d2479b67eb1c705ea5c90e9520f9908048..170604cbe854054dd84bad96babfbfa6ac3a9f59 100644
--- a/Framework/API/test/MatrixWorkspaceTest.h
+++ b/Framework/API/test/MatrixWorkspaceTest.h
@@ -14,6 +14,7 @@
 #include "MantidTestHelpers/FakeGmockObjects.h"
 #include "MantidTestHelpers/FakeObjects.h"
 #include "MantidTestHelpers/NexusTestHelper.h"
+#include "PropertyManagerHelper.h"
 
 #include <cxxtest/TestSuite.h>
 #include <boost/make_shared.hpp>
@@ -1257,6 +1258,37 @@ public:
     TS_ASSERT_EQUALS(ws.readE(7)[0], 6);
   }
 
+  /**
+  * Test declaring an input workspace and retrieving as const_sptr or sptr
+  */
+  void testGetProperty_const_sptr() {
+    const std::string wsName = "InputWorkspace";
+    MatrixWorkspace_sptr wsInput(new WorkspaceTester());
+    PropertyManagerHelper manager;
+    manager.declareProperty(wsName, wsInput, Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    MatrixWorkspace_const_sptr wsConst;
+    MatrixWorkspace_sptr wsNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        wsConst = manager.getValue<MatrixWorkspace_const_sptr>(wsName));
+    TS_ASSERT(wsConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(
+        wsNonConst = manager.getValue<MatrixWorkspace_sptr>(wsName));
+    TS_ASSERT(wsNonConst != NULL);
+    TS_ASSERT_EQUALS(wsConst, wsNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, wsName);
+    MatrixWorkspace_const_sptr wsCastConst;
+    MatrixWorkspace_sptr wsCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(wsCastConst = (MatrixWorkspace_const_sptr)val);
+    TS_ASSERT(wsCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsCastNonConst = (MatrixWorkspace_sptr)val);
+    TS_ASSERT(wsCastNonConst != NULL);
+    TS_ASSERT_EQUALS(wsCastConst, wsCastNonConst);
+  }
+
 private:
   Mantid::API::MantidImage_sptr createImage(size_t width, size_t height) {
     auto image = new Mantid::API::MantidImage(height);
diff --git a/Framework/API/test/PropertyManagerHelper.h b/Framework/API/test/PropertyManagerHelper.h
new file mode 100644
index 0000000000000000000000000000000000000000..c626338a48250b65bb74e4fff8cc3b1675c09add
--- /dev/null
+++ b/Framework/API/test/PropertyManagerHelper.h
@@ -0,0 +1,19 @@
+#ifndef APITEST_PROPERTYMANAGERHELPER_H_
+#define APITEST_PROPERTYMANAGERHELPER_H_
+
+#include "MantidKernel/PropertyManager.h"
+
+/**
+* Helper class to use IPropertyManager methods in the DataObjects tests
+*/
+class PropertyManagerHelper : public Mantid::Kernel::PropertyManager {
+public:
+  PropertyManagerHelper() : PropertyManager() {}
+
+  using PropertyManager::declareProperty;
+  using PropertyManager::setProperty;
+  using IPropertyManager::TypedValue;
+  using IPropertyManager::getValue;
+};
+
+#endif
diff --git a/Framework/API/test/WorkspaceGroupTest.h b/Framework/API/test/WorkspaceGroupTest.h
index f14a8d18889924d490797a14eac2981f925c289d..91fcf1a0603d717e8f9a62004c61e7ed457d53d3 100644
--- a/Framework/API/test/WorkspaceGroupTest.h
+++ b/Framework/API/test/WorkspaceGroupTest.h
@@ -7,6 +7,7 @@
 #include "MantidAPI/WorkspaceGroup.h"
 #include "MantidAPI/AnalysisDataService.h"
 #include "MantidTestHelpers/FakeObjects.h"
+#include "PropertyManagerHelper.h"
 
 #include <boost/shared_ptr.hpp>
 #include <cxxtest/TestSuite.h>
@@ -323,6 +324,69 @@ public:
     TS_ASSERT_THROWS(group->isInGroup(*b), std::runtime_error);
     group1->removeAll();
   }
+
+  /**
+  * Test declaring an input workspace group and retrieving as const_sptr or sptr
+  */
+  void testGetProperty_const_sptr() {
+    const std::string wsName = "InputWorkspace";
+    WorkspaceGroup_sptr wsInput(new WorkspaceGroup());
+    PropertyManagerHelper manager;
+    manager.declareProperty(wsName, wsInput, Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    WorkspaceGroup_const_sptr wsConst;
+    WorkspaceGroup_sptr wsNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        wsConst = manager.getValue<WorkspaceGroup_const_sptr>(wsName));
+    TS_ASSERT(wsConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsNonConst =
+                                 manager.getValue<WorkspaceGroup_sptr>(wsName));
+    TS_ASSERT(wsNonConst != NULL);
+    TS_ASSERT_EQUALS(wsConst, wsNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, wsName);
+    WorkspaceGroup_const_sptr wsCastConst;
+    WorkspaceGroup_sptr wsCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(wsCastConst = (WorkspaceGroup_const_sptr)val);
+    TS_ASSERT(wsCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsCastNonConst = (WorkspaceGroup_sptr)val);
+    TS_ASSERT(wsCastNonConst != NULL);
+    TS_ASSERT_EQUALS(wsCastConst, wsCastNonConst);
+  }
+
+  /**
+  * Test declaring an input workspace and retrieving as const_sptr or sptr
+  * (here Workspace rather than WorkspaceGroup)
+  */
+  void testGetProperty_Workspace_const_sptr() {
+    const std::string wsName = "InputWorkspace";
+    Workspace_sptr wsInput(new WorkspaceTester());
+    PropertyManagerHelper manager;
+    manager.declareProperty(wsName, wsInput, Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    Workspace_const_sptr wsConst;
+    Workspace_sptr wsNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        wsConst = manager.getValue<Workspace_const_sptr>(wsName));
+    TS_ASSERT(wsConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsNonConst =
+                                 manager.getValue<Workspace_sptr>(wsName));
+    TS_ASSERT(wsNonConst != NULL);
+    TS_ASSERT_EQUALS(wsConst, wsNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, wsName);
+    Workspace_const_sptr wsCastConst;
+    Workspace_sptr wsCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(wsCastConst = (Workspace_const_sptr)val);
+    TS_ASSERT(wsCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsCastNonConst = (Workspace_sptr)val);
+    TS_ASSERT(wsCastNonConst != NULL);
+    TS_ASSERT_EQUALS(wsCastConst, wsCastNonConst);
+  }
 };
 
 #endif /* MANTID_API_WORKSPACEGROUPTEST_H_ */
diff --git a/Framework/CurveFitting/test/Algorithms/SeqDomainSpectrumCreatorTest.h b/Framework/CurveFitting/test/Algorithms/SeqDomainSpectrumCreatorTest.h
index 63f9453e00b0e94a89fba0c994ca0c21a5018aeb..47a604d8cf1417c828f52b26ba380d14eb1f4484 100644
--- a/Framework/CurveFitting/test/Algorithms/SeqDomainSpectrumCreatorTest.h
+++ b/Framework/CurveFitting/test/Algorithms/SeqDomainSpectrumCreatorTest.h
@@ -256,7 +256,7 @@ public:
   void testCreateOutputWorkspaceWithDistributionAsInput() {
     // Arrange
     MatrixWorkspace_sptr matrixWs =
-        WorkspaceCreationHelper::Create2DWorkspace123(4, 12);
+        WorkspaceCreationHelper::Create2DWorkspace123(4, 12, true);
     Mantid::API::WorkspaceHelpers::makeDistribution(matrixWs);
 
     TestableSeqDomainSpectrumCreator creator(NULL, "");
diff --git a/Framework/DataObjects/src/EventWorkspace.cpp b/Framework/DataObjects/src/EventWorkspace.cpp
index ccefaf41c27b36585b8bc77cbd03806dc03078c9..7130d5031920d8c0dd4568590cfee5ad5a68bbfe 100644
--- a/Framework/DataObjects/src/EventWorkspace.cpp
+++ b/Framework/DataObjects/src/EventWorkspace.cpp
@@ -986,8 +986,9 @@ IPropertyManager::getValue<Mantid::DataObjects::EventWorkspace_sptr>(
   if (prop) {
     return *prop;
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected EventWorkspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected shared_ptr<EventWorkspace>.";
     throw std::runtime_error(message);
   }
 }
@@ -1003,8 +1004,9 @@ IPropertyManager::getValue<Mantid::DataObjects::EventWorkspace_const_sptr>(
   if (prop) {
     return prop->operator()();
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected const EventWorkspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected const shared_ptr<EventWorkspace>.";
     throw std::runtime_error(message);
   }
 }
diff --git a/Framework/DataObjects/src/GroupingWorkspace.cpp b/Framework/DataObjects/src/GroupingWorkspace.cpp
index 6ca3f0867f20384dc1dcc1b56f64af71ebde0294..6ddd541c0a3f8878506ac2d3fba327eb92915635 100644
--- a/Framework/DataObjects/src/GroupingWorkspace.cpp
+++ b/Framework/DataObjects/src/GroupingWorkspace.cpp
@@ -117,8 +117,9 @@ IPropertyManager::getValue<Mantid::DataObjects::GroupingWorkspace_sptr>(
   if (prop) {
     return *prop;
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected GroupingWorkspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected shared_ptr<GroupingWorkspace>.";
     throw std::runtime_error(message);
   }
 }
@@ -136,7 +137,7 @@ IPropertyManager::getValue<Mantid::DataObjects::GroupingWorkspace_const_sptr>(
   } else {
     std::string message =
         "Attempt to assign property " + name +
-        " to incorrect type. Expected const GroupingWorkspace.";
+        " to incorrect type. Expected const shared_ptr<GroupingWorkspace>.";
     throw std::runtime_error(message);
   }
 }
diff --git a/Framework/DataObjects/src/MaskWorkspace.cpp b/Framework/DataObjects/src/MaskWorkspace.cpp
index 8d638313de96d2c50267a58152e5c054ba4863bb..edddf2db92edd4ae382925d287d1baa7f2e17220 100644
--- a/Framework/DataObjects/src/MaskWorkspace.cpp
+++ b/Framework/DataObjects/src/MaskWorkspace.cpp
@@ -311,8 +311,9 @@ IPropertyManager::getValue<Mantid::DataObjects::MaskWorkspace_sptr>(
   if (prop) {
     return *prop;
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected MaskWorkspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected shared_ptr<MaskWorkspace>.";
     throw std::runtime_error(message);
   }
 }
@@ -328,8 +329,9 @@ IPropertyManager::getValue<Mantid::DataObjects::MaskWorkspace_const_sptr>(
   if (prop) {
     return prop->operator()();
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected const MaskWorkspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected const shared_ptr<MaskWorkspace>.";
     throw std::runtime_error(message);
   }
 }
diff --git a/Framework/DataObjects/src/OffsetsWorkspace.cpp b/Framework/DataObjects/src/OffsetsWorkspace.cpp
index 8f42385743caf4450fb2ef8d7e61cc4c449810d2..2ed1bbb6df41ca2a463fd32fc3f772f6b7fe327b 100644
--- a/Framework/DataObjects/src/OffsetsWorkspace.cpp
+++ b/Framework/DataObjects/src/OffsetsWorkspace.cpp
@@ -48,8 +48,9 @@ IPropertyManager::getValue<Mantid::DataObjects::OffsetsWorkspace_sptr>(
   if (prop) {
     return *prop;
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected OffsetsWorkspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected shared_ptr<OffsetsWorkspace>.";
     throw std::runtime_error(message);
   }
 }
@@ -67,7 +68,7 @@ IPropertyManager::getValue<Mantid::DataObjects::OffsetsWorkspace_const_sptr>(
   } else {
     std::string message =
         "Attempt to assign property " + name +
-        " to incorrect type. Expected const OffsetsWorkspace.";
+        " to incorrect type. Expected const shared_ptr<OffsetsWorkspace>.";
     throw std::runtime_error(message);
   }
 }
diff --git a/Framework/DataObjects/src/PeaksWorkspace.cpp b/Framework/DataObjects/src/PeaksWorkspace.cpp
index 083c66123c4b9222af4c529934c007b27cdb7c9f..f75ca8b4064828ab7486d3b5ac1b37dd69d7a564 100644
--- a/Framework/DataObjects/src/PeaksWorkspace.cpp
+++ b/Framework/DataObjects/src/PeaksWorkspace.cpp
@@ -856,8 +856,9 @@ IPropertyManager::getValue<Mantid::DataObjects::PeaksWorkspace_sptr>(
   if (prop) {
     return *prop;
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected PeaksWorkspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected shared_ptr<PeaksWorkspace>.";
     throw std::runtime_error(message);
   }
 }
@@ -873,8 +874,9 @@ IPropertyManager::getValue<Mantid::DataObjects::PeaksWorkspace_const_sptr>(
   if (prop) {
     return prop->operator()();
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected const PeaksWorkspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected const shared_ptr<PeaksWorkspace>.";
     throw std::runtime_error(message);
   }
 }
diff --git a/Framework/DataObjects/src/SpecialWorkspace2D.cpp b/Framework/DataObjects/src/SpecialWorkspace2D.cpp
index 23cf4711a5cfceac7407ba76d4dfe9307a1087d9..ba520975e3e4e88160a8a83d42598b8da55f8cd8 100644
--- a/Framework/DataObjects/src/SpecialWorkspace2D.cpp
+++ b/Framework/DataObjects/src/SpecialWorkspace2D.cpp
@@ -451,8 +451,9 @@ IPropertyManager::getValue<Mantid::DataObjects::SpecialWorkspace2D_sptr>(
   if (prop) {
     return *prop;
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected SpecialWorkspace2D.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected shared_ptr<SpecialWorkspace2D>.";
     throw std::runtime_error(message);
   }
 }
@@ -470,7 +471,7 @@ IPropertyManager::getValue<Mantid::DataObjects::SpecialWorkspace2D_const_sptr>(
   } else {
     std::string message =
         "Attempt to assign property " + name +
-        " to incorrect type. Expected const SpecialWorkspace2D.";
+        " to incorrect type. Expected const shared_ptr<SpecialWorkspace2D>.";
     throw std::runtime_error(message);
   }
 }
diff --git a/Framework/DataObjects/src/SplittersWorkspace.cpp b/Framework/DataObjects/src/SplittersWorkspace.cpp
index 70f5e91b07e0399ae9d15ced06f32af79608cfb5..41f4b1aa65f20f00ca4760549175bec4a5cdb1aa 100644
--- a/Framework/DataObjects/src/SplittersWorkspace.cpp
+++ b/Framework/DataObjects/src/SplittersWorkspace.cpp
@@ -91,8 +91,9 @@ IPropertyManager::getValue<Mantid::DataObjects::SplittersWorkspace_sptr>(
   if (prop) {
     return *prop;
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected SplittersWorkspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected shared_ptr<SplittersWorkspace>.";
     throw std::runtime_error(message);
   }
 }
@@ -110,7 +111,7 @@ IPropertyManager::getValue<Mantid::DataObjects::SplittersWorkspace_const_sptr>(
   } else {
     std::string message =
         "Attempt to assign property " + name +
-        " to incorrect type. Expected const SplittersWorkspace.";
+        " to incorrect type. Expected const shared_ptr<SplittersWorkspace>.";
     throw std::runtime_error(message);
   }
 }
diff --git a/Framework/DataObjects/src/TableWorkspace.cpp b/Framework/DataObjects/src/TableWorkspace.cpp
index c352028bfd15d5f210bd0409cb2cb8dc000b6d85..e650c051c49aa5f2608b21fc64b82c4b56204608 100644
--- a/Framework/DataObjects/src/TableWorkspace.cpp
+++ b/Framework/DataObjects/src/TableWorkspace.cpp
@@ -303,8 +303,26 @@ IPropertyManager::getValue<DataObjects::TableWorkspace_sptr>(
   if (prop) {
     return *prop;
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected TableWorkspace.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected shared_ptr<TableWorkspace>.";
+    throw std::runtime_error(message);
+  }
+}
+
+template <>
+DLLExport DataObjects::TableWorkspace_const_sptr
+IPropertyManager::getValue<DataObjects::TableWorkspace_const_sptr>(
+    const std::string &name) const {
+  PropertyWithValue<DataObjects::TableWorkspace_sptr> *prop =
+      dynamic_cast<PropertyWithValue<DataObjects::TableWorkspace_sptr> *>(
+          getPointerToProperty(name));
+  if (prop) {
+    return prop->operator()();
+  } else {
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected const shared_ptr<TableWorkspace>.";
     throw std::runtime_error(message);
   }
 }
diff --git a/Framework/DataObjects/src/Workspace2D.cpp b/Framework/DataObjects/src/Workspace2D.cpp
index 79325874a67b442b60c381fb43c6818670db379e..8c91015de347de4c57c0431b386f6227f6391a2b 100644
--- a/Framework/DataObjects/src/Workspace2D.cpp
+++ b/Framework/DataObjects/src/Workspace2D.cpp
@@ -325,8 +325,9 @@ IPropertyManager::getValue<Mantid::DataObjects::Workspace2D_sptr>(
   if (prop) {
     return *prop;
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected Workspace2D.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected shared_ptr<Workspace2D>.";
     throw std::runtime_error(message);
   }
 }
@@ -341,8 +342,9 @@ IPropertyManager::getValue<Mantid::DataObjects::Workspace2D_const_sptr>(
   if (prop) {
     return prop->operator()();
   } else {
-    std::string message = "Attempt to assign property " + name +
-                          " to incorrect type. Expected const Workspace2D.";
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected const shared_ptr<Workspace2D>.";
     throw std::runtime_error(message);
   }
 }
diff --git a/Framework/DataObjects/src/WorkspaceSingleValue.cpp b/Framework/DataObjects/src/WorkspaceSingleValue.cpp
index 10c05ee50335cde3e374f3fa4785dd4143e7caa5..9d00e0307463caf39ca88599bdba7055890cafb8 100644
--- a/Framework/DataObjects/src/WorkspaceSingleValue.cpp
+++ b/Framework/DataObjects/src/WorkspaceSingleValue.cpp
@@ -94,8 +94,29 @@ IPropertyManager::getValue<Mantid::DataObjects::WorkspaceSingleValue_sptr>(
   if (prop) {
     return *prop;
   } else {
-    throw std::runtime_error("Attempt to assign property of incorrect type. "
-                             "Expected WorkspaceSingleValue.");
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected shared_ptr<WorkspaceSingleValue>.";
+    throw std::runtime_error(message);
+  }
+}
+
+template <>
+DLLExport Mantid::DataObjects::WorkspaceSingleValue_const_sptr
+IPropertyManager::getValue<
+    Mantid::DataObjects::WorkspaceSingleValue_const_sptr>(
+    const std::string &name) const {
+  PropertyWithValue<Mantid::DataObjects::WorkspaceSingleValue_sptr> *prop =
+      dynamic_cast<
+          PropertyWithValue<Mantid::DataObjects::WorkspaceSingleValue_sptr> *>(
+          getPointerToProperty(name));
+  if (prop) {
+    return prop->operator()();
+  } else {
+    std::string message =
+        "Attempt to assign property " + name +
+        " to incorrect type. Expected const shared_ptr<WorkspaceSingleValue>.";
+    throw std::runtime_error(message);
   }
 }
 
diff --git a/Framework/DataObjects/test/EventWorkspaceTest.h b/Framework/DataObjects/test/EventWorkspaceTest.h
index a5ab9dcc5deffc6ede0b848aac1a39bdfedb0a40..60ba9b4ba133fd7fc591acbcd909041283efa037 100644
--- a/Framework/DataObjects/test/EventWorkspaceTest.h
+++ b/Framework/DataObjects/test/EventWorkspaceTest.h
@@ -12,12 +12,15 @@
 #include <boost/date_time/gregorian/gregorian.hpp>
 #include <boost/date_time/posix_time/posix_time.hpp>
 
+#include <string>
+
 #include "MantidDataObjects/EventList.h"
 #include "MantidDataObjects/EventWorkspace.h"
 #include "MantidTestHelpers/WorkspaceCreationHelper.h"
 #include "MantidTestHelpers/ComponentCreationHelper.h"
 #include "MantidKernel/Memory.h"
 #include "MantidKernel/Timer.h"
+#include "PropertyManagerHelper.h"
 
 using namespace Mantid;
 using namespace Mantid::DataObjects;
@@ -822,6 +825,68 @@ public:
     TS_ASSERT_DELTA(wksp->getEventXMin(), 500, .01);
     TS_ASSERT_DELTA(wksp->getEventXMax(), 1023500, .01);
   }
+
+  /**
+  * Test declaring an input EventWorkspace and retrieving as const_sptr or sptr
+  */
+  void testGetProperty_const_sptr() {
+    const std::string wsName = "InputWorkspace";
+    EventWorkspace_sptr wsInput(new EventWorkspace());
+    PropertyManagerHelper manager;
+    manager.declareProperty(wsName, wsInput, Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    EventWorkspace_const_sptr wsConst;
+    EventWorkspace_sptr wsNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        wsConst = manager.getValue<EventWorkspace_const_sptr>(wsName));
+    TS_ASSERT(wsConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsNonConst =
+                                 manager.getValue<EventWorkspace_sptr>(wsName));
+    TS_ASSERT(wsNonConst != NULL);
+    TS_ASSERT_EQUALS(wsConst, wsNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, wsName);
+    EventWorkspace_const_sptr wsCastConst;
+    EventWorkspace_sptr wsCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(wsCastConst = (EventWorkspace_const_sptr)val);
+    TS_ASSERT(wsCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsCastNonConst = (EventWorkspace_sptr)val);
+    TS_ASSERT(wsCastNonConst != NULL);
+    TS_ASSERT_EQUALS(wsCastConst, wsCastNonConst);
+  }
+
+  /**
+  * Test declaring an input IEventWorkspace and retrieving as const_sptr or sptr
+  */
+  void testGetProperty_IEventWS_const_sptr() {
+    const std::string wsName = "InputWorkspace";
+    IEventWorkspace_sptr wsInput(new EventWorkspace());
+    PropertyManagerHelper manager;
+    manager.declareProperty(wsName, wsInput, Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    IEventWorkspace_const_sptr wsConst;
+    IEventWorkspace_sptr wsNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        wsConst = manager.getValue<IEventWorkspace_const_sptr>(wsName));
+    TS_ASSERT(wsConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(
+        wsNonConst = manager.getValue<IEventWorkspace_sptr>(wsName));
+    TS_ASSERT(wsNonConst != NULL);
+    TS_ASSERT_EQUALS(wsConst, wsNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, wsName);
+    IEventWorkspace_const_sptr wsCastConst;
+    IEventWorkspace_sptr wsCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(wsCastConst = (IEventWorkspace_const_sptr)val);
+    TS_ASSERT(wsCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsCastNonConst = (IEventWorkspace_sptr)val);
+    TS_ASSERT(wsCastNonConst != NULL);
+    TS_ASSERT_EQUALS(wsCastConst, wsCastNonConst);
+  }
 };
 
 #endif /* EVENTWORKSPACETEST_H_ */
diff --git a/Framework/DataObjects/test/GroupingWorkspaceTest.h b/Framework/DataObjects/test/GroupingWorkspaceTest.h
index ee0db8b637f01c9044689190e5a87fca61b795bc..f9227b6a36f6f1023336996a5db592d1470a389f 100644
--- a/Framework/DataObjects/test/GroupingWorkspaceTest.h
+++ b/Framework/DataObjects/test/GroupingWorkspaceTest.h
@@ -7,6 +7,7 @@
 #include "MantidTestHelpers/ComponentCreationHelper.h"
 #include "MantidTestHelpers/WorkspaceCreationHelper.h"
 #include <cxxtest/TestSuite.h>
+#include "PropertyManagerHelper.h"
 
 using namespace Mantid;
 using namespace Mantid::API;
@@ -92,6 +93,38 @@ public:
     TS_ASSERT_EQUALS(map[10], 2);
     TS_ASSERT_EQUALS(map[45], 5);
   }
+
+  /**
+  * Test declaring an input workspace property and retrieving as const_sptr or
+  * sptr
+  */
+  void testGetProperty_const_sptr() {
+    const std::string wsName = "InputWorkspace";
+    GroupingWorkspace_sptr wsInput(new GroupingWorkspace());
+    PropertyManagerHelper manager;
+    manager.declareProperty(wsName, wsInput, Mantid::Kernel::Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    GroupingWorkspace_const_sptr wsConst;
+    GroupingWorkspace_sptr wsNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        wsConst = manager.getValue<GroupingWorkspace_const_sptr>(wsName));
+    TS_ASSERT(wsConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(
+        wsNonConst = manager.getValue<GroupingWorkspace_sptr>(wsName));
+    TS_ASSERT(wsNonConst != NULL);
+    TS_ASSERT_EQUALS(wsConst, wsNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, wsName);
+    GroupingWorkspace_const_sptr wsCastConst;
+    GroupingWorkspace_sptr wsCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(wsCastConst = (GroupingWorkspace_const_sptr)val);
+    TS_ASSERT(wsCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsCastNonConst = (GroupingWorkspace_sptr)val);
+    TS_ASSERT(wsCastNonConst != NULL);
+    TS_ASSERT_EQUALS(wsCastConst, wsCastNonConst);
+  }
 };
 
 #endif /* MANTID_DATAOBJECTS_GROUPINGWORKSPACETEST_H_ */
diff --git a/Framework/DataObjects/test/MDEventWorkspaceTest.h b/Framework/DataObjects/test/MDEventWorkspaceTest.h
index bf8d4863f790e03801d5d4d94b3d6c9f83cf5177..c1eb4db378a7b258ec780b1eb12ecf9f96961a5c 100644
--- a/Framework/DataObjects/test/MDEventWorkspaceTest.h
+++ b/Framework/DataObjects/test/MDEventWorkspaceTest.h
@@ -17,6 +17,7 @@
 #include "MantidDataObjects/MDGridBox.h"
 #include "MantidDataObjects/MDLeanEvent.h"
 #include "MantidTestHelpers/MDEventsTestHelper.h"
+#include "PropertyManagerHelper.h"
 #include <boost/random/linear_congruential.hpp>
 #include <boost/random/mersenne_twister.hpp>
 #include <boost/random/uniform_int.hpp>
@@ -579,6 +580,38 @@ public:
         "Should be set to number of events normalizationnormalization",
         ew->displayNormalizationHisto(), histoSetting);
   }
+
+  /**
+  * Test declaring an input IMDEventWorkspace and retrieving as const_sptr or
+  * sptr
+  */
+  void testGetProperty_const_sptr() {
+    const std::string wsName = "InputWorkspace";
+    IMDEventWorkspace_sptr wsInput(new MDEventWorkspace<MDLeanEvent<3>, 3>());
+    PropertyManagerHelper manager;
+    manager.declareProperty(wsName, wsInput, Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    IMDEventWorkspace_const_sptr wsConst;
+    IMDEventWorkspace_sptr wsNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        wsConst = manager.getValue<IMDEventWorkspace_const_sptr>(wsName));
+    TS_ASSERT(wsConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(
+        wsNonConst = manager.getValue<IMDEventWorkspace_sptr>(wsName));
+    TS_ASSERT(wsNonConst != NULL);
+    TS_ASSERT_EQUALS(wsConst, wsNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, wsName);
+    IMDEventWorkspace_const_sptr wsCastConst;
+    IMDEventWorkspace_sptr wsCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(wsCastConst = (IMDEventWorkspace_const_sptr)val);
+    TS_ASSERT(wsCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsCastNonConst = (IMDEventWorkspace_sptr)val);
+    TS_ASSERT(wsCastNonConst != NULL);
+    TS_ASSERT_EQUALS(wsCastConst, wsCastNonConst);
+  }
 };
 
 class MDEventWorkspaceTestPerformance : public CxxTest::TestSuite {
diff --git a/Framework/DataObjects/test/MDHistoWorkspaceTest.h b/Framework/DataObjects/test/MDHistoWorkspaceTest.h
index 5d3b2fffe5ecd138d8a9722a2c974c3d6af279f3..eb58893d5894dc913ed6961f1137463e4216b1b2 100644
--- a/Framework/DataObjects/test/MDHistoWorkspaceTest.h
+++ b/Framework/DataObjects/test/MDHistoWorkspaceTest.h
@@ -19,6 +19,7 @@
 #include <cxxtest/TestSuite.h>
 #include "MantidAPI/ExperimentInfo.h"
 #include "MantidKernel/Strings.h"
+#include "PropertyManagerHelper.h"
 
 using namespace Mantid::DataObjects;
 using namespace Mantid::DataObjects;
@@ -1066,6 +1067,42 @@ public:
     auto clone = ws3.clone();
     TS_ASSERT_EQUALS(targetDisplayNormalization, clone->displayNormalization());
   }
+
+  /**
+  * Test declaring an input IMDHistoWorkspace and retrieving as const_sptr or
+  * sptr
+  */
+  void testGetProperty_const_sptr() {
+    const std::string wsName = "InputWorkspace";
+    Mantid::Geometry::GeneralFrame frame("m", "m");
+    MDHistoDimension_sptr dimX(
+        new MDHistoDimension("X", "x", frame, -10, 10, 5));
+    IMDHistoWorkspace_sptr wsInput(new MDHistoWorkspace(
+        dimX, dimX, dimX, dimX, Mantid::API::VolumeNormalization));
+    PropertyManagerHelper manager;
+    manager.declareProperty(wsName, wsInput, Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    IMDHistoWorkspace_const_sptr wsConst;
+    IMDHistoWorkspace_sptr wsNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        wsConst = manager.getValue<IMDHistoWorkspace_const_sptr>(wsName));
+    TS_ASSERT(wsConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(
+        wsNonConst = manager.getValue<IMDHistoWorkspace_sptr>(wsName));
+    TS_ASSERT(wsNonConst != NULL);
+    TS_ASSERT_EQUALS(wsConst, wsNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, wsName);
+    IMDHistoWorkspace_const_sptr wsCastConst;
+    IMDHistoWorkspace_sptr wsCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(wsCastConst = (IMDHistoWorkspace_const_sptr)val);
+    TS_ASSERT(wsCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsCastNonConst = (IMDHistoWorkspace_sptr)val);
+    TS_ASSERT(wsCastNonConst != NULL);
+    TS_ASSERT_EQUALS(wsCastConst, wsCastNonConst);
+  }
 };
 
 #endif /* MANTID_DATAOBJECTS_MDHISTOWORKSPACETEST_H_ */
diff --git a/Framework/DataObjects/test/MaskWorkspaceTest.h b/Framework/DataObjects/test/MaskWorkspaceTest.h
index 693e93fcc84d0fa500fccb411647af3f2fd48f11..f32094b5c2b86c788c5b69c6f1480f1f26bee012 100644
--- a/Framework/DataObjects/test/MaskWorkspaceTest.h
+++ b/Framework/DataObjects/test/MaskWorkspaceTest.h
@@ -6,6 +6,10 @@
 #include "MantidDataObjects/MaskWorkspace.h"
 #include "MantidGeometry/Instrument.h"
 #include "MantidTestHelpers/ComponentCreationHelper.h"
+#include "PropertyManagerHelper.h"
+
+using Mantid::DataObjects::MaskWorkspace_const_sptr;
+using Mantid::DataObjects::MaskWorkspace_sptr;
 
 class MaskWorkspaceTest : public CxxTest::TestSuite {
 public:
@@ -109,6 +113,38 @@ public:
     detIds.insert(2);
     TS_ASSERT_EQUALS(maskWS.isMasked(detIds), true);
   }
+
+  /**
+  * Test declaring an input MaskWorkspace and retrieving it as const_sptr or
+  * sptr
+  */
+  void testGetProperty_const_sptr() {
+    const std::string wsName = "InputWorkspace";
+    MaskWorkspace_sptr wsInput(new Mantid::DataObjects::MaskWorkspace());
+    PropertyManagerHelper manager;
+    manager.declareProperty(wsName, wsInput, Mantid::Kernel::Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    MaskWorkspace_const_sptr wsConst;
+    MaskWorkspace_sptr wsNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        wsConst = manager.getValue<MaskWorkspace_const_sptr>(wsName));
+    TS_ASSERT(wsConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsNonConst =
+                                 manager.getValue<MaskWorkspace_sptr>(wsName));
+    TS_ASSERT(wsNonConst != NULL);
+    TS_ASSERT_EQUALS(wsConst, wsNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, wsName);
+    MaskWorkspace_const_sptr wsCastConst;
+    MaskWorkspace_sptr wsCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(wsCastConst = (MaskWorkspace_const_sptr)val);
+    TS_ASSERT(wsCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsCastNonConst = (MaskWorkspace_sptr)val);
+    TS_ASSERT(wsCastNonConst != NULL);
+    TS_ASSERT_EQUALS(wsCastConst, wsCastNonConst);
+  }
 };
 
 #endif // MANTID_DATAOBJECTS_MASKWORKSPACETEST_H
diff --git a/Framework/DataObjects/test/OffsetsWorkspaceTest.h b/Framework/DataObjects/test/OffsetsWorkspaceTest.h
index 08f5bff01aa0ce8691a045bfd08e5373725ad446..c910bbb631d9c58555d04060070ee9ee96549e0f 100644
--- a/Framework/DataObjects/test/OffsetsWorkspaceTest.h
+++ b/Framework/DataObjects/test/OffsetsWorkspaceTest.h
@@ -7,6 +7,7 @@
 
 #include "MantidDataObjects/OffsetsWorkspace.h"
 #include "MantidTestHelpers/ComponentCreationHelper.h"
+#include "PropertyManagerHelper.h"
 
 using namespace Mantid::DataObjects;
 using namespace Mantid::API;
@@ -21,6 +22,38 @@ public:
     OffsetsWorkspace ws(inst);
     TS_ASSERT_THROWS_NOTHING(ws.clone());
   }
+
+  /**
+  * Test declaring an input OffsetsWorkspace and retrieving it as const_sptr or
+  * sptr
+  */
+  void testGetProperty_const_sptr() {
+    const std::string wsName = "InputWorkspace";
+    OffsetsWorkspace_sptr wsInput(new OffsetsWorkspace());
+    PropertyManagerHelper manager;
+    manager.declareProperty(wsName, wsInput, Mantid::Kernel::Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    OffsetsWorkspace_const_sptr wsConst;
+    OffsetsWorkspace_sptr wsNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        wsConst = manager.getValue<OffsetsWorkspace_const_sptr>(wsName));
+    TS_ASSERT(wsConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(
+        wsNonConst = manager.getValue<OffsetsWorkspace_sptr>(wsName));
+    TS_ASSERT(wsNonConst != NULL);
+    TS_ASSERT_EQUALS(wsConst, wsNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, wsName);
+    OffsetsWorkspace_const_sptr wsCastConst;
+    OffsetsWorkspace_sptr wsCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(wsCastConst = (OffsetsWorkspace_const_sptr)val);
+    TS_ASSERT(wsCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsCastNonConst = (OffsetsWorkspace_sptr)val);
+    TS_ASSERT(wsCastNonConst != NULL);
+    TS_ASSERT_EQUALS(wsCastConst, wsCastNonConst);
+  }
 };
 
 #endif /* MANTID_DATAOBJECTS_OFFSETSWORKSPACETEST_H_ */
diff --git a/Framework/DataObjects/test/PeaksWorkspaceTest.h b/Framework/DataObjects/test/PeaksWorkspaceTest.h
index 3ffb18821ed63a22a906b908c50c422ce1bf54ac..9c523ee558985ba11866c17a52d8d2002805812b 100644
--- a/Framework/DataObjects/test/PeaksWorkspaceTest.h
+++ b/Framework/DataObjects/test/PeaksWorkspaceTest.h
@@ -18,6 +18,7 @@
 #include "MantidTestHelpers/ComponentCreationHelper.h"
 #include "MantidAPI/AlgorithmManager.h"
 #include "MantidAPI/LogManager.h"
+#include "PropertyManagerHelper.h"
 
 #include <Poco/File.h>
 
@@ -418,6 +419,70 @@ public:
     delete peak;
   }
 
+  /**
+  * Test declaring an input PeaksWorkspace and retrieving it as const_sptr or
+  * sptr
+  */
+  void testGetProperty_const_sptr() {
+    const std::string wsName = "InputWorkspace";
+    PeaksWorkspace_sptr wsInput(new PeaksWorkspace());
+    PropertyManagerHelper manager;
+    manager.declareProperty(wsName, wsInput, Mantid::Kernel::Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    PeaksWorkspace_const_sptr wsConst;
+    PeaksWorkspace_sptr wsNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        wsConst = manager.getValue<PeaksWorkspace_const_sptr>(wsName));
+    TS_ASSERT(wsConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsNonConst =
+                                 manager.getValue<PeaksWorkspace_sptr>(wsName));
+    TS_ASSERT(wsNonConst != NULL);
+    TS_ASSERT_EQUALS(wsConst, wsNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, wsName);
+    PeaksWorkspace_const_sptr wsCastConst;
+    PeaksWorkspace_sptr wsCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(wsCastConst = (PeaksWorkspace_const_sptr)val);
+    TS_ASSERT(wsCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsCastNonConst = (PeaksWorkspace_sptr)val);
+    TS_ASSERT(wsCastNonConst != NULL);
+    TS_ASSERT_EQUALS(wsCastConst, wsCastNonConst);
+  }
+
+  /**
+  * Test declaring an input IPeaksWorkspace and retrieving it as const_sptr or
+  * sptr
+  */
+  void testGetProperty_IPeaksWS_const_sptr() {
+    const std::string wsName = "InputWorkspace";
+    IPeaksWorkspace_sptr wsInput(new PeaksWorkspace());
+    PropertyManagerHelper manager;
+    manager.declareProperty(wsName, wsInput, Mantid::Kernel::Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    IPeaksWorkspace_const_sptr wsConst;
+    IPeaksWorkspace_sptr wsNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        wsConst = manager.getValue<IPeaksWorkspace_const_sptr>(wsName));
+    TS_ASSERT(wsConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(
+        wsNonConst = manager.getValue<IPeaksWorkspace_sptr>(wsName));
+    TS_ASSERT(wsNonConst != NULL);
+    TS_ASSERT_EQUALS(wsConst, wsNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, wsName);
+    IPeaksWorkspace_const_sptr wsCastConst;
+    IPeaksWorkspace_sptr wsCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(wsCastConst = (IPeaksWorkspace_const_sptr)val);
+    TS_ASSERT(wsCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsCastNonConst = (IPeaksWorkspace_sptr)val);
+    TS_ASSERT(wsCastNonConst != NULL);
+    TS_ASSERT_EQUALS(wsCastConst, wsCastNonConst);
+  }
+
 private:
   PeaksWorkspace_sptr createSaveTestPeaksWorkspace() {
     // Create peak workspace
diff --git a/Framework/DataObjects/test/PropertyManagerHelper.h b/Framework/DataObjects/test/PropertyManagerHelper.h
new file mode 100644
index 0000000000000000000000000000000000000000..29473cf08863c7fca93dd5ad61ce1ca43fabee23
--- /dev/null
+++ b/Framework/DataObjects/test/PropertyManagerHelper.h
@@ -0,0 +1,19 @@
+#ifndef DATAOBJECTSTEST_PROPERTYMANAGERHELPER_H_
+#define DATAOBJECTSTEST_PROPERTYMANAGERHELPER_H_
+
+#include "MantidKernel/PropertyManager.h"
+
+/**
+* Helper class to use IPropertyManager methods in the DataObjects tests
+*/
+class PropertyManagerHelper : public Mantid::Kernel::PropertyManager {
+public:
+  PropertyManagerHelper() : PropertyManager() {}
+
+  using PropertyManager::declareProperty;
+  using PropertyManager::setProperty;
+  using IPropertyManager::TypedValue;
+  using IPropertyManager::getValue;
+};
+
+#endif
diff --git a/Framework/DataObjects/test/SpecialWorkspace2DTest.h b/Framework/DataObjects/test/SpecialWorkspace2DTest.h
index 9598500b31560a7431da88ae9ef797a53952a208..a9ee4305c129b0f02700adec3bf3c4baafeb3081 100644
--- a/Framework/DataObjects/test/SpecialWorkspace2DTest.h
+++ b/Framework/DataObjects/test/SpecialWorkspace2DTest.h
@@ -7,6 +7,7 @@
 #include "MantidTestHelpers/ComponentCreationHelper.h"
 #include "MantidTestHelpers/WorkspaceCreationHelper.h"
 #include "MantidAPI/WorkspaceProperty.h"
+#include "PropertyManagerHelper.h"
 #include <cxxtest/TestSuite.h>
 
 using namespace Mantid::DataObjects;
@@ -214,6 +215,38 @@ public:
     TS_ASSERT_EQUALS("SpecialWorkspace2D", Mantid::Kernel::getUnmangledTypeName(
                                                *property.type_info()));
   }
+
+  /**
+  * Test declaring an input SpecialWorkspace2D and retrieving it as const_sptr
+  * or sptr
+  */
+  void testGetProperty_const_sptr() {
+    const std::string wsName = "InputWorkspace";
+    SpecialWorkspace2D_sptr wsInput(new SpecialWorkspace2D());
+    PropertyManagerHelper manager;
+    manager.declareProperty(wsName, wsInput, Mantid::Kernel::Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    SpecialWorkspace2D_const_sptr wsConst;
+    SpecialWorkspace2D_sptr wsNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        wsConst = manager.getValue<SpecialWorkspace2D_const_sptr>(wsName));
+    TS_ASSERT(wsConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(
+        wsNonConst = manager.getValue<SpecialWorkspace2D_sptr>(wsName));
+    TS_ASSERT(wsNonConst != NULL);
+    TS_ASSERT_EQUALS(wsConst, wsNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, wsName);
+    SpecialWorkspace2D_const_sptr wsCastConst;
+    SpecialWorkspace2D_sptr wsCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(wsCastConst = (SpecialWorkspace2D_const_sptr)val);
+    TS_ASSERT(wsCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsCastNonConst = (SpecialWorkspace2D_sptr)val);
+    TS_ASSERT(wsCastNonConst != NULL);
+    TS_ASSERT_EQUALS(wsCastConst, wsCastNonConst);
+  }
 };
 
 #endif /* MANTID_DATAOBJECTS_SPECIALWORKSPACE2DTEST_H_ */
diff --git a/Framework/DataObjects/test/SplittersWorkspaceTest.h b/Framework/DataObjects/test/SplittersWorkspaceTest.h
index 45f52e9334e7cd73ad1f9368fda2e53b376731df..8aea54f47aabc9e71ebe3f960e8f6a6d802f18c7 100644
--- a/Framework/DataObjects/test/SplittersWorkspaceTest.h
+++ b/Framework/DataObjects/test/SplittersWorkspaceTest.h
@@ -5,7 +5,7 @@
 #include "MantidKernel/Timer.h"
 #include "MantidKernel/System.h"
 #include "MantidAPI/WorkspaceProperty.h"
-
+#include "PropertyManagerHelper.h"
 #include "MantidDataObjects/SplittersWorkspace.h"
 
 using namespace Mantid;
@@ -93,6 +93,38 @@ public:
     TS_ASSERT_EQUALS("SplittersWorkspace", Mantid::Kernel::getUnmangledTypeName(
                                                *property.type_info()));
   }
+
+  /**
+  * Test declaring an input SplittersWorkspace and retrieving it as const_sptr
+  * or sptr
+  */
+  void testGetProperty_const_sptr() {
+    const std::string wsName = "InputWorkspace";
+    SplittersWorkspace_sptr wsInput(new SplittersWorkspace());
+    PropertyManagerHelper manager;
+    manager.declareProperty(wsName, wsInput, Mantid::Kernel::Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    SplittersWorkspace_const_sptr wsConst;
+    SplittersWorkspace_sptr wsNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        wsConst = manager.getValue<SplittersWorkspace_const_sptr>(wsName));
+    TS_ASSERT(wsConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(
+        wsNonConst = manager.getValue<SplittersWorkspace_sptr>(wsName));
+    TS_ASSERT(wsNonConst != NULL);
+    TS_ASSERT_EQUALS(wsConst, wsNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, wsName);
+    SplittersWorkspace_const_sptr wsCastConst;
+    SplittersWorkspace_sptr wsCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(wsCastConst = (SplittersWorkspace_const_sptr)val);
+    TS_ASSERT(wsCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsCastNonConst = (SplittersWorkspace_sptr)val);
+    TS_ASSERT(wsCastNonConst != NULL);
+    TS_ASSERT_EQUALS(wsCastConst, wsCastNonConst);
+  }
 };
 
 #endif /* MANTID_DATAOBJECTS_SPLITTERSWORKSPACETEST_H_ */
diff --git a/Framework/DataObjects/test/TableWorkspaceTest.h b/Framework/DataObjects/test/TableWorkspaceTest.h
index f2cb5a7979223a32837d21d7ab18bf2d6fd8fa45..2e9318637562259388f7fc8845de56ee007373d4 100644
--- a/Framework/DataObjects/test/TableWorkspaceTest.h
+++ b/Framework/DataObjects/test/TableWorkspaceTest.h
@@ -11,6 +11,7 @@
 #include "MantidAPI/TableRow.h"
 #include "MantidAPI/ColumnFactory.h"
 #include "MantidAPI/WorkspaceProperty.h"
+#include "PropertyManagerHelper.h"
 
 #include <limits>
 
@@ -646,6 +647,70 @@ public:
     TS_ASSERT_EQUALS(data2[0], "hello");
     TS_ASSERT_EQUALS(data3[0], 5);
   }
+
+  /**
+  * Test declaring an input TableWorkspace and retrieving it as const_sptr
+  * or sptr
+  */
+  void testGetProperty_const_sptr() {
+    const std::string wsName = "InputWorkspace";
+    TableWorkspace_sptr wsInput(new TableWorkspace());
+    PropertyManagerHelper manager;
+    manager.declareProperty(wsName, wsInput, Mantid::Kernel::Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    TableWorkspace_const_sptr wsConst;
+    TableWorkspace_sptr wsNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        wsConst = manager.getValue<TableWorkspace_const_sptr>(wsName));
+    TS_ASSERT(wsConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsNonConst =
+                                 manager.getValue<TableWorkspace_sptr>(wsName));
+    TS_ASSERT(wsNonConst != NULL);
+    TS_ASSERT_EQUALS(wsConst, wsNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, wsName);
+    TableWorkspace_const_sptr wsCastConst;
+    TableWorkspace_sptr wsCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(wsCastConst = (TableWorkspace_const_sptr)val);
+    TS_ASSERT(wsCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsCastNonConst = (TableWorkspace_sptr)val);
+    TS_ASSERT(wsCastNonConst != NULL);
+    TS_ASSERT_EQUALS(wsCastConst, wsCastNonConst);
+  }
+
+  /**
+  * Test declaring an input ITableWorkspace and retrieving it as const_sptr
+  * or sptr
+  */
+  void testGetProperty_ITableWS_const_sptr() {
+    const std::string wsName = "InputWorkspace";
+    ITableWorkspace_sptr wsInput(new TableWorkspace());
+    PropertyManagerHelper manager;
+    manager.declareProperty(wsName, wsInput, Mantid::Kernel::Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    ITableWorkspace_const_sptr wsConst;
+    ITableWorkspace_sptr wsNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        wsConst = manager.getValue<ITableWorkspace_const_sptr>(wsName));
+    TS_ASSERT(wsConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(
+        wsNonConst = manager.getValue<ITableWorkspace_sptr>(wsName));
+    TS_ASSERT(wsNonConst != NULL);
+    TS_ASSERT_EQUALS(wsConst, wsNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, wsName);
+    ITableWorkspace_const_sptr wsCastConst;
+    ITableWorkspace_sptr wsCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(wsCastConst = (ITableWorkspace_const_sptr)val);
+    TS_ASSERT(wsCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsCastNonConst = (ITableWorkspace_sptr)val);
+    TS_ASSERT(wsCastNonConst != NULL);
+    TS_ASSERT_EQUALS(wsCastConst, wsCastNonConst);
+  }
 };
 
 #endif /*TESTTABLEWORKSPACE_*/
diff --git a/Framework/DataObjects/test/Workspace2DTest.h b/Framework/DataObjects/test/Workspace2DTest.h
index a0561b75fee9a953d52b9bb1b8a7e37766c36267..a4aed545520a0daa281988ae5ec88115b4b3ff77 100644
--- a/Framework/DataObjects/test/Workspace2DTest.h
+++ b/Framework/DataObjects/test/Workspace2DTest.h
@@ -9,6 +9,7 @@
 #include "MantidAPI/ISpectrum.h"
 #include "MantidAPI/SpectraAxis.h"
 #include "MantidKernel/CPUTimer.h"
+#include "PropertyManagerHelper.h"
 
 using namespace std;
 using namespace Mantid;
@@ -233,6 +234,39 @@ public:
     TS_ASSERT(spec);
     TS_ASSERT_THROWS_ANYTHING(spec = ws->getSpectrum(4));
   }
+
+  /**
+   * Test that a Workspace2D_sptr can be held as a property and
+   * retrieved as const or non-const sptr,
+   * and that the cast from TypedValue works properly
+   */
+  void testGetProperty_const_sptr() {
+    const std::string wsName = "InputWorkspace";
+    Workspace2D_sptr wsInput(new Workspace2D());
+    PropertyManagerHelper manager;
+    manager.declareProperty(wsName, wsInput, Mantid::Kernel::Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    Workspace2D_const_sptr wsConst;
+    Workspace2D_sptr wsNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        wsConst = manager.getValue<Workspace2D_const_sptr>(wsName));
+    TS_ASSERT(wsConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsNonConst =
+                                 manager.getValue<Workspace2D_sptr>(wsName));
+    TS_ASSERT(wsNonConst != NULL);
+    TS_ASSERT_EQUALS(wsConst, wsNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, wsName);
+    Workspace2D_const_sptr wsCastConst;
+    Workspace2D_sptr wsCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(wsCastConst = (Workspace2D_const_sptr)val);
+    TS_ASSERT(wsCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsCastNonConst = (Workspace2D_sptr)val);
+    TS_ASSERT(wsCastNonConst != NULL);
+    TS_ASSERT_EQUALS(wsCastConst, wsCastNonConst);
+  }
 };
 
 class Workspace2DTestPerformance : public CxxTest::TestSuite {
@@ -291,4 +325,5 @@ public:
               << std::endl;
   }
 };
+
 #endif
diff --git a/Framework/DataObjects/test/WorkspaceSingleValueTest.h b/Framework/DataObjects/test/WorkspaceSingleValueTest.h
index 89ff2e6f2ee9a6f7e9bc4760aa8d679caf7c5cfd..facddcc1d3fab004581f258269ebbcd8c2f704e9 100644
--- a/Framework/DataObjects/test/WorkspaceSingleValueTest.h
+++ b/Framework/DataObjects/test/WorkspaceSingleValueTest.h
@@ -7,8 +7,11 @@
 #include <cxxtest/TestSuite.h>
 
 #include "MantidDataObjects/WorkspaceSingleValue.h"
+#include "PropertyManagerHelper.h"
 
 using Mantid::DataObjects::WorkspaceSingleValue;
+using Mantid::DataObjects::WorkspaceSingleValue_const_sptr;
+using Mantid::DataObjects::WorkspaceSingleValue_sptr;
 
 class WorkspaceSingleValueTest : public CxxTest::TestSuite {
 
@@ -59,5 +62,38 @@ public:
     WorkspaceSingleValue ws;
     TS_ASSERT_EQUALS(0, ws.getNumDims());
   }
+
+  /**
+  * Test declaring an input WorkspaceSingleValue and retrieving it as const_sptr
+  * or sptr
+  */
+  void testGetProperty_const_sptr() {
+    const std::string wsName = "InputWorkspace";
+    WorkspaceSingleValue_sptr wsInput(new WorkspaceSingleValue());
+    PropertyManagerHelper manager;
+    manager.declareProperty(wsName, wsInput, Mantid::Kernel::Direction::Input);
+
+    // Check property can be obtained as const_sptr or sptr
+    WorkspaceSingleValue_const_sptr wsConst;
+    WorkspaceSingleValue_sptr wsNonConst;
+    TS_ASSERT_THROWS_NOTHING(
+        wsConst = manager.getValue<WorkspaceSingleValue_const_sptr>(wsName));
+    TS_ASSERT(wsConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(
+        wsNonConst = manager.getValue<WorkspaceSingleValue_sptr>(wsName));
+    TS_ASSERT(wsNonConst != NULL);
+    TS_ASSERT_EQUALS(wsConst, wsNonConst);
+
+    // Check TypedValue can be cast to const_sptr or to sptr
+    PropertyManagerHelper::TypedValue val(manager, wsName);
+    WorkspaceSingleValue_const_sptr wsCastConst;
+    WorkspaceSingleValue_sptr wsCastNonConst;
+    TS_ASSERT_THROWS_NOTHING(wsCastConst =
+                                 (WorkspaceSingleValue_const_sptr)val);
+    TS_ASSERT(wsCastConst != NULL);
+    TS_ASSERT_THROWS_NOTHING(wsCastNonConst = (WorkspaceSingleValue_sptr)val);
+    TS_ASSERT(wsCastNonConst != NULL);
+    TS_ASSERT_EQUALS(wsCastConst, wsCastNonConst);
+  }
 };
 #endif /*TESTWORKSPACESINGLEVALUE_*/
diff --git a/Framework/Kernel/inc/MantidKernel/IPropertyManager.h b/Framework/Kernel/inc/MantidKernel/IPropertyManager.h
index b606962bec3a857d1f5c869e14c2abb2d135464d..dbfaa5cab13978a8aa59957d67c9345a748b5b2c 100644
--- a/Framework/Kernel/inc/MantidKernel/IPropertyManager.h
+++ b/Framework/Kernel/inc/MantidKernel/IPropertyManager.h
@@ -403,6 +403,10 @@ protected:
     template <typename T> operator boost::shared_ptr<T>() {
       return pm.getValue<boost::shared_ptr<T>>(prop);
     }
+    /// explicit specialization for boost::shared_ptr to const T
+    template <typename T> operator boost::shared_ptr<const T>() {
+      return pm.getValue<boost::shared_ptr<T>>(prop);
+    }
     /// explicit version for Matrices
     template <typename T> operator Matrix<T>() {
       return pm.getValue<Matrix<T>>(prop);
diff --git a/Framework/Kernel/inc/MantidKernel/PropertyWithValue.h b/Framework/Kernel/inc/MantidKernel/PropertyWithValue.h
index 31fc3b40d41fac75c63508b65c528903995bbba5..cef85abbfab800bc889c85dfdc0bf9e5d0af86bb 100644
--- a/Framework/Kernel/inc/MantidKernel/PropertyWithValue.h
+++ b/Framework/Kernel/inc/MantidKernel/PropertyWithValue.h
@@ -258,6 +258,23 @@ inline void addingOperator(boost::shared_ptr<T> &,
   throw Exception::NotImplementedError(
       "PropertyWithValue.h: += operator not implemented for boost::shared_ptr");
 }
+
+template <typename T>
+inline std::vector<std::string>
+determineAllowedValues(const T &, const IValidator &validator) {
+  return validator.allowedValues();
+}
+
+template <>
+inline std::vector<std::string> determineAllowedValues(const OptionalBool &,
+                                                       const IValidator &) {
+  auto enumMap = OptionalBool::enumToStrMap();
+  std::vector<std::string> values;
+  for (auto it = enumMap.begin(); it != enumMap.end(); ++it) {
+    values.push_back(it->second);
+  }
+  return values;
+}
 }
 //------------------------------------------------------------------------------------------------
 // Now the PropertyWithValue class itself
@@ -496,7 +513,7 @@ public:
    * an empty vector.
    */
   virtual std::vector<std::string> allowedValues() const {
-    return m_validator->allowedValues();
+    return determineAllowedValues(m_value, *m_validator);
   }
 
   /**
diff --git a/Framework/Kernel/test/PropertyWithValueTest.h b/Framework/Kernel/test/PropertyWithValueTest.h
index 350f32b8b5b344c5a32db27f6107d7efe00419e4..5a2964b9ace4121dc35a5cc2eb02e0e5624dde33 100644
--- a/Framework/Kernel/test/PropertyWithValueTest.h
+++ b/Framework/Kernel/test/PropertyWithValueTest.h
@@ -377,6 +377,7 @@ public:
     TS_ASSERT(dProp->allowedValues().empty());
     TS_ASSERT(sProp->allowedValues().empty());
     TS_ASSERT(lProp->allowedValues().empty());
+    TS_ASSERT(!bProp->allowedValues().empty())
     // Tests using a ListValidator are below
   }
 
@@ -676,12 +677,24 @@ public:
   void test_optional_bool_to_setValue() {
 
     std::string input = OptionalBool::StrTrue;
-
     PropertyWithValue<OptionalBool> property("myproperty", OptionalBool::Unset,
                                              Direction::Input);
     property.setValue(input);
   }
 
+  void test_optional_bool_allowed_values() {
+    PropertyWithValue<OptionalBool> property("myproperty", OptionalBool::Unset,
+                                             Direction::Input);
+
+    auto values = property.allowedValues();
+    auto possibilities = OptionalBool::strToEmumMap();
+    TSM_ASSERT_EQUALS("3 states allowed", possibilities.size(), values.size());
+    for (auto it = values.begin(); it != values.end(); ++it) {
+      TSM_ASSERT("value not a known state",
+                 possibilities.find(*it) != possibilities.end());
+    }
+  }
+
 private:
   PropertyWithValue<int> *iProp;
   PropertyWithValue<double> *dProp;
diff --git a/Framework/MDAlgorithms/CMakeLists.txt b/Framework/MDAlgorithms/CMakeLists.txt
index 2eec1452b093e654068b3cc021bbcc891996cdc6..b4c629dc58f1b1d321ade803b3aa418d6a8c1fb1 100644
--- a/Framework/MDAlgorithms/CMakeLists.txt
+++ b/Framework/MDAlgorithms/CMakeLists.txt
@@ -3,6 +3,7 @@ set ( SRC_FILES
 	# Old TMP convertToMD code prepared for deprecation:
 	# src/CreateMDFitWorkspace.cpp
 	#end TMP
+    src/AccumulateMD.cpp
 	src/AndMD.cpp
 	src/BinMD.cpp
 	src/BinaryOperationMD.cpp
@@ -129,6 +130,7 @@ set ( SRC_FILES
 
 set ( INC_FILES
 	# inc/MantidMDAlgorithms/CreateMDFitWorkspace.h
+    inc/MantidMDAlgorithms/AccumulateMD.h
 	inc/MantidMDAlgorithms/AndMD.h
 	inc/MantidMDAlgorithms/BinMD.h
 	inc/MantidMDAlgorithms/BinaryOperationMD.h
@@ -254,6 +256,7 @@ set ( TEST_FILES
 	#
 	# these tests are as they test verify different parts of the CPR algorithms
 	#CreateMDFitWorkspaceTest.h
+    AccumulateMDTest.h
 	AndMDTest.h
 	BooleanBinaryOperationMDTest.h
 	BoxControllerSettingsAlgorithmTest.h
diff --git a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/AccumulateMD.h b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/AccumulateMD.h
new file mode 100644
index 0000000000000000000000000000000000000000..57137f029333165f0f81a51c7c1db1b52eb1e727
--- /dev/null
+++ b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/AccumulateMD.h
@@ -0,0 +1,113 @@
+#ifndef MANTID_MDALGORITHMS_ACCUMULATEMD_H_
+#define MANTID_MDALGORITHMS_ACCUMULATEMD_H_
+
+#include "MantidMDAlgorithms/DllConfig.h"
+#include "MantidKernel/System.h"
+#include "MantidAPI/DataProcessorAlgorithm.h"
+#include "MantidAPI/WorkspaceHistory.h"
+#include "MantidAPI/IMDEventWorkspace.h"
+#include <set>
+
+namespace {}
+
+namespace Mantid {
+namespace API {
+class IMDHistoWorkspace;
+}
+
+namespace MDAlgorithms {
+
+/// Reduce the vector of input data to only data files and workspaces which can
+/// be found
+std::string MANTID_MDALGORITHMS_DLL
+filterToExistingSources(std::vector<std::string> &input_data,
+                        std::vector<double> &psi, std::vector<double> &gl,
+                        std::vector<double> &gs, std::vector<double> &efix);
+
+/// Check if the named data source is an existing workspace or file
+bool MANTID_MDALGORITHMS_DLL dataExists(const std::string &data_name);
+
+/// Reduce the vector of input data to only data files and workspaces which are
+/// not found in the vector of data currently in the workspace
+std::string MANTID_MDALGORITHMS_DLL
+filterToNew(std::vector<std::string> &input_data,
+            std::vector<std::string> &current_data, std::vector<double> &psi,
+            std::vector<double> &gl, std::vector<double> &gs,
+            std::vector<double> &efix);
+
+/// Check if the named data source is in the vector of data currently in the
+/// workspace
+bool appearsInCurrentData(const std::string &input_data,
+                          std::vector<std::string> &current_data);
+
+/// Return a vector of the names of files and workspaces which have been
+/// previously added to the workspace
+std::vector<std::string>
+getHistoricalDataSources(const API::WorkspaceHistory &ws_history,
+                         const std::string &create_alg_name,
+                         const std::string &accumulate_alg_name);
+
+/// Extract names of data sources from workspace history and form a set of
+/// historical data sources
+void MANTID_MDALGORITHMS_DLL
+insertDataSources(const std::string &data_sources,
+                  std::set<std::string> &historical_data_sources);
+
+/// Test if a file with the given full path name exists
+bool fileExists(const std::string &filename);
+
+/// Pad vector of parameters to given length
+extern void MANTID_MDALGORITHMS_DLL
+padParameterVector(std::vector<double> &param_vector,
+                   const size_t grow_to_size);
+
+/** AccumulateMD : Algorithm for appending new data to a MDHistoWorkspace
+
+  Copyright &copy; 2015 ISIS Rutherford Appleton Laboratory, NScD Oak Ridge
+  National Laboratory & European Spallation Source
+
+  This file is part of Mantid.
+
+  Mantid is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 3 of the License, or
+  (at your option) any later version.
+
+  Mantid is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+  File change history is stored at: <https://github.com/mantidproject/mantid>
+  Code Documentation is available at: <http://doxygen.mantidproject.org>
+*/
+class DLLExport AccumulateMD : public API::DataProcessorAlgorithm {
+public:
+  AccumulateMD();
+  virtual ~AccumulateMD();
+
+  virtual const std::string name() const;
+  virtual int version() const;
+  virtual const std::string category() const;
+  virtual const std::string summary() const;
+
+private:
+  void init();
+  void exec();
+
+  /// Use the CreateMD algorithm to create an MD workspace
+  Mantid::API::IMDEventWorkspace_sptr createMDWorkspace(
+      const std::vector<std::string> &data_sources,
+      const std::vector<double> &psi, const std::vector<double> &gl,
+      const std::vector<double> &gs, const std::vector<double> &efix);
+
+  std::map<std::string, std::string> validateInputs();
+};
+
+} // namespace MDAlgorithms
+} // namespace Mantid
+
+#endif /* MANTID_MDALGORITHMS_ACCUMULATEMD_H_ */
diff --git a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/CreateMD.h b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/CreateMD.h
index 886a7bf21926418d6c2ac6a837fa0c0cd8ba1ad8..bef90ae36685a330d70eabf55c9b3bf02349dada 100644
--- a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/CreateMD.h
+++ b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/CreateMD.h
@@ -2,18 +2,21 @@
 #define MANTID_MDALGORITHMS_CREATEMD_H_
 
 #include "MantidMDAlgorithms/DllConfig.h"
-#include "MantidAPI/Algorithm.h"
+#include "MantidAPI/DataProcessorAlgorithm.h"
 #include "MantidDataObjects/MDEventWorkspace.h"
 namespace Mantid {
 namespace MDAlgorithms {
 
-void padParameterVector(std::vector<double> &param_vector,
-                        const unsigned long grow_to_size);
+void MANTID_MDALGORITHMS_DLL
+padParameterVector(std::vector<double> &param_vector,
+                   const size_t grow_to_size);
 
 bool any_given(const std::vector<std::vector<double>> &params);
 
 bool all_given(const std::vector<std::vector<double>> &params);
 
+extern bool dataExists(const std::string &data_name);
+
 /** CreateMD : This workflow algorithm creates MDWorkspaces in the Q3D, HKL
   frame using ConvertToMD
 
@@ -38,7 +41,7 @@ bool all_given(const std::vector<std::vector<double>> &params);
   File change history is stored at: <https://github.com/mantidproject/mantid>
   Code Documentation is available at: <http://doxygen.mantidproject.org>
 */
-class MANTID_MDALGORITHMS_DLL CreateMD : public API::Algorithm {
+class MANTID_MDALGORITHMS_DLL CreateMD : public API::DataProcessorAlgorithm {
 public:
   CreateMD();
   virtual ~CreateMD();
diff --git a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MaskMD.h b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MaskMD.h
index 1236616f67638c55c874ea309bb1f5804383c8e9..5959cff0c111e487924a9d91bc897afb94a0bc97 100644
--- a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MaskMD.h
+++ b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MaskMD.h
@@ -3,10 +3,23 @@
 
 #include "MantidKernel/System.h"
 #include "MantidAPI/Algorithm.h"
+#include "MantidMDAlgorithms/DllConfig.h"
 
 namespace Mantid {
 namespace MDAlgorithms {
 
+std::vector<std::string> MANTID_MDALGORITHMS_DLL
+splitByCommas(const std::string &names_string);
+
+std::vector<std::string> MANTID_MDALGORITHMS_DLL
+findNamesInBrackets(const std::string &names_string);
+
+std::vector<std::string> MANTID_MDALGORITHMS_DLL
+parseDimensionNames(const std::string &names_string);
+
+std::vector<std::string> MANTID_MDALGORITHMS_DLL
+removeBracketedNames(const std::string &names_string);
+
 /** MaskMD : Mask an MDWorkspace. Can provide complex masking shapes over an
   exisitng MDWorkspace. Operates on a MDWorkspace in-situ.
 
@@ -30,10 +43,11 @@ namespace MDAlgorithms {
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-  File change history is stored at: <https://github.com/mantidproject/mantid>
+  File change history is stored at:
+  <https://github.com/mantidproject/mantid>
   Code Documentation is available at: <http://doxygen.mantidproject.org>
 */
-class DLLExport MaskMD : public API::Algorithm {
+class MANTID_MDALGORITHMS_DLL MaskMD : public API::Algorithm {
 public:
   MaskMD();
   virtual ~MaskMD();
diff --git a/Framework/MDAlgorithms/src/AccumulateMD.cpp b/Framework/MDAlgorithms/src/AccumulateMD.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..3d5d6f705f6e406035d704069209c387e41491dd
--- /dev/null
+++ b/Framework/MDAlgorithms/src/AccumulateMD.cpp
@@ -0,0 +1,497 @@
+#include "MantidMDAlgorithms/AccumulateMD.h"
+#include "MantidAPI/FrameworkManager.h"
+#include "MantidKernel/ArrayProperty.h"
+#include "MantidKernel/ArrayBoundedValidator.h"
+#include "MantidKernel/CompositeValidator.h"
+#include "MantidKernel/ListValidator.h"
+#include "MantidKernel/MandatoryValidator.h"
+#include "MantidKernel/PropertyWithValue.h"
+#include "MantidAPI/FileFinder.h"
+#include "MantidAPI/HistoryView.h"
+#include "MantidDataObjects/MDHistoWorkspaceIterator.h"
+#include <Poco/File.h>
+
+using namespace Mantid::Kernel;
+using namespace Mantid::API;
+using namespace Mantid::DataObjects;
+
+namespace Mantid {
+namespace MDAlgorithms {
+
+/*
+ * Reduce the vector of input data to only data files and workspaces which can
+ * be found
+ * @param input_data :: Vector of input data sources
+ * @param psi :: Vector of goniometer angle psi containing a value for each data
+ * source
+ * @param gl :: Vector of goniometer anglegl containing a value for each data
+ * source
+ * @param gs :: Vector of goniometer angle gs containing a value for each data
+ * source
+ * @param efix :: Vector of data source energy values in meV
+ * @returns names of data sources which cannot be found
+*/
+std::string filterToExistingSources(std::vector<std::string> &input_data,
+                                    std::vector<double> &psi,
+                                    std::vector<double> &gl,
+                                    std::vector<double> &gs,
+                                    std::vector<double> &efix) {
+  std::ostringstream nonexistent;
+  for (size_t i = input_data.size(); i > 0; i--) {
+    if (!dataExists(input_data[i - 1])) {
+      nonexistent << input_data[i - 1] << ",";
+      input_data.erase(input_data.begin() + i - 1);
+      psi.erase(psi.begin() + i - 1);
+      gl.erase(gl.begin() + i - 1);
+      gs.erase(gs.begin() + i - 1);
+      efix.erase(efix.begin() + i - 1);
+    }
+  }
+  return nonexistent.str();
+}
+
+/*
+ * Return true if dataName is an existing workspace or file
+ * @param data_name :: Workspace name or file name
+ * @returns true if a workspace or file with given name exists
+*/
+bool dataExists(const std::string &data_name) {
+  const std::string filepath =
+      Mantid::API::FileFinder::Instance().getFullPath(data_name);
+  // Calls to the ADS in algorithms like this should ordinarily
+  // be avoided, unfortunately we have little choice in this case.
+  // If we gave FileFinder an absolute path it just returns it (whether or not
+  // the file exists) so we must also check the full path returned with
+  // fileExists()
+  return (AnalysisDataService::Instance().doesExist(data_name) ||
+          fileExists(filepath));
+}
+
+/*
+ * Test if a file with this full path exists
+ * @param filename :: full path of a file to test existence of
+ * @returns true if the file exists
+*/
+bool fileExists(const std::string &filename) {
+  if (filename.empty())
+    return false;
+  Poco::File test_file(filename);
+  return test_file.exists();
+}
+
+/*
+ * Remove anything from input_data which is already in current_data
+ * @param input_data :: Vector of input data sources
+ * @param current_data :: Vector of data sources previously appended to
+ * workspace
+ * @param psi :: Vector of goniometer angle psi containing a value for each data
+ * source
+ * @param gl :: Vector of goniometer anglegl containing a value for each data
+ * source
+ * @param gs :: Vector of goniometer angle gs containing a value for each data
+ * source
+ * @param efix :: Vector of data source energy values in meV
+ * @returns data sources which are already in the workspace
+*/
+std::string filterToNew(std::vector<std::string> &input_data,
+                        std::vector<std::string> &current_data,
+                        std::vector<double> &psi, std::vector<double> &gl,
+                        std::vector<double> &gs, std::vector<double> &efix) {
+  std::ostringstream old_sources;
+  for (size_t i = input_data.size(); i > 0; i--) {
+    if (appearsInCurrentData(input_data[i - 1], current_data)) {
+      old_sources << input_data[i - 1] << ",";
+      input_data.erase(input_data.begin() + i - 1);
+      psi.erase(psi.begin() + i - 1);
+      gl.erase(gl.begin() + i - 1);
+      gs.erase(gs.begin() + i - 1);
+      efix.erase(efix.begin() + i - 1);
+    }
+  }
+  return old_sources.str();
+}
+
+/*
+ * Check if the named data source is in the vector of data currently in the
+ * workspace
+ * @param data_source :: Name of a data source
+ * @param current_data :: Vector of data sources previously appended to
+ * workspace
+ * @returns true if the named data source appears in the vector of current data
+*/
+bool appearsInCurrentData(const std::string &data_source,
+                          std::vector<std::string> &current_data) {
+  for (auto reverse_iter = current_data.rbegin();
+       reverse_iter != current_data.rend(); ++reverse_iter) {
+    if (data_source == *reverse_iter) {
+      return true;
+    }
+  }
+  return false;
+}
+
+/*
+ * Return a vector of the names of files and workspaces which have been
+ * previously added to the workspace
+ * @param ws_history :: History of the workspace
+ * @returns a vector of the names of data_sources which have previously been
+ * appended to the workspace
+*/
+std::vector<std::string>
+getHistoricalDataSources(const WorkspaceHistory &ws_history,
+                         const std::string &create_alg_name,
+                         const std::string &accumulate_alg_name) {
+  // Using a set so we only insert unique names
+  std::set<std::string> historical_data_sources;
+
+  // Get previously added data sources from DataSources property of the original
+  // call of CreateMD and any subsequent calls of AccumulateMD
+  auto view = ws_history.createView();
+  view->unrollAll();
+  const std::vector<HistoryItem> history_items = view->getAlgorithmsList();
+  for (auto iter = history_items.begin(); iter != history_items.end(); ++iter) {
+    auto alg_history = iter->getAlgorithmHistory();
+    if (alg_history->name() == create_alg_name ||
+        alg_history->name() == accumulate_alg_name) {
+      auto props = alg_history->getProperties();
+      for (auto prop_iter = props.begin(); prop_iter != props.end();
+           ++prop_iter) {
+        PropertyHistory_const_sptr prop_history = *prop_iter;
+        if (prop_history->name() == "DataSources") {
+          insertDataSources(prop_history->value(), historical_data_sources);
+        }
+      }
+    }
+  }
+
+  std::vector<std::string> result(historical_data_sources.begin(),
+                                  historical_data_sources.end());
+  return result;
+}
+
+/*
+ * Split string of data sources from workspace history and insert them into
+ * complete set of historical data sources
+ * @param data_sources :: string from workspace history containing list of data
+ * sources
+ * @param historical_data_sources :: set of data sources
+*/
+void insertDataSources(const std::string &data_sources,
+                       std::set<std::string> &historical_data_sources) {
+  // Split the property string into a vector of data sources
+  std::vector<std::string> data_split;
+  boost::split(data_split, data_sources, boost::is_any_of(","));
+
+  // Trim any whitespace from ends of each data source string
+  std::for_each(
+      data_split.begin(), data_split.end(),
+      boost::bind(boost::algorithm::trim<std::string>, _1, std::locale()));
+
+  // Insert each data source into our complete set of historical data sources
+  for (auto it = data_split.begin(); it != data_split.end(); ++it) {
+    historical_data_sources.insert(*it);
+  }
+}
+
+// Register the algorithm into the AlgorithmFactory
+DECLARE_ALGORITHM(AccumulateMD)
+
+/*
+ * Constructor
+*/
+AccumulateMD::AccumulateMD() {}
+
+/*
+ * Destructor
+*/
+AccumulateMD::~AccumulateMD() {}
+
+/// Algorithms name for identification. @see Algorithm::name
+const std::string AccumulateMD::name() const { return "AccumulateMD"; }
+
+/// Algorithm's version for identification. @see Algorithm::version
+int AccumulateMD::version() const { return 1; }
+
+/// Algorithm's category for identification. @see Algorithm::category
+const std::string AccumulateMD::category() const { return "MDAlgorithms"; }
+
+/// Algorithm's summary for use in the GUI and help. @see Algorithm::summary
+const std::string AccumulateMD::summary() const {
+  return "Add new data to an existing MDHistoWorkspace";
+}
+
+/*
+ * Initialize the algorithm's properties.
+*/
+void AccumulateMD::init() {
+  declareProperty(new WorkspaceProperty<IMDEventWorkspace>("InputWorkspace", "",
+                                                           Direction::Input),
+                  "An input MDEventWorkspace to append data to.");
+
+  declareProperty(new WorkspaceProperty<IMDEventWorkspace>(
+                      "OutputWorkspace", "", Direction::Output),
+                  "MDEventWorkspace with new data appended.");
+
+  declareProperty(
+      new ArrayProperty<std::string>(
+          "DataSources",
+          boost::make_shared<MandatoryValidator<std::vector<std::string>>>(),
+          Direction::Input),
+      "Input workspaces to process, or filenames to load and process");
+
+  declareProperty(new ArrayProperty<double>("EFix", Direction::Input),
+                  "datasource energy values in meV");
+
+  std::vector<std::string> e_mode_options;
+  e_mode_options.push_back("Elastic");
+  e_mode_options.push_back("Direct");
+  e_mode_options.push_back("Indirect");
+
+  declareProperty("Emode", "Direct",
+                  boost::make_shared<StringListValidator>(e_mode_options),
+                  "Analysis mode ['Elastic', 'Direct', 'Indirect'].");
+
+  declareProperty(
+      new ArrayProperty<double>(
+          "Alatt",
+          boost::make_shared<MandatoryValidator<std::vector<double>>>(),
+          Direction::Input),
+      "Lattice parameters");
+
+  declareProperty(
+      new ArrayProperty<double>(
+          "Angdeg",
+          boost::make_shared<MandatoryValidator<std::vector<double>>>(),
+          Direction::Input),
+      "Lattice angles");
+
+  declareProperty(
+      new ArrayProperty<double>(
+          "u", boost::make_shared<MandatoryValidator<std::vector<double>>>(),
+          Direction::Input),
+      "Lattice vector parallel to neutron beam");
+
+  declareProperty(
+      new ArrayProperty<double>(
+          "v", boost::make_shared<MandatoryValidator<std::vector<double>>>(),
+          Direction::Input),
+      "Lattice vector perpendicular to neutron beam in the horizontal plane");
+
+  declareProperty(new ArrayProperty<double>("Psi", Direction::Input),
+                  "Psi rotation in degrees. Optional or one entry per run.");
+
+  declareProperty(new ArrayProperty<double>("Gl", Direction::Input),
+                  "gl rotation in degrees. Optional or one entry per run.");
+
+  declareProperty(new ArrayProperty<double>("Gs", Direction::Input),
+                  "gs rotation in degrees. Optional or one entry per run.");
+
+  declareProperty(
+      new PropertyWithValue<bool>("InPlace", false, Direction::Input),
+      "Execute conversions to MD and Merge in one-step. Less "
+      "memory overhead.");
+
+  declareProperty(new PropertyWithValue<bool>("Clean", false, Direction::Input),
+                  "Create workspace from fresh rather than appending to "
+                  "existing workspace data.");
+}
+
+/*
+ * Execute the algorithm.
+*/
+void AccumulateMD::exec() {
+
+  IMDEventWorkspace_sptr input_ws = this->getProperty("InputWorkspace");
+  std::vector<std::string> input_data = this->getProperty("DataSources");
+
+  std::vector<double> psi = this->getProperty("Psi");
+  padParameterVector(psi, input_data.size());
+  std::vector<double> gl = this->getProperty("Gl");
+  padParameterVector(gl, input_data.size());
+  std::vector<double> gs = this->getProperty("Gs");
+  padParameterVector(gs, input_data.size());
+  std::vector<double> efix = this->getProperty("EFix");
+  padParameterVector(efix, input_data.size());
+
+  // Create progress reporting object
+  // Progress prog = Progress(this, 0.0, 1.0, 2);
+  this->progress(0);
+
+  const std::string nonexistent =
+      filterToExistingSources(input_data, psi, gl, gs, efix);
+  g_log.notice() << "These data sources were not found: " << nonexistent
+                 << std::endl;
+
+  // If we can't find any data, we can't do anything
+  if (input_data.empty()) {
+    g_log.warning() << "No data found matching input in " << this->name()
+                    << std::endl;
+    this->setProperty("OutputWorkspace", input_ws);
+    return; // POSSIBLE EXIT POINT
+  }
+  this->interruption_point();
+
+  // If Clean=True then just call CreateMD to create a fresh workspace and
+  // delete the old one, note this means we don't retain workspace history...
+  bool do_clean = this->getProperty("Clean");
+  if (do_clean) {
+    this->progress(0.5);
+    IMDEventWorkspace_sptr out_ws =
+        createMDWorkspace(input_data, psi, gl, gs, efix);
+    this->setProperty("OutputWorkspace", out_ws);
+    g_log.notice() << this->name() << " succesfully created a clean workspace"
+                   << std::endl;
+    this->progress(1.0);
+    return; // POSSIBLE EXIT POINT
+  }
+  this->interruption_point();
+
+  // Find what files and workspaces have already been included in the workspace.
+  const WorkspaceHistory ws_history = input_ws->getHistory();
+  // Get name from algorithm like this so that an error is thrown if the
+  // name of the algorithm is changed
+  Algorithm_sptr create_alg = createChildAlgorithm("CreateMD");
+  std::vector<std::string> current_data =
+      getHistoricalDataSources(ws_history, create_alg->name(), this->name());
+
+  // If there's no new data, we don't have anything to do
+  const std::string old_sources =
+      filterToNew(input_data, current_data, psi, gl, gs, efix);
+  g_log.notice() << "Data from these sources are already in the workspace: "
+                 << old_sources << std::endl;
+
+  if (input_data.empty()) {
+    g_log.notice() << "No new data to append to workspace in " << this->name()
+                   << std::endl;
+    this->setProperty("OutputWorkspace", input_ws);
+    return; // POSSIBLE EXIT POINT
+  }
+  this->interruption_point();
+
+  // If we reach here then new data exists to append to the input workspace
+  // Use CreateMD with the new data to make a temp workspace
+  // Merge the temp workspace with the input workspace using MergeMD
+  IMDEventWorkspace_sptr tmp_ws =
+      createMDWorkspace(input_data, psi, gl, gs, efix);
+  this->interruption_point();
+  this->progress(0.5); // Report as CreateMD is complete
+
+  const std::string temp_ws_name = "TEMP_WORKSPACE_ACCUMULATEMD";
+  // Currently have to use ADS here as list of workspaces can only be passed as
+  // a list of workspace names as a string
+  AnalysisDataService::Instance().add(temp_ws_name, tmp_ws);
+  std::string ws_names_to_merge = input_ws->getName();
+  ws_names_to_merge.append(",");
+  ws_names_to_merge.append(temp_ws_name);
+
+  Algorithm_sptr merge_alg = createChildAlgorithm("MergeMD");
+  merge_alg->setProperty("InputWorkspaces", ws_names_to_merge);
+  merge_alg->executeAsChildAlg();
+
+  API::IMDEventWorkspace_sptr out_ws =
+      merge_alg->getProperty("OutputWorkspace");
+
+  this->setProperty("OutputWorkspace", out_ws);
+  g_log.notice() << this->name() << " successfully appended data" << std::endl;
+
+  this->progress(1.0); // Report as MergeMD is complete
+
+  // Clean up temporary workspace
+  AnalysisDataService::Instance().remove(temp_ws_name);
+}
+
+/*
+ * Use the CreateMD algorithm to create an MD workspace
+ * @param data_sources :: Vector of input data sources
+ * @param psi :: Vector of goniometer angle psi containing a value for each data
+ * source
+ * @param gl :: Vector of goniometer anglegl containing a value for each data
+ * source
+ * @param gs :: Vector of goniometer angle gs containing a value for each data
+ * source
+ * @param efix :: Vector of data source energy values in meV
+ * @returns the newly created workspace
+*/
+IMDEventWorkspace_sptr AccumulateMD::createMDWorkspace(
+    const std::vector<std::string> &data_sources,
+    const std::vector<double> &psi, const std::vector<double> &gl,
+    const std::vector<double> &gs, const std::vector<double> &efix) {
+
+  Algorithm_sptr create_alg = createChildAlgorithm("CreateMD");
+
+  create_alg->setProperty("DataSources", data_sources);
+  create_alg->setProperty("EFix", efix);
+  create_alg->setPropertyValue("EMode", this->getPropertyValue("EMode"));
+  create_alg->setPropertyValue("Alatt", this->getPropertyValue("Alatt"));
+  create_alg->setPropertyValue("Angdeg", this->getPropertyValue("Angdeg"));
+  create_alg->setPropertyValue("u", this->getPropertyValue("u"));
+  create_alg->setPropertyValue("v", this->getPropertyValue("v"));
+  create_alg->setProperty("Psi", psi);
+  create_alg->setProperty("Gl", gl);
+  create_alg->setProperty("Gs", gs);
+  create_alg->setPropertyValue("InPlace", this->getPropertyValue("InPlace"));
+  create_alg->executeAsChildAlg();
+
+  return create_alg->getProperty("OutputWorkspace");
+}
+
+/*
+ * Validate the input properties
+ * @returns a map of properties names with errors
+ */
+std::map<std::string, std::string> AccumulateMD::validateInputs() {
+  // Create the map
+  std::map<std::string, std::string> validation_output;
+
+  // Get properties to validate
+  const std::vector<std::string> data_sources =
+      this->getProperty("DataSources");
+  const std::vector<double> u = this->getProperty("u");
+  const std::vector<double> v = this->getProperty("v");
+  const std::vector<double> alatt = this->getProperty("Alatt");
+  const std::vector<double> angdeg = this->getProperty("Angdeg");
+  const std::vector<double> psi = this->getProperty("Psi");
+  const std::vector<double> gl = this->getProperty("Gl");
+  const std::vector<double> gs = this->getProperty("Gs");
+  const std::vector<double> efix = this->getProperty("Efix");
+
+  const size_t ws_entries = data_sources.size();
+
+  if (u.size() < 3) {
+    validation_output["u"] = "u must have 3 components";
+  }
+  if (v.size() < 3) {
+    validation_output["v"] = "v must have 3 components";
+  }
+  if (alatt.size() < 3) {
+    validation_output["Alatt"] = "Lattice parameters must have 3 components";
+  }
+  if (angdeg.size() < 3) {
+    validation_output["Angdeg"] = "Angle must have 3 components";
+  }
+  if (!psi.empty() && psi.size() != ws_entries) {
+    validation_output["Psi"] = "If Psi is given an entry "
+                               "should be provided for "
+                               "every input datasource";
+  }
+  if (!gl.empty() && gl.size() != ws_entries) {
+    validation_output["Gl"] = "If Gl is given an entry "
+                              "should be provided for "
+                              "every input datasource";
+  }
+  if (!gs.empty() && gs.size() != ws_entries) {
+    validation_output["Gs"] = "If Gs is given an entry "
+                              "should be provided for "
+                              "every input datasource";
+  }
+  if (efix.size() > 1 && efix.size() != ws_entries) {
+    validation_output["EFix"] =
+        "Either specify a single EFix value, or as many "
+        "as there are input datasources";
+  }
+
+  return validation_output;
+}
+
+} // namespace MDAlgorithms
+} // namespace Mantid
diff --git a/Framework/MDAlgorithms/src/CreateMD.cpp b/Framework/MDAlgorithms/src/CreateMD.cpp
index 238316d95a8825de713177566ed3e2d381275d1b..6e7609674984b529585c51c8b15a98b7a427be6d 100644
--- a/Framework/MDAlgorithms/src/CreateMD.cpp
+++ b/Framework/MDAlgorithms/src/CreateMD.cpp
@@ -404,7 +404,7 @@ CreateMD::merge_runs(const std::vector<std::string> &to_merge) {
  *
  * @param input_workspace :: datasource workspace
  * @param emode :: analysis mode "Elastic", "Direct" or "Indirect"
- * @param efix :: datasource engery values in meV
+ * @param efix :: datasource energy values in meV
  * @param psi :: goniometer rotation in degrees
  * @param gl :: goniometer rotation in degrees
  * @param gs :: goniometer rotation in degrees
@@ -482,17 +482,25 @@ std::map<std::string, std::string> CreateMD::validateInputs() {
   const std::vector<double> efix = this->getProperty("Efix");
 
   const size_t ws_entries = data_sources.size();
+  for (const auto &source : data_sources) {
+    if (!dataExists(source)) {
+      validation_output["DataSources"] =
+          "All given data sources must exist. "
+          "For files, ensure the path is added to "
+          "Mantid's 'Data Search Directories'";
+    }
+  }
 
-  if (u.size() < 3) {
+  if (u.size() != 3) {
     validation_output["u"] = "u must have 3 components";
   }
-  if (v.size() < 3) {
+  if (v.size() != 3) {
     validation_output["v"] = "v must have 3 components";
   }
-  if (alatt.size() < 3) {
+  if (alatt.size() != 3) {
     validation_output["Alatt"] = "Lattice parameters must have 3 components";
   }
-  if (angdeg.size() < 3) {
+  if (angdeg.size() != 3) {
     validation_output["Angdeg"] = "Angle must have 3 components";
   }
   if (!psi.empty() && psi.size() != ws_entries) {
diff --git a/Framework/MDAlgorithms/src/MaskMD.cpp b/Framework/MDAlgorithms/src/MaskMD.cpp
index 019e3e10b7bad3144fcdd0b22d683fe73408b129..243a9cacfe55b13d6a12feefb46975439afcc48a 100644
--- a/Framework/MDAlgorithms/src/MaskMD.cpp
+++ b/Framework/MDAlgorithms/src/MaskMD.cpp
@@ -4,14 +4,106 @@
 #include "MantidKernel/ArrayProperty.h"
 #include "MantidKernel/MandatoryValidator.h"
 #include <algorithm>
+#include <boost/algorithm/string.hpp>
+#include <boost/regex.hpp>
 
 using namespace Mantid::Kernel;
 using namespace Mantid::API;
 using namespace Mantid::Geometry;
+using boost::regex;
 
 namespace Mantid {
 namespace MDAlgorithms {
 
+static const std::string REGEX_STR = "\\[[^\\[\\]]*\\]";
+
+/*
+ * Split the input string on commas and trim leading and trailing whitespace
+ * from the results
+ */
+std::vector<std::string> splitByCommas(const std::string &names_string) {
+  std::vector<std::string> names_split_by_commas;
+  boost::split(names_split_by_commas, names_string, boost::is_any_of(","));
+
+  // Remove leading/trailing whitespace from potential dimension name
+  for (auto &name : names_split_by_commas) {
+    boost::trim(name);
+  }
+  return names_split_by_commas;
+}
+
+/*
+ * Return a vector of only those names from the input string which are within
+ * brackets
+ */
+std::vector<std::string> findNamesInBrackets(const std::string &names_string) {
+  std::vector<std::string> names_result;
+
+  regex re(REGEX_STR);
+  boost::sregex_token_iterator iter(names_string.begin(), names_string.end(),
+                                    re, 0);
+  boost::sregex_token_iterator end;
+  std::ostringstream ss;
+  for (; iter != end; ++iter) {
+    ss.str(std::string());
+    ss << *iter;
+    names_result.push_back(ss.str());
+  }
+
+  return names_result;
+}
+
+/*
+ * Return a vector of names from the string, but with names in brackets reduced
+ * to '[]'
+ */
+std::vector<std::string> removeBracketedNames(const std::string &names_string) {
+  regex re(REGEX_STR);
+  const std::string names_string_reduced =
+      regex_replace(names_string, re, "[]");
+
+  std::vector<std::string> remainder_split =
+      splitByCommas(names_string_reduced);
+
+  return remainder_split;
+}
+
+/*
+ * The list of dimension names often looks like "[H,0,0],[0,K,0]" with "[H,0,0]"
+ * being the first dimension but getProperty returns a vector of
+ * the string split on every comma
+ * This function parses the string, and does not split on commas within brackets
+ */
+std::vector<std::string> parseDimensionNames(const std::string &names_string) {
+
+  // If there are no brackets then simply split the string on commas
+  if (!boost::contains(names_string, "[")) {
+    // Split input string by commas
+    return splitByCommas(names_string);
+  }
+
+  std::vector<std::string> names_result = findNamesInBrackets(names_string);
+  std::vector<std::string> remainder_split = removeBracketedNames(names_string);
+
+  // Insert these into results vector if they are not "[]"
+  // if they are "[]" then skip a position in the vector instead
+  // This preserves the original order of the names,
+  // it is also inefficient, but the name list is expected to be short
+  size_t names_position = 0;
+  auto begin_it = names_result.begin();
+  for (std::string name : remainder_split) {
+    if (name != "[]") {
+      if (names_position == names_result.size()) {
+        names_result.push_back(name);
+      } else {
+        names_result.insert(begin_it + names_position, name);
+      }
+    }
+    ++names_position;
+  }
+  return names_result;
+}
+
 // Register the algorithm into the AlgorithmFactory
 DECLARE_ALGORITHM(MaskMD)
 
@@ -21,7 +113,7 @@ struct InputArgument {
   size_t index;
 };
 
-/// Comparitor to allow sorting by dimension index.
+/// Comparator to allow sorting by dimension index.
 struct LessThanIndex
     : std::binary_function<InputArgument, InputArgument, bool> {
   bool operator()(const InputArgument &a, const InputArgument &b) const {
@@ -110,9 +202,19 @@ size_t tryFetchDimensionIndex(Mantid::API::IMDWorkspace_sptr ws,
  */
 void MaskMD::exec() {
   IMDWorkspace_sptr ws = getProperty("Workspace");
-  std::vector<std::string> dimensions = getProperty("Dimensions");
+  std::string dimensions_string = getPropertyValue("Dimensions");
   std::vector<double> extents = getProperty("Extents");
 
+  // Dimension names may contain brackets with commas (i.e. [H,0,0])
+  // so getProperty would return an incorrect vector of names
+  // instead get the string and parse it here
+  std::vector<std::string> dimensions = parseDimensionNames(dimensions_string);
+  // Report what dimension names were found
+  g_log.notice() << "Dimension names parsed as: " << std::endl;
+  for (const auto &name : dimensions) {
+    g_log.notice() << name << std::endl;
+  }
+
   size_t nDims = ws->getNumDims();
   size_t nDimensionIds = dimensions.size();
 
@@ -169,9 +271,9 @@ void MaskMD::exec() {
     }
 
     // Sort all the inputs by the dimension index. Without this it will not be
-    // possible to construct the MDImplicit function propertly.
-    LessThanIndex comparitor;
-    std::sort(arguments.begin(), arguments.end(), comparitor);
+    // possible to construct the MDImplicit function property.
+    LessThanIndex comparator;
+    std::sort(arguments.begin(), arguments.end(), comparator);
 
     // Create inputs for a box implicit function
     VMD mins(nDims);
diff --git a/Framework/MDAlgorithms/test/AccumulateMDTest.h b/Framework/MDAlgorithms/test/AccumulateMDTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..0f376cfe04a82ddaa38ffb6985f2c842464bd41e
--- /dev/null
+++ b/Framework/MDAlgorithms/test/AccumulateMDTest.h
@@ -0,0 +1,365 @@
+#ifndef MANTID_MDALGORITHMS_ACCUMULATEMDTEST_H_
+#define MANTID_MDALGORITHMS_ACCUMULATEMDTEST_H_
+
+#include <cxxtest/TestSuite.h>
+#include "MantidMDAlgorithms/AccumulateMD.h"
+#include "MantidTestHelpers/WorkspaceCreationHelper.h"
+#include "MantidTestHelpers/MDEventsTestHelper.h"
+#include "MantidKernel/ConfigService.h"
+#include "MantidAPI/AlgorithmManager.h"
+#include "MantidAPI/IMDEventWorkspace.h"
+#include <Poco/Path.h>
+#include <Poco/File.h>
+
+using Mantid::MDAlgorithms::AccumulateMD;
+using namespace Mantid::API;
+using namespace Mantid::DataObjects;
+
+using Mantid::DataObjects::MDEventsTestHelper::makeAnyMDEW;
+
+class AccumulateMDTest : public CxxTest::TestSuite {
+public:
+  // This pair of boilerplate methods prevent the suite being created statically
+  // This means the constructor isn't called when running other tests
+  static AccumulateMDTest *createSuite() { return new AccumulateMDTest(); }
+
+  static void destroySuite(AccumulateMDTest *suite) { delete suite; }
+
+  void test_Init() {
+    AccumulateMD alg;
+    TS_ASSERT_THROWS_NOTHING(alg.initialize());
+  }
+
+  void test_pad_parameter_vector_empty() {
+    std::vector<double> test_param_vector;
+    size_t grow_to = 8;
+    Mantid::MDAlgorithms::padParameterVector(test_param_vector, grow_to);
+
+    TS_ASSERT_EQUALS(test_param_vector.size(), 8);
+    TS_ASSERT_EQUALS(test_param_vector[4], 0.0);
+  }
+
+  void test_pad_parameter_vector_values() {
+    std::vector<double> test_param_vector(1, 3.7);
+    size_t grow_to = 8;
+    Mantid::MDAlgorithms::padParameterVector(test_param_vector, grow_to);
+
+    TS_ASSERT_EQUALS(test_param_vector.size(), 8);
+    TS_ASSERT_EQUALS(test_param_vector[4], 3.7);
+  }
+
+  void test_filter_to_existing_sources_file_nonexist() {
+    // Create vector of data_sources to filter
+    std::vector<std::string> data_sources;
+
+    // Create vector for other parameters
+    std::vector<double> psi(1, 0.0);
+    std::vector<double> gl(1, 0.0);
+    std::vector<double> gs(1, 0.0);
+    std::vector<double> efix(1, 0.0);
+
+    // Add absolute path to a file which doesn't exist
+    Poco::Path filepath =
+        Poco::Path(Mantid::Kernel::ConfigService::Instance().getTempDir(),
+                   "ACCUMULATEMDTEST_NONEXISTENTFILE");
+    data_sources.push_back(filepath.toString());
+
+    Mantid::MDAlgorithms::filterToExistingSources(data_sources, psi, gl, gs,
+                                                  efix);
+
+    TS_ASSERT(data_sources.empty());
+  }
+
+  void test_filter_to_existing_sources_workspace_nonexist() {
+    // Create vector of data_sources to filter
+    std::vector<std::string> data_sources;
+
+    // Create vector for other parameters
+    std::vector<double> psi(1, 0.0);
+    std::vector<double> gl(1, 0.0);
+    std::vector<double> gs(1, 0.0);
+    std::vector<double> efix(1, 0.0);
+
+    data_sources.push_back("ACCUMULATEMDTEST_NONEXISTENTWORKSPACE");
+
+    Mantid::MDAlgorithms::filterToExistingSources(data_sources, psi, gl, gs,
+                                                  efix);
+
+    TS_ASSERT(data_sources.empty());
+  }
+
+  void test_filter_to_existing_sources_workspace_exist() {
+    // Create vector of data_sources to filter
+    std::vector<std::string> data_sources;
+
+    // Create vector for other parameters
+    std::vector<double> psi(1, 0.0);
+    std::vector<double> gl(1, 0.0);
+    std::vector<double> gs(1, 0.0);
+    std::vector<double> efix(1, 0.0);
+
+    // Create a cheap workspace
+    std::string ws_name = "ACCUMULATEMDTEST_EXISTENTWORKSPACE";
+    auto bkg_ws = WorkspaceCreationHelper::Create1DWorkspaceRand(1);
+    // add to ADS (no choice but to use ADS here)
+    AnalysisDataService::Instance().add(ws_name, bkg_ws);
+
+    data_sources.push_back(ws_name);
+
+    Mantid::MDAlgorithms::filterToExistingSources(data_sources, psi, gl, gs,
+                                                  efix);
+
+    TS_ASSERT(!data_sources.empty());
+
+    // Remove workspace from the data service.
+    AnalysisDataService::Instance().remove(ws_name);
+  }
+
+  void test_filter_to_existing_sources_file_exist() {
+    // Create vector of data_sources to filter
+    std::vector<std::string> data_sources;
+
+    // Create vector for other parameters
+    std::vector<double> psi(1, 0.0);
+    std::vector<double> gl(1, 0.0);
+    std::vector<double> gs(1, 0.0);
+    std::vector<double> efix(1, 0.0);
+
+    // Create a temporary file to find
+    Poco::Path filepath =
+        Poco::Path(Mantid::Kernel::ConfigService::Instance().getTempDir(),
+                   "ACCUMULATEMDTEST_EXISTENTFILE");
+    Poco::File existent_file(filepath);
+    existent_file.createFile();
+    data_sources.push_back(filepath.toString());
+
+    Mantid::MDAlgorithms::filterToExistingSources(data_sources, psi, gl, gs,
+                                                  efix);
+
+    TS_ASSERT(!data_sources.empty());
+
+    // Remove the temporary file
+    existent_file.remove();
+  }
+
+  void test_filter_to_new_none_new() {
+    std::vector<std::string> input_data;
+    input_data.push_back("test1");
+    input_data.push_back("test2");
+    input_data.push_back("test3");
+    std::vector<std::string> current_data = input_data;
+
+    // Create vector for other parameters
+    std::vector<double> psi(3, 0.0);
+    std::vector<double> gl(3, 0.0);
+    std::vector<double> gs(3, 0.0);
+    std::vector<double> efix(3, 0.0);
+
+    Mantid::MDAlgorithms::filterToNew(input_data, current_data, psi, gl, gs,
+                                      efix);
+
+    // Two input vectors were identical, so we should get an empty vector back
+    TS_ASSERT(input_data.empty());
+
+    // Parameter vectors should also have been emptied
+    TS_ASSERT(psi.empty());
+    TS_ASSERT(gl.empty());
+    TS_ASSERT(gs.empty());
+    TS_ASSERT(efix.empty());
+  }
+
+  void test_filter_to_new() {
+    std::vector<std::string> input_data;
+    input_data.push_back("test1");
+    input_data.push_back("test2");
+    input_data.push_back("test3");
+    input_data.push_back("test4");
+    input_data.push_back("test5");
+
+    std::vector<std::string> current_data;
+    current_data.push_back("test1");
+    current_data.push_back("test3");
+    current_data.push_back("test4");
+
+    // Create vector for other parameters
+    std::vector<double> psi(5, 0.0);
+    std::vector<double> gl(5, 0.0);
+    std::vector<double> gs(5, 0.0);
+    std::vector<double> efix(5, 0.0);
+
+    Mantid::MDAlgorithms::filterToNew(input_data, current_data, psi, gl, gs,
+                                      efix);
+
+    // test2 and test5 is new data (it is in input_data but not current_data)
+    // and so should be returned in the vector
+    TS_ASSERT_EQUALS(input_data[0], "test2");
+    TS_ASSERT_EQUALS(input_data[1], "test5");
+
+    // Parameter vectors should have been reduced to the same size
+    TS_ASSERT_EQUALS(psi.size(), input_data.size());
+    TS_ASSERT_EQUALS(gl.size(), input_data.size());
+    TS_ASSERT_EQUALS(gs.size(), input_data.size());
+    TS_ASSERT_EQUALS(efix.size(), input_data.size());
+  }
+
+  void test_insert_data_sources() {
+    std::string data_sources = "test1,test2,test3";
+    std::set<std::string> data_sources_set;
+    Mantid::MDAlgorithms::insertDataSources(data_sources, data_sources_set);
+
+    // Check set contains "test1", "test2" and "test3"
+    std::set<std::string>::iterator iter;
+    iter = data_sources_set.find("test1");
+    TS_ASSERT(iter != data_sources_set.end());
+
+    iter = data_sources_set.find("test2");
+    TS_ASSERT(iter != data_sources_set.end());
+
+    iter = data_sources_set.find("test3");
+    TS_ASSERT(iter != data_sources_set.end());
+  }
+
+  void test_insert_data_sources_with_whitespace() {
+    std::string data_sources = " test1,test2 , test3";
+    std::set<std::string> data_sources_set;
+    Mantid::MDAlgorithms::insertDataSources(data_sources, data_sources_set);
+
+    // Check set contains "test1", "test2" and "test3"
+    std::set<std::string>::iterator iter;
+    iter = data_sources_set.find("test1");
+    TS_ASSERT(iter != data_sources_set.end());
+
+    iter = data_sources_set.find("test2");
+    TS_ASSERT(iter != data_sources_set.end());
+
+    iter = data_sources_set.find("test3");
+    TS_ASSERT(iter != data_sources_set.end());
+  }
+
+  void test_algorithm_success_append_data() {
+
+    auto sim_alg = Mantid::API::AlgorithmManager::Instance().create(
+        "CreateSimulationWorkspace");
+    sim_alg->initialize();
+    sim_alg->setPropertyValue("Instrument", "MAR");
+    sim_alg->setPropertyValue("BinParams", "-3,1,3");
+    sim_alg->setPropertyValue("UnitX", "DeltaE");
+    sim_alg->setPropertyValue("OutputWorkspace", "data_source_1");
+    sim_alg->execute();
+
+    sim_alg->setPropertyValue("OutputWorkspace", "data_source_2");
+    sim_alg->execute();
+
+    auto log_alg =
+        Mantid::API::AlgorithmManager::Instance().create("AddSampleLog");
+    log_alg->initialize();
+    log_alg->setProperty("Workspace", "data_source_1");
+    log_alg->setPropertyValue("LogName", "Ei");
+    log_alg->setPropertyValue("LogText", "3.0");
+    log_alg->setPropertyValue("LogType", "Number");
+    log_alg->execute();
+
+    log_alg->setProperty("Workspace", "data_source_2");
+    log_alg->execute();
+
+    auto create_alg =
+        Mantid::API::AlgorithmManager::Instance().create("CreateMD");
+    create_alg->setRethrows(true);
+    create_alg->initialize();
+    create_alg->setPropertyValue("OutputWorkspace", "md_sample_workspace");
+    create_alg->setPropertyValue("DataSources", "data_source_1");
+    create_alg->setPropertyValue("Alatt", "1,1,1");
+    create_alg->setPropertyValue("Angdeg", "90,90,90");
+    create_alg->setPropertyValue("Efix", "12.0");
+    create_alg->setPropertyValue("u", "1,0,0");
+    create_alg->setPropertyValue("v", "0,1,0");
+    create_alg->execute();
+    // IMDEventWorkspace_sptr in_ws =
+    // create_alg->getProperty("OutputWorkspace");
+    IMDEventWorkspace_sptr in_ws =
+        boost::dynamic_pointer_cast<IMDEventWorkspace>(
+            AnalysisDataService::Instance().retrieve("md_sample_workspace"));
+
+    AccumulateMD acc_alg;
+    acc_alg.initialize();
+    acc_alg.setPropertyValue("InputWorkspace", "md_sample_workspace");
+    acc_alg.setPropertyValue("OutputWorkspace", "accumulated_workspace");
+    acc_alg.setPropertyValue("DataSources", "data_source_2");
+    acc_alg.setPropertyValue("Alatt", "1.4165,1.4165,1.4165");
+    acc_alg.setPropertyValue("Angdeg", "90,90,90");
+    acc_alg.setPropertyValue("u", "1,0,0");
+    acc_alg.setPropertyValue("v", "0,1,0");
+    TS_ASSERT_THROWS_NOTHING(acc_alg.execute());
+    // IMDEventWorkspace_sptr out_ws = acc_alg.getProperty("OutputWorkspace");
+    IMDEventWorkspace_sptr out_ws =
+        boost::dynamic_pointer_cast<IMDEventWorkspace>(
+            AnalysisDataService::Instance().retrieve("accumulated_workspace"));
+
+    // Should have the same number of events in output as the sum of the inputs
+    TS_ASSERT_EQUALS(2 * in_ws->getNEvents(), out_ws->getNEvents());
+  }
+
+  void test_algorithm_success_clean() {
+
+    auto sim_alg = Mantid::API::AlgorithmManager::Instance().create(
+        "CreateSimulationWorkspace");
+    sim_alg->initialize();
+    sim_alg->setPropertyValue("Instrument", "MAR");
+    sim_alg->setPropertyValue("BinParams", "-3,1,3");
+    sim_alg->setPropertyValue("UnitX", "DeltaE");
+    sim_alg->setPropertyValue("OutputWorkspace", "data_source_1");
+    sim_alg->execute();
+
+    sim_alg->setPropertyValue("OutputWorkspace", "data_source_2");
+    sim_alg->execute();
+
+    auto log_alg =
+        Mantid::API::AlgorithmManager::Instance().create("AddSampleLog");
+    log_alg->initialize();
+    log_alg->setProperty("Workspace", "data_source_1");
+    log_alg->setPropertyValue("LogName", "Ei");
+    log_alg->setPropertyValue("LogText", "3.0");
+    log_alg->setPropertyValue("LogType", "Number");
+    log_alg->execute();
+
+    log_alg->setProperty("Workspace", "data_source_2");
+    log_alg->execute();
+
+    auto create_alg =
+        Mantid::API::AlgorithmManager::Instance().create("CreateMD");
+    create_alg->setRethrows(true);
+    create_alg->initialize();
+    create_alg->setPropertyValue("OutputWorkspace", "md_sample_workspace");
+    create_alg->setPropertyValue("DataSources", "data_source_1");
+    create_alg->setPropertyValue("Alatt", "1,1,1");
+    create_alg->setPropertyValue("Angdeg", "90,90,90");
+    create_alg->setPropertyValue("Efix", "12.0");
+    create_alg->setPropertyValue("u", "1,0,0");
+    create_alg->setPropertyValue("v", "0,1,0");
+    create_alg->execute();
+    IMDEventWorkspace_sptr in_ws =
+        boost::dynamic_pointer_cast<IMDEventWorkspace>(
+            AnalysisDataService::Instance().retrieve("md_sample_workspace"));
+
+    AccumulateMD acc_alg;
+    acc_alg.initialize();
+    acc_alg.setPropertyValue("InputWorkspace", "md_sample_workspace");
+    acc_alg.setPropertyValue("OutputWorkspace", "accumulated_workspace");
+    acc_alg.setPropertyValue("DataSources", "data_source_2");
+    acc_alg.setPropertyValue("Alatt", "1.4165,1.4165,1.4165");
+    acc_alg.setPropertyValue("Angdeg", "90,90,90");
+    acc_alg.setPropertyValue("u", "1,0,0");
+    acc_alg.setPropertyValue("v", "0,1,0");
+    acc_alg.setProperty("Clean", true);
+    TS_ASSERT_THROWS_NOTHING(acc_alg.execute());
+    IMDEventWorkspace_sptr out_ws =
+        boost::dynamic_pointer_cast<IMDEventWorkspace>(
+            AnalysisDataService::Instance().retrieve("accumulated_workspace"));
+
+    // Should only have the same number of events as data_source_2 this time
+    // as create from clean so lost data in data_source_1
+    TS_ASSERT_EQUALS(in_ws->getNEvents(), out_ws->getNEvents());
+  }
+};
+
+#endif /* MANTID_MDALGORITHMS_ACCUMULATEMDTEST_H_ */
diff --git a/Framework/MDAlgorithms/test/CreateMDTest.h b/Framework/MDAlgorithms/test/CreateMDTest.h
index 9c51c3d6dd6c7332a29a0f55fe7a87fe26c3d4cd..af1f1ea454275550c726cd7ce9c353dc1d63eb49 100644
--- a/Framework/MDAlgorithms/test/CreateMDTest.h
+++ b/Framework/MDAlgorithms/test/CreateMDTest.h
@@ -5,8 +5,9 @@
 
 #include "MantidMDAlgorithms/CreateMD.h"
 #include "MantidTestHelpers/WorkspaceCreationHelper.h"
+#include "MantidAPI/AlgorithmManager.h"
+#include "MantidAPI/IMDEventWorkspace_fwd.h"
 #include <stdexcept>
-#include <MantidAPI/IMDEventWorkspace_fwd.h>
 
 using Mantid::MDAlgorithms::CreateMD;
 
@@ -110,11 +111,29 @@ public:
   }
 
   void test_execute_single_workspace() {
+    auto sim_alg = Mantid::API::AlgorithmManager::Instance().create(
+        "CreateSimulationWorkspace");
+    sim_alg->initialize();
+    sim_alg->setPropertyValue("Instrument", "MAR");
+    sim_alg->setPropertyValue("BinParams", "-3,1,3");
+    sim_alg->setPropertyValue("UnitX", "DeltaE");
+    sim_alg->setPropertyValue("OutputWorkspace", "data_source_1");
+    sim_alg->execute();
+
+    auto log_alg =
+        Mantid::API::AlgorithmManager::Instance().create("AddSampleLog");
+    log_alg->initialize();
+    log_alg->setProperty("Workspace", "data_source_1");
+    log_alg->setPropertyValue("LogName", "Ei");
+    log_alg->setPropertyValue("LogText", "3.0");
+    log_alg->setPropertyValue("LogType", "Number");
+    log_alg->execute();
+
     CreateMD alg;
     alg.setRethrows(true);
     alg.initialize();
     alg.setPropertyValue("OutputWorkspace", "__CreateMDTest_mdworkspace");
-    alg.setPropertyValue("DataSources", "CNCS_7860_event.nxs");
+    alg.setPropertyValue("DataSources", "data_source_1");
     alg.setPropertyValue("Alatt", "1,1,1");
     alg.setPropertyValue("Angdeg", "90,90,90");
     alg.setPropertyValue("Efix", "12.0");
@@ -131,12 +150,35 @@ public:
   }
 
   void test_execute_multi_file() {
+    auto sim_alg = Mantid::API::AlgorithmManager::Instance().create(
+        "CreateSimulationWorkspace");
+    sim_alg->initialize();
+    sim_alg->setPropertyValue("Instrument", "MAR");
+    sim_alg->setPropertyValue("BinParams", "-3,1,3");
+    sim_alg->setPropertyValue("UnitX", "DeltaE");
+    sim_alg->setPropertyValue("OutputWorkspace", "data_source_1");
+    sim_alg->execute();
+
+    sim_alg->setPropertyValue("OutputWorkspace", "data_source_2");
+    sim_alg->execute();
+
+    auto log_alg =
+        Mantid::API::AlgorithmManager::Instance().create("AddSampleLog");
+    log_alg->initialize();
+    log_alg->setProperty("Workspace", "data_source_1");
+    log_alg->setPropertyValue("LogName", "Ei");
+    log_alg->setPropertyValue("LogText", "3.0");
+    log_alg->setPropertyValue("LogType", "Number");
+    log_alg->execute();
+
+    log_alg->setProperty("Workspace", "data_source_2");
+    log_alg->execute();
+
     CreateMD alg;
     alg.setRethrows(true);
     alg.initialize();
     alg.setPropertyValue("OutputWorkspace", "__CreateMDTest_mdworkspace");
-    alg.setPropertyValue("DataSources",
-                         "CNCS_7860_event.nxs,CNCS_7860_event.nxs");
+    alg.setPropertyValue("DataSources", "data_source_1,data_source_2");
     alg.setPropertyValue("Alatt", "1,1,1");
     alg.setPropertyValue("Angdeg", "90,90,90");
     alg.setPropertyValue("Efix", "12.0,13.0");
diff --git a/Framework/MDAlgorithms/test/MaskMDTest.h b/Framework/MDAlgorithms/test/MaskMDTest.h
index 9fc97b278154e7922ba0d604502a1f96d34e3f68..be3ed513a1ee8599d17a01a6c180ac315097f3ef 100644
--- a/Framework/MDAlgorithms/test/MaskMDTest.h
+++ b/Framework/MDAlgorithms/test/MaskMDTest.h
@@ -59,6 +59,62 @@ public:
   static MaskMDTest *createSuite() { return new MaskMDTest(); }
   static void destroySuite(MaskMDTest *suite) { delete suite; }
 
+  void test_split_by_commas() {
+    std::string test_string = "a, b,c ,d,e ";
+    std::vector<std::string> split_test_string = splitByCommas(test_string);
+
+    // String should be split on commas and whitespace trimmed off to result in:
+    TS_ASSERT_EQUALS(split_test_string[0], "a");
+    TS_ASSERT_EQUALS(split_test_string[1], "b");
+    TS_ASSERT_EQUALS(split_test_string[2], "c");
+    TS_ASSERT_EQUALS(split_test_string[3], "d");
+    TS_ASSERT_EQUALS(split_test_string[4], "e");
+  }
+
+  void test_find_names_in_brackets() {
+    std::string test_string = "[a,b,c], [d,e], f, g";
+    std::vector<std::string> names_in_brackets =
+        findNamesInBrackets(test_string);
+
+    TS_ASSERT_EQUALS(names_in_brackets[0], "[a,b,c]");
+    TS_ASSERT_EQUALS(names_in_brackets[1], "[d,e]");
+    TS_ASSERT_EQUALS(names_in_brackets.size(), 2);
+  }
+
+  void test_parse_dimension_names() {
+    // These are default dimension names from CreateMD
+    std::string test_string = "[H,0,0],[0,K,0],[0,0,L],DeltaE";
+    std::vector<std::string> names_result = parseDimensionNames(test_string);
+
+    TS_ASSERT_EQUALS(names_result[0], "[H,0,0]");
+    TS_ASSERT_EQUALS(names_result[1], "[0,K,0]");
+    TS_ASSERT_EQUALS(names_result[2], "[0,0,L]");
+    TS_ASSERT_EQUALS(names_result[3], "DeltaE");
+  }
+
+  void test_remove_bracketed_names() {
+    std::string test_string = "[a,b] , c, [d,e], f";
+    std::vector<std::string> names_result = removeBracketedNames(test_string);
+
+    TS_ASSERT_EQUALS(names_result[0], "[]");
+    TS_ASSERT_EQUALS(names_result[1], "c");
+    TS_ASSERT_EQUALS(names_result[2], "[]");
+    TS_ASSERT_EQUALS(names_result[3], "f");
+  }
+
+  void test_parse_dimension_names_retains_order() {
+
+    std::string test_string = "[a,b],c,[d,e],f";
+    std::vector<std::string> names_result = parseDimensionNames(test_string);
+
+    // Check that order in the vector is the same as order in the original
+    // string
+    TS_ASSERT_EQUALS(names_result[0], "[a,b]");
+    TS_ASSERT_EQUALS(names_result[1], "c");
+    TS_ASSERT_EQUALS(names_result[2], "[d,e]");
+    TS_ASSERT_EQUALS(names_result[3], "f");
+  }
+
   void test_Init() {
     MaskMD alg;
     TS_ASSERT_THROWS_NOTHING(alg.initialize())
diff --git a/Framework/PythonInterface/plugins/algorithms/GetNegMuMuonicXRD.py b/Framework/PythonInterface/plugins/algorithms/GetNegMuMuonicXRD.py
index f4a5ab4accf1fec18282d425115afa4ff646a889..78b9ea13bedc60e9a17c3205875c47deb9dfcc1f 100644
--- a/Framework/PythonInterface/plugins/algorithms/GetNegMuMuonicXRD.py
+++ b/Framework/PythonInterface/plugins/algorithms/GetNegMuMuonicXRD.py
@@ -33,6 +33,21 @@ class GetNegMuMuonicXRD(PythonAlgorithm):
         #retrieve peak values from dictionary Muonic_XR
         peak_values = self.muonic_xr[element]
         return peak_values
+        
+    def validateInput(self):
+        issues = dict()
+        
+        elements = self.getProperty('Elements').value()
+        if elements == "":
+            issues["Elements"] = 'No elements have been selected from the periodic table'
+        y_axis_position = self.getProperty('YAxisPosition').value()
+        if y_axis_position == "":
+            issues["YAxisPosition"] = 'No y-shift value has been entered'
+        outputworkspace_str = self.getProperty('OutputWorkspace').value()
+        if outputworkspace_str == "":
+            issues['OutputWorkspace'] = 'No output workspace name has been specified'
+            
+        return issues
 
     def create_muonic_xr_ws(self, element, y_pos):
         #retrieve the values from Muonic_XR
diff --git a/MantidQt/CustomDialogs/inc/MantidQtCustomDialogs/GetNegMuMuonicXRDDialog.h b/MantidQt/CustomDialogs/inc/MantidQtCustomDialogs/GetNegMuMuonicXRDDialog.h
index e0b8a2e80c72f991ffa254353a67925321bf38d0..8867cebe65dcd308b2eb22133f0f4437b6c0d248 100644
--- a/MantidQt/CustomDialogs/inc/MantidQtCustomDialogs/GetNegMuMuonicXRDDialog.h
+++ b/MantidQt/CustomDialogs/inc/MantidQtCustomDialogs/GetNegMuMuonicXRDDialog.h
@@ -4,34 +4,28 @@
 #include "MantidQtAPI/AlgorithmDialog.h"
 #include "MantidQtMantidWidgets/PeriodicTableWidget.h"
 #include <QDoubleSpinBox>
-
 namespace MantidQt {
 
 namespace CustomDialogs {
 /**
-  This class gives a specialised dialog for the GetNegMuMuonicXRD algorithm
-  @author Matt King, ISIS Rutherford Appleton Laboratory
-  @date 11/08/2015
-  Copyright &copy; 2015 ISIS Rutherford Appleton Laboratory, NScD Oak Ridge
-  National Laboratory & European Spallation Source
-
-  This file is part of Mantid.
-
-  Mantid is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; either version 3 of the License, or
-  (at your option) any later version.
-
-  Mantid is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License
-  along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-  File change history is stored at: <https://github.com/mantidproject/mantid>.
-  Code Documentation is available at: <http://doxygen.mantidproject.org>
+This class gives a specialised dialog for the GetNegMuMuonicXRD algorithm
+@author Matt King, ISIS Rutherford Appleton Laboratory
+@date 11/08/2015
+Copyright &copy; 2015 ISIS Rutherford Appleton Laboratory, NScD Oak Ridge
+National Laboratory & European Spallation Source
+This file is part of Mantid.
+Mantid is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+Mantid is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+File change history is stored at: <https://github.com/mantidproject/mantid>.
+Code Documentation is available at: <http://doxygen.mantidproject.org>
 */
 
 class GetNegMuMuonicXRDDialog : public API::AlgorithmDialog {
@@ -50,17 +44,13 @@ private:
   QLineEdit *m_groupWorkspaceNameInput;
   // Check box for showing or hiding the Legend for PeriodicTableWidget
   QCheckBox *m_showLegendCheck;
-
-  /// Validate that the input is not empty before running algorithm
-  bool validateDialogInput(QString input);
   /** Enables a the buttons corresponding to the elements
-      for which data exists in GetNegMuMuonicXRD.py
+  for which data exists in GetNegMuMuonicXRD.py
   */
   void enableElementsForGetNegMuMuonicXRD();
 
 private slots:
-  /// When the "Run" button is clicked, the algorithm is executed with inputs
-  void runClicked();
+  virtual void parseInput();
   void showLegend();
 
 protected:
@@ -72,4 +62,4 @@ signals:
 };
 }
 }
-#endif // !MANTIDQT_CUSTOM_DIALOGS_GETNEGMUMUONICXRD_H_
+#endif // !MANTIDQT_CUSTOM_DIALOGS_GETNEGMUMUONICXRD_H_
\ No newline at end of file
diff --git a/MantidQt/CustomDialogs/src/GetNegMuMuonicXRDDialog.cpp b/MantidQt/CustomDialogs/src/GetNegMuMuonicXRDDialog.cpp
index ad1a672099a7bf2c6d6bbfa9371ee83a0704862d..5154d5420261bc80e7cb51b39e02d1a6c3d8996d 100644
--- a/MantidQt/CustomDialogs/src/GetNegMuMuonicXRDDialog.cpp
+++ b/MantidQt/CustomDialogs/src/GetNegMuMuonicXRDDialog.cpp
@@ -12,27 +12,31 @@ namespace CustomDialogs {
 DECLARE_DIALOG(GetNegMuMuonicXRDDialog)
 
 /**
- * Default constructor.
- * @param parent :: Parent dialog.
- */
+* Default constructor.
+* @param parent :: Parent dialog.
+*/
 
 GetNegMuMuonicXRDDialog::GetNegMuMuonicXRDDialog(QWidget *parent)
     : API::AlgorithmDialog(parent), m_periodicTable(NULL), m_yPosition(NULL),
-      m_groupWorkspaceNameInput(NULL), m_showLegendCheck(NULL) {}
+      m_groupWorkspaceNameInput(NULL), m_showLegendCheck(NULL) {
+  m_autoParseOnInit = false;
+}
 
 /// Initialise the layout
 void GetNegMuMuonicXRDDialog::initLayout() {
   this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
   this->setMaximumHeight(450);
   this->setMaximumWidth(675);
+  // main layout for the dialog (everything will be added to this)
+  auto *main_layout = new QVBoxLayout(this);
   // assign periodicTable member to a new periodicTable
   m_periodicTable = new PeriodicTableWidget();
-
   // assign m_yPosition member to a new QLineEdit
   m_yPosition = new QDoubleSpinBox();
+  m_yPosition->setValue(0.0);
   // assign GroupWorkspaceName member to a new QLineEdit
   m_groupWorkspaceNameInput = new QLineEdit();
-  auto *groupWsInputLabel = new QLabel("OutputWorkspace");
+  auto *groupWorkspaceInputLabel = new QLabel("OutputWorkspace");
   m_groupWorkspaceNameInput->setMaximumWidth(250);
   // Disable all buttons on the periodicTable
   // as we only have a select few that need to be
@@ -45,12 +49,6 @@ void GetNegMuMuonicXRDDialog::initLayout() {
   */
   enableElementsForGetNegMuMuonicXRD();
 
-  // main layout for the dialog (everything will be added to this)
-  auto *main_layout = new QVBoxLayout(this);
-
-  // run button for executing the algorithm
-  auto *runButton = new QPushButton("Run");
-
   // label for the QLineEdit for m_yPosition property
   auto *m_yPositionLabel = new QLabel("Y Position");
 
@@ -58,44 +56,41 @@ void GetNegMuMuonicXRDDialog::initLayout() {
   m_yPosition->setMaximumWidth(250);
   m_yPosition->setRange(-100, 100);
   m_yPosition->setSingleStep(0.1);
-
-  // Run Button Attributes and signal/slot assignment
-  runButton->setMaximumWidth(100);
-  connect(runButton, SIGNAL(clicked()), this, SLOT(runClicked()));
-  connect(this, SIGNAL(validInput()), this, SLOT(accept()));
+  auto default_button_layout = this->createDefaultButtonLayout();
 
   // Show Legend button attributes and signal/slot asssignment
   m_showLegendCheck = new QCheckBox("Show Legend");
   connect(m_showLegendCheck, SIGNAL(clicked()), this, SLOT(showLegend()));
+  connect(this, SIGNAL(validInput()), this, SLOT(accept));
   // Adding Widgets to Layout
   main_layout->addWidget(m_periodicTable);
   main_layout->addWidget(m_showLegendCheck);
   main_layout->addWidget(m_yPositionLabel);
   main_layout->addWidget(m_yPosition);
-  main_layout->addWidget(groupWsInputLabel);
+  main_layout->addWidget(groupWorkspaceInputLabel);
   main_layout->addWidget(m_groupWorkspaceNameInput);
-  main_layout->addWidget(runButton);
+  main_layout->addLayout(default_button_layout);
 }
 
 /**
- *
- */
+*
+*/
 void GetNegMuMuonicXRDDialog::showLegend() {
   bool checked = m_showLegendCheck->isChecked();
   m_periodicTable->showGroupLegend(checked);
 }
 
 /**
- * Enables the buttons for which we have data for in the GetNegMuMuonicXRD.py
- * dictionary of elements, by Periodic Table symbol.
- * i.e Au corresponds to Gold.
- */
+* Enables the buttons for which we have data for in the GetNegMuMuonicXRD.py
+* dictionary of elements, by Periodic Table symbol.
+* i.e Au corresponds to Gold.
+*/
 void GetNegMuMuonicXRDDialog::enableElementsForGetNegMuMuonicXRD() {
   /* The GetNegMuMuonic algorithm only has data for these elements
-   * The dictionary of elements and data can edited in the python file
-   * for the algorithm, and the button for that element can be enabled
-   * the same as the elements are below.
-   */
+  * The dictionary of elements and data can edited in the python file
+  * for the algorithm, and the button for that element can be enabled
+  * the same as the elements are below.
+  */
   m_periodicTable->enableButtonByName("Au");
   m_periodicTable->enableButtonByName("Ag");
   m_periodicTable->enableButtonByName("Cu");
@@ -106,26 +101,15 @@ void GetNegMuMuonicXRDDialog::enableElementsForGetNegMuMuonicXRD() {
 }
 
 /**
- * Used for checking if the input is none empty for Y-Position Property
- * and if any elements have been selected from the periodicTableWidget
- * @param input :: A QString that is checked to see if it is empty.
+* The Slot to gather input from the dialog, store it in the propertyValue
+* and then emit the signal for valid input. Preparing for accept() to be run.
 */
-
-bool GetNegMuMuonicXRDDialog::validateDialogInput(QString input) {
-  // empty check on input
-  return (input != "");
-}
-
-/**
- * The Slot to gather input from the dialog, store it in the propertyValue
- * and then emit the signal for valid input. Preparing for accept() to be run.
-*/
-void GetNegMuMuonicXRDDialog::runClicked() {
+void GetNegMuMuonicXRDDialog::parseInput() {
   // getting a list of strings of elements selected from periodicTableWidget
   QString elementsSelectedStr = m_periodicTable->getAllCheckedElementsStr();
   // if no elements are selected from the PeriodicTableWidget, a pop-up appears
   // to the user.
-  if (!validateDialogInput(elementsSelectedStr)) {
+  if (elementsSelectedStr == "") {
     QMessageBox::information(
         this, "GetNegMuMuonicXRDDialog",
         "No elements were selected, Please select an element from the table");
@@ -133,17 +117,16 @@ void GetNegMuMuonicXRDDialog::runClicked() {
   // If elements have been selected and y-position text is non-empty then
   // store the inputs as the corresponding propertyValues and emit validInput
   // signal.
-  if (validateDialogInput(elementsSelectedStr)) {
+  if (elementsSelectedStr != "") {
     storePropertyValue("Elements", elementsSelectedStr);
-    if (validateDialogInput(m_yPosition->text())) {
-      storePropertyValue("YAxisPosition",
-                         QString::number(m_yPosition->value()));
+    if (m_yPosition->text() != "") {
+      storePropertyValue("YAxisPosition", m_yPosition->text());
     }
-    if (validateDialogInput(m_groupWorkspaceNameInput->text())) {
+    if (m_groupWorkspaceNameInput->text() != "") {
       storePropertyValue("OutputWorkspace", m_groupWorkspaceNameInput->text());
     }
     emit validInput();
   }
 }
 }
-}
+}
\ No newline at end of file
diff --git a/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/MuonAnalysis.ui b/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/MuonAnalysis.ui
index 683ff2c2ce1f92e3bb6b66967d84e67961daf143..288be8036c19e6d91a05f17b33c1d2515b5e597d 100644
--- a/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/MuonAnalysis.ui
+++ b/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/Muon/MuonAnalysis.ui
@@ -1,54 +1,64 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ui version="4.0">
  <class>MuonAnalysis</class>
- <widget class="QWidget" name="MuonAnalysis">
+ <widget class="QMainWindow" name="MuonAnalysis">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>602</width>
-    <height>732</height>
+    <height>700</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>Muon Analysis</string>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout_4">
-   <property name="margin">
-    <number>1</number>
-   </property>
-   <item>
-    <widget class="QTabWidget" name="tabWidget">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="minimumSize">
-      <size>
-       <width>600</width>
-       <height>730</height>
-      </size>
-     </property>
-     <property name="maximumSize">
-      <size>
-       <width>16777212</width>
-       <height>16777215</height>
-      </size>
-     </property>
-     <property name="toolTip">
-      <string/>
-     </property>
-     <property name="currentIndex">
-      <number>0</number>
-     </property>
-     <widget class="QWidget" name="Home">
-      <attribute name="title">
-       <string>Home</string>
-      </attribute>
-      <attribute name="toolTip">
-       <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+  <widget class="QWidget" name="centralwidget">
+   <layout class="QVBoxLayout" name="verticalLayout_4">
+    <property name="leftMargin">
+     <number>1</number>
+    </property>
+    <property name="topMargin">
+     <number>1</number>
+    </property>
+    <property name="rightMargin">
+     <number>1</number>
+    </property>
+    <property name="bottomMargin">
+     <number>1</number>
+    </property>
+    <item>
+     <widget class="QTabWidget" name="tabWidget">
+      <property name="sizePolicy">
+       <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+        <horstretch>0</horstretch>
+        <verstretch>0</verstretch>
+       </sizepolicy>
+      </property>
+      <property name="minimumSize">
+       <size>
+        <width>600</width>
+        <height>680</height>
+       </size>
+      </property>
+      <property name="maximumSize">
+       <size>
+        <width>16777212</width>
+        <height>16777215</height>
+       </size>
+      </property>
+      <property name="toolTip">
+       <string/>
+      </property>
+      <property name="currentIndex">
+       <number>0</number>
+      </property>
+      <widget class="QWidget" name="Home">
+       <attribute name="title">
+        <string>Home</string>
+       </attribute>
+       <attribute name="toolTip">
+        <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
@@ -57,1370 +67,1397 @@ p, li { white-space: pre-wrap; }
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;ï‚· run information to be viewed&lt;/span&gt;&lt;/p&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;ï‚· detector groupings to be selected&lt;/span&gt;&lt;/p&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;ï‚· type of plot to be selected&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_3">
-       <item>
-        <widget class="QGroupBox" name="groupBox">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="title">
-          <string>Instrument</string>
-         </property>
-         <layout class="QGridLayout" name="gridLayout_9">
-          <property name="verticalSpacing">
-           <number>6</number>
+       </attribute>
+       <layout class="QVBoxLayout" name="verticalLayout_3">
+        <item>
+         <widget class="QGroupBox" name="groupBox">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
           </property>
-          <item row="1" column="0">
-           <layout class="QVBoxLayout" name="verticalLayout_2">
-            <item>
-             <widget class="QLabel" name="instrumentDescription">
-              <property name="text">
-               <string>Description:</string>
-              </property>
-             </widget>
-            </item>
-           </layout>
-          </item>
-          <item row="0" column="0">
-           <layout class="QHBoxLayout" name="horizontalLayout_11">
-            <item alignment="Qt::AlignTop">
-             <widget class="MantidQt::MantidWidgets::InstrumentSelector" name="instrSelector">
-              <property name="sizePolicy">
-               <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-                <horstretch>0</horstretch>
-                <verstretch>0</verstretch>
-               </sizepolicy>
-              </property>
-              <property name="toolTip">
-               <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+          <property name="title">
+           <string>Instrument</string>
+          </property>
+          <layout class="QGridLayout" name="gridLayout_9">
+           <property name="verticalSpacing">
+            <number>6</number>
+           </property>
+           <item row="1" column="0">
+            <layout class="QVBoxLayout" name="verticalLayout_2">
+             <item>
+              <widget class="QLabel" name="instrumentDescription">
+               <property name="text">
+                <string>Description:</string>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </item>
+           <item row="0" column="0">
+            <layout class="QHBoxLayout" name="horizontalLayout_11">
+             <item alignment="Qt::AlignTop">
+              <widget class="MantidQt::MantidWidgets::InstrumentSelector" name="instrSelector">
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+               <property name="toolTip">
+                <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Select the instrument on which &lt;/span&gt;&lt;/p&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;the experiment is being / was &lt;/span&gt;&lt;/p&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;run.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-              </property>
-              <property name="techniques" stdset="0">
-               <stringlist>
-                <string>Muon spectroscopy</string>
-               </stringlist>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <spacer name="horizontalSpacer_2">
-              <property name="orientation">
-               <enum>Qt::Horizontal</enum>
-              </property>
-              <property name="sizeType">
-               <enum>QSizePolicy::Fixed</enum>
-              </property>
-              <property name="sizeHint" stdset="0">
-               <size>
-                <width>20</width>
-                <height>20</height>
-               </size>
-              </property>
-             </spacer>
-            </item>
-            <item>
-             <layout class="QGridLayout" name="gridLayout_23">
-              <property name="horizontalSpacing">
-               <number>5</number>
-              </property>
-              <property name="verticalSpacing">
-               <number>1</number>
-              </property>
-              <property name="topMargin">
-               <number>0</number>
-              </property>
-              <item row="3" column="1">
-               <widget class="QWidget" name="horizontalWidget_2" native="true">
-                <property name="minimumSize">
-                 <size>
-                  <width>0</width>
-                  <height>30</height>
-                 </size>
-                </property>
-                <layout class="QHBoxLayout" name="horizontalLayout_18">
-                 <property name="margin">
-                  <number>1</number>
+               </property>
+               <property name="techniques" stdset="0">
+                <stringlist>
+                 <string>Muon spectroscopy</string>
+                </stringlist>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <spacer name="horizontalSpacer_2">
+               <property name="orientation">
+                <enum>Qt::Horizontal</enum>
+               </property>
+               <property name="sizeType">
+                <enum>QSizePolicy::Fixed</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>20</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+             <item>
+              <layout class="QGridLayout" name="gridLayout_23">
+               <property name="topMargin">
+                <number>0</number>
+               </property>
+               <property name="horizontalSpacing">
+                <number>5</number>
+               </property>
+               <property name="verticalSpacing">
+                <number>1</number>
+               </property>
+               <item row="3" column="1">
+                <widget class="QWidget" name="horizontalWidget_2" native="true">
+                 <property name="minimumSize">
+                  <size>
+                   <width>0</width>
+                   <height>30</height>
+                  </size>
                  </property>
-                 <item>
-                  <widget class="QComboBox" name="deadTimeType">
-                   <property name="sizePolicy">
-                    <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-                     <horstretch>0</horstretch>
-                     <verstretch>0</verstretch>
-                    </sizepolicy>
-                   </property>
-                   <item>
+                 <layout class="QHBoxLayout" name="horizontalLayout_18">
+                  <property name="leftMargin">
+                   <number>1</number>
+                  </property>
+                  <property name="topMargin">
+                   <number>1</number>
+                  </property>
+                  <property name="rightMargin">
+                   <number>1</number>
+                  </property>
+                  <property name="bottomMargin">
+                   <number>1</number>
+                  </property>
+                  <item>
+                   <widget class="QComboBox" name="deadTimeType">
+                    <property name="sizePolicy">
+                     <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                      <horstretch>0</horstretch>
+                      <verstretch>0</verstretch>
+                     </sizepolicy>
+                    </property>
+                    <item>
+                     <property name="text">
+                      <string>None</string>
+                     </property>
+                    </item>
+                    <item>
+                     <property name="text">
+                      <string>From Data File</string>
+                     </property>
+                    </item>
+                    <item>
+                     <property name="text">
+                      <string>From Disk</string>
+                     </property>
+                    </item>
+                   </widget>
+                  </item>
+                  <item>
+                   <spacer name="horizontalSpacer_11">
+                    <property name="orientation">
+                     <enum>Qt::Horizontal</enum>
+                    </property>
+                    <property name="sizeHint" stdset="0">
+                     <size>
+                      <width>40</width>
+                      <height>20</height>
+                     </size>
+                    </property>
+                   </spacer>
+                  </item>
+                 </layout>
+                </widget>
+               </item>
+               <item row="4" column="1">
+                <widget class="MantidQt::MantidWidgets::MWRunFiles" name="mwRunDeadTimeFile" native="true">
+                 <property name="enabled">
+                  <bool>true</bool>
+                 </property>
+                 <property name="minimumSize">
+                  <size>
+                   <width>0</width>
+                   <height>30</height>
+                  </size>
+                 </property>
+                 <property name="maximumSize">
+                  <size>
+                   <width>16777215</width>
+                   <height>30</height>
+                  </size>
+                 </property>
+                 <property name="baseSize">
+                  <size>
+                   <width>0</width>
+                   <height>0</height>
+                  </size>
+                 </property>
+                 <property name="label" stdset="0">
+                  <string/>
+                 </property>
+                </widget>
+               </item>
+               <item row="3" column="0">
+                <widget class="QLabel" name="dtcLabel">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                 <property name="text">
+                  <string>Dead Time Correction:</string>
+                 </property>
+                 <property name="alignment">
+                  <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+                 </property>
+                </widget>
+               </item>
+               <item row="4" column="0">
+                <widget class="QLabel" name="dtcFileLabel">
+                 <property name="text">
+                  <string>Dead Time File:</string>
+                 </property>
+                 <property name="alignment">
+                  <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+                 </property>
+                </widget>
+               </item>
+               <item row="2" column="0">
+                <widget class="QLabel" name="firstGoodDataLabel">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                 <property name="text">
+                  <string>First Good Data:</string>
+                 </property>
+                 <property name="alignment">
+                  <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+                 </property>
+                </widget>
+               </item>
+               <item row="1" column="0">
+                <widget class="QLabel" name="timeZeroLabel">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                 <property name="text">
+                  <string>Time Zero:</string>
+                 </property>
+                 <property name="alignment">
+                  <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+                 </property>
+                </widget>
+               </item>
+               <item row="1" column="1">
+                <widget class="QWidget" name="horizontalWidget" native="true">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                 <property name="minimumSize">
+                  <size>
+                   <width>0</width>
+                   <height>30</height>
+                  </size>
+                 </property>
+                 <property name="maximumSize">
+                  <size>
+                   <width>16777215</width>
+                   <height>30</height>
+                  </size>
+                 </property>
+                 <layout class="QHBoxLayout" name="horizontalLayout_13">
+                  <property name="leftMargin">
+                   <number>1</number>
+                  </property>
+                  <property name="topMargin">
+                   <number>1</number>
+                  </property>
+                  <property name="rightMargin">
+                   <number>1</number>
+                  </property>
+                  <property name="bottomMargin">
+                   <number>1</number>
+                  </property>
+                  <item>
+                   <widget class="QLineEdit" name="timeZeroFront">
+                    <property name="enabled">
+                     <bool>true</bool>
+                    </property>
+                    <property name="sizePolicy">
+                     <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                      <horstretch>0</horstretch>
+                      <verstretch>0</verstretch>
+                     </sizepolicy>
+                    </property>
+                    <property name="minimumSize">
+                     <size>
+                      <width>0</width>
+                      <height>0</height>
+                     </size>
+                    </property>
+                    <property name="maximumSize">
+                     <size>
+                      <width>40</width>
+                      <height>16777215</height>
+                     </size>
+                    </property>
                     <property name="text">
-                     <string>None</string>
+                     <string>0.2</string>
                     </property>
-                   </item>
-                   <item>
+                    <property name="alignment">
+                     <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+                    </property>
+                   </widget>
+                  </item>
+                  <item>
+                   <widget class="QLabel" name="label_15">
                     <property name="text">
-                     <string>From Data File</string>
+                     <string>µs</string>
+                    </property>
+                   </widget>
+                  </item>
+                  <item>
+                   <widget class="QCheckBox" name="timeZeroAuto">
+                    <property name="sizePolicy">
+                     <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                      <horstretch>0</horstretch>
+                      <verstretch>0</verstretch>
+                     </sizepolicy>
                     </property>
-                   </item>
-                   <item>
                     <property name="text">
-                     <string>From Disk</string>
+                     <string>From datafile</string>
                     </property>
-                   </item>
-                  </widget>
-                 </item>
-                 <item>
-                  <spacer name="horizontalSpacer_11">
-                   <property name="orientation">
-                    <enum>Qt::Horizontal</enum>
-                   </property>
-                   <property name="sizeHint" stdset="0">
-                    <size>
-                     <width>40</width>
-                     <height>20</height>
-                    </size>
-                   </property>
-                  </spacer>
-                 </item>
-                </layout>
-               </widget>
-              </item>
-              <item row="4" column="1">
-               <widget class="MantidQt::MantidWidgets::MWRunFiles" name="mwRunDeadTimeFile" native="true">
-                <property name="enabled">
-                 <bool>true</bool>
-                </property>
-                <property name="minimumSize">
-                 <size>
-                  <width>0</width>
-                  <height>30</height>
-                 </size>
-                </property>
-                <property name="maximumSize">
-                 <size>
-                  <width>16777215</width>
-                  <height>30</height>
-                 </size>
-                </property>
-                <property name="baseSize">
-                 <size>
-                  <width>0</width>
-                  <height>0</height>
-                 </size>
-                </property>
-                <property name="label" stdset="0">
-                 <string/>
-                </property>
-               </widget>
-              </item>
-              <item row="3" column="0">
-               <widget class="QLabel" name="dtcLabel">
-                <property name="sizePolicy">
-                 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-                  <horstretch>0</horstretch>
-                  <verstretch>0</verstretch>
-                 </sizepolicy>
-                </property>
-                <property name="text">
-                 <string>Dead Time Correction:</string>
-                </property>
-                <property name="alignment">
-                 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-                </property>
-               </widget>
-              </item>
-              <item row="4" column="0">
-               <widget class="QLabel" name="dtcFileLabel">
-                <property name="text">
-                 <string>Dead Time File:</string>
-                </property>
-                <property name="alignment">
-                 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-                </property>
-               </widget>
-              </item>
-              <item row="2" column="0">
-               <widget class="QLabel" name="firstGoodDataLabel">
-                <property name="sizePolicy">
-                 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-                  <horstretch>0</horstretch>
-                  <verstretch>0</verstretch>
-                 </sizepolicy>
-                </property>
-                <property name="text">
-                 <string>First Good Data:</string>
-                </property>
-                <property name="alignment">
-                 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-                </property>
-               </widget>
-              </item>
-              <item row="1" column="0">
-               <widget class="QLabel" name="timeZeroLabel">
-                <property name="sizePolicy">
-                 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-                  <horstretch>0</horstretch>
-                  <verstretch>0</verstretch>
-                 </sizepolicy>
-                </property>
-                <property name="text">
-                 <string>Time Zero:</string>
-                </property>
-                <property name="alignment">
-                 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-                </property>
-               </widget>
-              </item>
-              <item row="1" column="1">
-               <widget class="QWidget" name="horizontalWidget" native="true">
-                <property name="sizePolicy">
-                 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-                  <horstretch>0</horstretch>
-                  <verstretch>0</verstretch>
-                 </sizepolicy>
-                </property>
-                <property name="minimumSize">
-                 <size>
-                  <width>0</width>
-                  <height>30</height>
-                 </size>
-                </property>
-                <property name="maximumSize">
-                 <size>
-                  <width>16777215</width>
-                  <height>30</height>
-                 </size>
-                </property>
-                <layout class="QHBoxLayout" name="horizontalLayout_13">
-                 <property name="margin">
-                  <number>1</number>
+                    <property name="tristate">
+                     <bool>false</bool>
+                    </property>
+                   </widget>
+                  </item>
+                  <item>
+                   <spacer name="horizontalSpacer_3">
+                    <property name="orientation">
+                     <enum>Qt::Horizontal</enum>
+                    </property>
+                    <property name="sizeHint" stdset="0">
+                     <size>
+                      <width>40</width>
+                      <height>20</height>
+                     </size>
+                    </property>
+                   </spacer>
+                  </item>
+                 </layout>
+                </widget>
+               </item>
+               <item row="2" column="1">
+                <widget class="QWidget" name="horizontalWidget_4" native="true">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
                  </property>
-                 <item>
-                  <widget class="QLineEdit" name="timeZeroFront">
-                   <property name="enabled">
-                    <bool>true</bool>
-                   </property>
-                   <property name="sizePolicy">
-                    <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-                     <horstretch>0</horstretch>
-                     <verstretch>0</verstretch>
-                    </sizepolicy>
-                   </property>
-                   <property name="minimumSize">
-                    <size>
-                     <width>0</width>
-                     <height>0</height>
-                    </size>
-                   </property>
-                   <property name="maximumSize">
-                    <size>
-                     <width>40</width>
-                     <height>16777215</height>
-                    </size>
-                   </property>
-                   <property name="text">
-                    <string>0.2</string>
-                   </property>
-                   <property name="alignment">
-                    <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-                   </property>
-                  </widget>
-                 </item>
-                 <item>
-                  <widget class="QLabel" name="label_15">
-                   <property name="text">
-                    <string>µs</string>
-                   </property>
-                  </widget>
-                 </item>
-                 <item>
-                  <widget class="QCheckBox" name="timeZeroAuto">
-                   <property name="sizePolicy">
-                    <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-                     <horstretch>0</horstretch>
-                     <verstretch>0</verstretch>
-                    </sizepolicy>
-                   </property>
-                   <property name="text">
-                    <string>From datafile</string>
-                   </property>
-                   <property name="tristate">
-                    <bool>false</bool>
-                   </property>
-                  </widget>
-                 </item>
-                 <item>
-                  <spacer name="horizontalSpacer_3">
-                   <property name="orientation">
-                    <enum>Qt::Horizontal</enum>
-                   </property>
-                   <property name="sizeHint" stdset="0">
-                    <size>
-                     <width>40</width>
-                     <height>20</height>
-                    </size>
-                   </property>
-                  </spacer>
-                 </item>
-                </layout>
-               </widget>
-              </item>
-              <item row="2" column="1">
-               <widget class="QWidget" name="horizontalWidget_4" native="true">
-                <property name="sizePolicy">
-                 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-                  <horstretch>0</horstretch>
-                  <verstretch>0</verstretch>
-                 </sizepolicy>
-                </property>
-                <property name="minimumSize">
-                 <size>
-                  <width>0</width>
-                  <height>30</height>
-                 </size>
-                </property>
-                <property name="maximumSize">
-                 <size>
-                  <width>16777215</width>
-                  <height>30</height>
-                 </size>
-                </property>
-                <layout class="QHBoxLayout" name="horizontalLayout_17">
-                 <property name="margin">
-                  <number>1</number>
+                 <property name="minimumSize">
+                  <size>
+                   <width>0</width>
+                   <height>30</height>
+                  </size>
                  </property>
-                 <item>
-                  <widget class="QLineEdit" name="firstGoodBinFront">
-                   <property name="enabled">
-                    <bool>true</bool>
-                   </property>
-                   <property name="sizePolicy">
-                    <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-                     <horstretch>0</horstretch>
-                     <verstretch>0</verstretch>
-                    </sizepolicy>
-                   </property>
-                   <property name="minimumSize">
-                    <size>
-                     <width>0</width>
-                     <height>0</height>
-                    </size>
-                   </property>
-                   <property name="maximumSize">
-                    <size>
-                     <width>40</width>
-                     <height>16777215</height>
-                    </size>
-                   </property>
-                   <property name="text">
-                    <string>0.3</string>
-                   </property>
-                   <property name="alignment">
-                    <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-                   </property>
-                  </widget>
-                 </item>
-                 <item>
-                  <widget class="QLabel" name="label_16">
-                   <property name="text">
-                    <string>µs</string>
-                   </property>
-                  </widget>
-                 </item>
-                 <item>
-                  <widget class="QCheckBox" name="firstGoodDataAuto">
-                   <property name="sizePolicy">
-                    <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-                     <horstretch>0</horstretch>
-                     <verstretch>0</verstretch>
-                    </sizepolicy>
-                   </property>
-                   <property name="text">
-                    <string>From datafile</string>
-                   </property>
-                  </widget>
-                 </item>
-                 <item>
-                  <spacer name="horizontalSpacer_10">
-                   <property name="orientation">
-                    <enum>Qt::Horizontal</enum>
-                   </property>
-                   <property name="sizeHint" stdset="0">
-                    <size>
-                     <width>40</width>
-                     <height>20</height>
-                    </size>
-                   </property>
-                  </spacer>
-                 </item>
-                </layout>
-               </widget>
-              </item>
-             </layout>
-            </item>
-           </layout>
-          </item>
-         </layout>
-        </widget>
-       </item>
-       <item>
-        <widget class="QGroupBox" name="groupBox_2">
-         <property name="title">
-          <string>Data Files</string>
-         </property>
-         <layout class="QGridLayout" name="gridLayout_4">
-          <item row="0" column="0">
-           <layout class="QHBoxLayout" name="horizontalLayout_2">
-            <item>
-             <widget class="QPushButton" name="loadCurrent">
-              <property name="enabled">
-               <bool>true</bool>
-              </property>
-              <property name="sizePolicy">
-               <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-                <horstretch>0</horstretch>
-                <verstretch>0</verstretch>
-               </sizepolicy>
-              </property>
-              <property name="minimumSize">
-               <size>
-                <width>0</width>
-                <height>0</height>
-               </size>
-              </property>
-              <property name="maximumSize">
-               <size>
-                <width>16777215</width>
-                <height>16777215</height>
-               </size>
-              </property>
-              <property name="toolTip">
-               <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+                 <property name="maximumSize">
+                  <size>
+                   <width>16777215</width>
+                   <height>30</height>
+                  </size>
+                 </property>
+                 <layout class="QHBoxLayout" name="horizontalLayout_17">
+                  <property name="leftMargin">
+                   <number>1</number>
+                  </property>
+                  <property name="topMargin">
+                   <number>1</number>
+                  </property>
+                  <property name="rightMargin">
+                   <number>1</number>
+                  </property>
+                  <property name="bottomMargin">
+                   <number>1</number>
+                  </property>
+                  <item>
+                   <widget class="QLineEdit" name="firstGoodBinFront">
+                    <property name="enabled">
+                     <bool>true</bool>
+                    </property>
+                    <property name="sizePolicy">
+                     <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                      <horstretch>0</horstretch>
+                      <verstretch>0</verstretch>
+                     </sizepolicy>
+                    </property>
+                    <property name="minimumSize">
+                     <size>
+                      <width>0</width>
+                      <height>0</height>
+                     </size>
+                    </property>
+                    <property name="maximumSize">
+                     <size>
+                      <width>40</width>
+                      <height>16777215</height>
+                     </size>
+                    </property>
+                    <property name="text">
+                     <string>0.3</string>
+                    </property>
+                    <property name="alignment">
+                     <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+                    </property>
+                   </widget>
+                  </item>
+                  <item>
+                   <widget class="QLabel" name="label_16">
+                    <property name="text">
+                     <string>µs</string>
+                    </property>
+                   </widget>
+                  </item>
+                  <item>
+                   <widget class="QCheckBox" name="firstGoodDataAuto">
+                    <property name="sizePolicy">
+                     <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                      <horstretch>0</horstretch>
+                      <verstretch>0</verstretch>
+                     </sizepolicy>
+                    </property>
+                    <property name="text">
+                     <string>From datafile</string>
+                    </property>
+                   </widget>
+                  </item>
+                  <item>
+                   <spacer name="horizontalSpacer_10">
+                    <property name="orientation">
+                     <enum>Qt::Horizontal</enum>
+                    </property>
+                    <property name="sizeHint" stdset="0">
+                     <size>
+                      <width>40</width>
+                      <height>20</height>
+                     </size>
+                    </property>
+                   </spacer>
+                  </item>
+                 </layout>
+                </widget>
+               </item>
+              </layout>
+             </item>
+            </layout>
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item>
+         <widget class="QGroupBox" name="groupBox_2">
+          <property name="title">
+           <string>Data Files</string>
+          </property>
+          <layout class="QGridLayout" name="gridLayout_4">
+           <item row="0" column="0">
+            <layout class="QHBoxLayout" name="horizontalLayout_2">
+             <item>
+              <widget class="QPushButton" name="loadCurrent">
+               <property name="enabled">
+                <bool>true</bool>
+               </property>
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+               <property name="minimumSize">
+                <size>
+                 <width>0</width>
+                 <height>0</height>
+                </size>
+               </property>
+               <property name="maximumSize">
+                <size>
+                 <width>16777215</width>
+                 <height>16777215</height>
+                </size>
+               </property>
+               <property name="toolTip">
+                <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Load current run for the &lt;/span&gt;&lt;/p&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;instrument specified&lt;/span&gt;&lt;/p&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;in Instrument.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-              </property>
-              <property name="text">
-               <string>Load current run</string>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <layout class="QHBoxLayout" name="fileInputLayout">
-              <item>
-               <widget class="MantidQt::MantidWidgets::MWRunFiles" name="mwRunFiles" native="true">
-                <property name="sizePolicy">
-                 <sizepolicy hsizetype="Expanding" vsizetype="Minimum">
-                  <horstretch>0</horstretch>
-                  <verstretch>0</verstretch>
-                 </sizepolicy>
-                </property>
-                <property name="toolTip">
-                 <string>Specify a run number or data file by typing a run number or use 
+               </property>
+               <property name="text">
+                <string>Load current run</string>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <layout class="QHBoxLayout" name="fileInputLayout">
+               <item>
+                <widget class="MantidQt::MantidWidgets::MWRunFiles" name="mwRunFiles" native="true">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Expanding" vsizetype="Minimum">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                 <property name="toolTip">
+                  <string>Specify a run number or data file by typing a run number or use 
 the Browse button to select</string>
-                </property>
-                <property name="findRunFiles" stdset="0">
-                 <bool>true</bool>
-                </property>
-                <property name="label" stdset="0">
-                 <string>Load run</string>
-                </property>
-                <property name="multipleFiles" stdset="0">
-                 <bool>false</bool>
-                </property>
-               </widget>
-              </item>
-              <item>
-               <widget class="QToolButton" name="previousRun">
-                <property name="toolTip">
-                 <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+                 </property>
+                 <property name="findRunFiles" stdset="0">
+                  <bool>true</bool>
+                 </property>
+                 <property name="label" stdset="0">
+                  <string>Load run</string>
+                 </property>
+                 <property name="multipleFiles" stdset="0">
+                  <bool>false</bool>
+                 </property>
+                </widget>
+               </item>
+               <item>
+                <widget class="QToolButton" name="previousRun">
+                 <property name="toolTip">
+                  <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Clicking this button will open the previous run in a series of runs.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-                </property>
-                <property name="text">
-                 <string>...</string>
-                </property>
-                <property name="arrowType">
-                 <enum>Qt::LeftArrow</enum>
-                </property>
-               </widget>
-              </item>
-              <item>
-               <widget class="QToolButton" name="nextRun">
-                <property name="toolTip">
-                 <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+                 </property>
+                 <property name="text">
+                  <string>...</string>
+                 </property>
+                 <property name="arrowType">
+                  <enum>Qt::LeftArrow</enum>
+                 </property>
+                </widget>
+               </item>
+               <item>
+                <widget class="QToolButton" name="nextRun">
+                 <property name="toolTip">
+                  <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Clicking this button will open the next run in a series of runs.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-                </property>
-                <property name="text">
-                 <string>...</string>
-                </property>
-                <property name="arrowType">
-                 <enum>Qt::RightArrow</enum>
-                </property>
-               </widget>
-              </item>
-             </layout>
-            </item>
-           </layout>
-          </item>
-         </layout>
-        </widget>
-       </item>
-       <item>
-        <widget class="QGroupBox" name="groupBox_3">
-         <property name="title">
-          <string>Detector Grouping</string>
-         </property>
-         <layout class="QVBoxLayout" name="verticalLayout_5">
-          <item>
-           <layout class="QHBoxLayout" name="horizontalLayout_5">
-            <item>
-             <widget class="QLabel" name="label">
-              <property name="toolTip">
-               <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+                 </property>
+                 <property name="text">
+                  <string>...</string>
+                 </property>
+                 <property name="arrowType">
+                  <enum>Qt::RightArrow</enum>
+                 </property>
+                </widget>
+               </item>
+              </layout>
+             </item>
+            </layout>
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item>
+         <widget class="QGroupBox" name="groupBox_3">
+          <property name="title">
+           <string>Detector Grouping</string>
+          </property>
+          <layout class="QVBoxLayout" name="verticalLayout_5">
+           <item>
+            <layout class="QHBoxLayout" name="horizontalLayout_5">
+             <item>
+              <widget class="QLabel" name="label">
+               <property name="toolTip">
+                <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Lists valid groups and group-pairs &lt;/span&gt;&lt;/p&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;as defined in the Grouping &lt;/span&gt;&lt;/p&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Options tab.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-              </property>
-              <property name="text">
-               <string>Group / Group Pair:</string>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <widget class="QComboBox" name="frontGroupGroupPairComboBox">
-              <property name="sizePolicy">
-               <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-                <horstretch>0</horstretch>
-                <verstretch>0</verstretch>
-               </sizepolicy>
-              </property>
-              <property name="minimumSize">
-               <size>
-                <width>140</width>
-                <height>0</height>
-               </size>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <spacer name="horizontalSpacer_5">
-              <property name="orientation">
-               <enum>Qt::Horizontal</enum>
-              </property>
-              <property name="sizeType">
-               <enum>QSizePolicy::Expanding</enum>
-              </property>
-              <property name="sizeHint" stdset="0">
-               <size>
-                <width>250</width>
-                <height>20</height>
-               </size>
-              </property>
-             </spacer>
-            </item>
-            <item>
-             <widget class="QLabel" name="frontAlphaLabel">
-              <property name="text">
-               <string>Alpha:</string>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <widget class="QLineEdit" name="frontAlphaNumber">
-              <property name="maximumSize">
-               <size>
-                <width>16777215</width>
-                <height>16777215</height>
-               </size>
-              </property>
-             </widget>
-            </item>
-           </layout>
+               </property>
+               <property name="text">
+                <string>Group / Group Pair:</string>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QComboBox" name="frontGroupGroupPairComboBox">
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+               <property name="minimumSize">
+                <size>
+                 <width>140</width>
+                 <height>0</height>
+                </size>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <spacer name="horizontalSpacer_5">
+               <property name="orientation">
+                <enum>Qt::Horizontal</enum>
+               </property>
+               <property name="sizeType">
+                <enum>QSizePolicy::Expanding</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>250</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+             <item>
+              <widget class="QLabel" name="frontAlphaLabel">
+               <property name="text">
+                <string>Alpha:</string>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QLineEdit" name="frontAlphaNumber">
+               <property name="maximumSize">
+                <size>
+                 <width>16777215</width>
+                 <height>16777215</height>
+                </size>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </item>
+           <item>
+            <layout class="QHBoxLayout" name="horizontalLayout_4">
+             <item>
+              <widget class="QLabel" name="homePeriodsLabel">
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+               <property name="minimumSize">
+                <size>
+                 <width>400</width>
+                 <height>0</height>
+                </size>
+               </property>
+               <property name="toolTip">
+                <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;For single period data only the 1st &lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Plot/Analyse Period drop down box &lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;is active. For multi period data all &lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;the drop boxes are enabled. Use &lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;these additional fields to plot the &lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;difference (or sum) between two &lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;timing periods.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+               </property>
+               <property name="text">
+                <string>Data collected in &lt;n&gt; Periods. Plot/analyse Period:</string>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <spacer name="horizontalSpacer_24">
+               <property name="orientation">
+                <enum>Qt::Horizontal</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>0</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+             <item>
+              <widget class="QComboBox" name="homePeriodBox1">
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+               <property name="maximumSize">
+                <size>
+                 <width>60</width>
+                 <height>16777215</height>
+                </size>
+               </property>
+               <property name="currentIndex">
+                <number>-1</number>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QComboBox" name="homePeriodBoxMath">
+               <property name="enabled">
+                <bool>true</bool>
+               </property>
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+               <property name="maximumSize">
+                <size>
+                 <width>100</width>
+                 <height>16777215</height>
+                </size>
+               </property>
+               <item>
+                <property name="text">
+                 <string>-</string>
+                </property>
+               </item>
+               <item>
+                <property name="text">
+                 <string>+</string>
+                </property>
+               </item>
+              </widget>
+             </item>
+             <item>
+              <widget class="QComboBox" name="homePeriodBox2">
+               <property name="enabled">
+                <bool>true</bool>
+               </property>
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+               <property name="maximumSize">
+                <size>
+                 <width>60</width>
+                 <height>16777215</height>
+                </size>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item>
+         <widget class="QGroupBox" name="groupBox_4">
+          <property name="title">
+           <string>Plot Data</string>
+          </property>
+          <layout class="QGridLayout" name="gridLayout_2">
+           <item row="0" column="0">
+            <layout class="QHBoxLayout" name="horizontalLayout">
+             <property name="sizeConstraint">
+              <enum>QLayout::SetDefaultConstraint</enum>
+             </property>
+             <item>
+              <widget class="QLabel" name="label_2">
+               <property name="maximumSize">
+                <size>
+                 <width>100000</width>
+                 <height>16777215</height>
+                </size>
+               </property>
+               <property name="toolTip">
+                <string>Select the type of plot.</string>
+               </property>
+               <property name="text">
+                <string>Plot type:</string>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QComboBox" name="frontPlotFuncs">
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+               <property name="minimumSize">
+                <size>
+                 <width>140</width>
+                 <height>0</height>
+                </size>
+               </property>
+               <property name="maximumSize">
+                <size>
+                 <width>16777215</width>
+                 <height>16777215</height>
+                </size>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <spacer name="horizontalSpacer_12">
+               <property name="orientation">
+                <enum>Qt::Horizontal</enum>
+               </property>
+               <property name="sizeType">
+                <enum>QSizePolicy::Expanding</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>260</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+             <item>
+              <widget class="QPushButton" name="frontPlotButton">
+               <property name="enabled">
+                <bool>false</bool>
+               </property>
+               <property name="maximumSize">
+                <size>
+                 <width>100</width>
+                 <height>16777215</height>
+                </size>
+               </property>
+               <property name="font">
+                <font>
+                 <weight>75</weight>
+                 <bold>true</bold>
+                </font>
+               </property>
+               <property name="text">
+                <string>Plot</string>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item>
+         <widget class="QGroupBox" name="groupBox_5">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="title">
+           <string>Run Information</string>
+          </property>
+          <layout class="QVBoxLayout" name="verticalLayout">
+           <item>
+            <widget class="QTextBrowser" name="infoBrowser">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="toolTip">
+              <string>Information about the loaded measurement is printed to the screen.</string>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item>
+         <layout class="QHBoxLayout" name="horizontalLayout_3">
+          <item>
+           <widget class="QPushButton" name="muonAnalysisHelp">
+            <property name="maximumSize">
+             <size>
+              <width>30</width>
+              <height>16777215</height>
+             </size>
+            </property>
+            <property name="toolTip">
+             <string/>
+            </property>
+            <property name="text">
+             <string>?</string>
+            </property>
+           </widget>
           </item>
           <item>
-           <layout class="QHBoxLayout" name="horizontalLayout_4">
-            <item>
-             <widget class="QLabel" name="homePeriodsLabel">
-              <property name="sizePolicy">
-               <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
-                <horstretch>0</horstretch>
-                <verstretch>0</verstretch>
-               </sizepolicy>
-              </property>
-              <property name="minimumSize">
-               <size>
-                <width>400</width>
-                <height>0</height>
-               </size>
-              </property>
-              <property name="toolTip">
-               <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+           <widget class="QLabel" name="connectedDataHome">
+            <property name="toolTip">
+             <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;For single period data only the 1st &lt;/span&gt;&lt;/p&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Plot/Analyse Period drop down box &lt;/span&gt;&lt;/p&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;is active. For multi period data all &lt;/span&gt;&lt;/p&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;the drop boxes are enabled. Use &lt;/span&gt;&lt;/p&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;these additional fields to plot the &lt;/span&gt;&lt;/p&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;difference (or sum) between two &lt;/span&gt;&lt;/p&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;timing periods.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-              </property>
-              <property name="text">
-               <string>Data collected in &lt;n&gt; Periods. Plot/analyse Period:</string>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <spacer name="horizontalSpacer_24">
-              <property name="orientation">
-               <enum>Qt::Horizontal</enum>
-              </property>
-              <property name="sizeHint" stdset="0">
-               <size>
-                <width>0</width>
-                <height>20</height>
-               </size>
-              </property>
-             </spacer>
-            </item>
-            <item>
-             <widget class="QComboBox" name="homePeriodBox1">
-              <property name="sizePolicy">
-               <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-                <horstretch>0</horstretch>
-                <verstretch>0</verstretch>
-               </sizepolicy>
-              </property>
-              <property name="maximumSize">
-               <size>
-                <width>60</width>
-                <height>16777215</height>
-               </size>
-              </property>
-              <property name="currentIndex">
-               <number>-1</number>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <widget class="QComboBox" name="homePeriodBoxMath">
-              <property name="enabled">
-               <bool>true</bool>
-              </property>
-              <property name="sizePolicy">
-               <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-                <horstretch>0</horstretch>
-                <verstretch>0</verstretch>
-               </sizepolicy>
-              </property>
-              <property name="maximumSize">
-               <size>
-                <width>100</width>
-                <height>16777215</height>
-               </size>
-              </property>
-              <item>
-               <property name="text">
-                <string>-</string>
-               </property>
-              </item>
-              <item>
-               <property name="text">
-                <string>+</string>
-               </property>
-              </item>
-             </widget>
-            </item>
-            <item>
-             <widget class="QComboBox" name="homePeriodBox2">
-              <property name="enabled">
-               <bool>true</bool>
-              </property>
-              <property name="sizePolicy">
-               <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-                <horstretch>0</horstretch>
-                <verstretch>0</verstretch>
-               </sizepolicy>
-              </property>
-              <property name="maximumSize">
-               <size>
-                <width>60</width>
-                <height>16777215</height>
-               </size>
-              </property>
-             </widget>
-            </item>
-           </layout>
-          </item>
-         </layout>
-        </widget>
-       </item>
-       <item>
-        <widget class="QGroupBox" name="groupBox_4">
-         <property name="title">
-          <string>Plot Data</string>
-         </property>
-         <layout class="QGridLayout" name="gridLayout_2">
-          <item row="0" column="0">
-           <layout class="QHBoxLayout" name="horizontalLayout">
-            <property name="sizeConstraint">
-             <enum>QLayout::SetDefaultConstraint</enum>
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;The data connected to the interface.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
             </property>
-            <item>
-             <widget class="QLabel" name="label_2">
-              <property name="maximumSize">
-               <size>
-                <width>100000</width>
-                <height>16777215</height>
-               </size>
-              </property>
-              <property name="toolTip">
-               <string>Select the type of plot.</string>
-              </property>
-              <property name="text">
-               <string>Plot type:</string>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <widget class="QComboBox" name="frontPlotFuncs">
-              <property name="sizePolicy">
-               <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-                <horstretch>0</horstretch>
-                <verstretch>0</verstretch>
-               </sizepolicy>
-              </property>
-              <property name="minimumSize">
-               <size>
-                <width>140</width>
-                <height>0</height>
-               </size>
-              </property>
-              <property name="maximumSize">
-               <size>
-                <width>16777215</width>
-                <height>16777215</height>
-               </size>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <spacer name="horizontalSpacer_12">
-              <property name="orientation">
-               <enum>Qt::Horizontal</enum>
-              </property>
-              <property name="sizeType">
-               <enum>QSizePolicy::Expanding</enum>
-              </property>
-              <property name="sizeHint" stdset="0">
-               <size>
-                <width>260</width>
-                <height>20</height>
-               </size>
-              </property>
-             </spacer>
-            </item>
-            <item>
-             <widget class="QPushButton" name="frontPlotButton">
-              <property name="enabled">
-               <bool>false</bool>
-              </property>
-              <property name="maximumSize">
-               <size>
-                <width>100</width>
-                <height>16777215</height>
-               </size>
-              </property>
-              <property name="font">
-               <font>
-                <weight>75</weight>
-                <bold>true</bold>
-               </font>
-              </property>
-              <property name="text">
-               <string>Plot</string>
-              </property>
-             </widget>
-            </item>
-           </layout>
+            <property name="text">
+             <string>Connected: N/A</string>
+            </property>
+           </widget>
           </item>
-         </layout>
-        </widget>
-       </item>
-       <item>
-        <widget class="QGroupBox" name="groupBox_5">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="title">
-          <string>Run Information</string>
-         </property>
-         <layout class="QVBoxLayout" name="verticalLayout">
           <item>
-           <widget class="QTextBrowser" name="infoBrowser">
-            <property name="sizePolicy">
-             <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-              <horstretch>0</horstretch>
-              <verstretch>0</verstretch>
-             </sizepolicy>
+           <spacer name="horizontalSpacer">
+            <property name="orientation">
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>40</width>
+              <height>20</height>
+             </size>
             </property>
+           </spacer>
+          </item>
+          <item>
+           <widget class="QPushButton" name="manageDirectoriesBtn">
             <property name="toolTip">
-             <string>Information about the loaded measurement is printed to the screen.</string>
+             <string>Define location(s) of data files.</string>
+            </property>
+            <property name="text">
+             <string>Manage Directories</string>
             </property>
            </widget>
           </item>
          </layout>
-        </widget>
-       </item>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_3">
-         <item>
-          <widget class="QPushButton" name="muonAnalysisHelp">
-           <property name="maximumSize">
-            <size>
-             <width>30</width>
-             <height>16777215</height>
-            </size>
-           </property>
-           <property name="toolTip">
-            <string/>
-           </property>
-           <property name="text">
-            <string>?</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QLabel" name="connectedDataHome">
-           <property name="toolTip">
-            <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;The data connected to the interface.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-           </property>
-           <property name="text">
-            <string>Connected: N/A</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <spacer name="horizontalSpacer">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-         <item>
-          <widget class="QPushButton" name="manageDirectoriesBtn">
-           <property name="toolTip">
-            <string>Define location(s) of data files.</string>
-           </property>
-           <property name="text">
-            <string>Manage Directories</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="GroupingOptions">
-      <attribute name="title">
-       <string>Grouping Options</string>
-      </attribute>
-      <attribute name="toolTip">
-       <string>The Grouping Options tab allows:
+        </item>
+       </layout>
+      </widget>
+      <widget class="QWidget" name="GroupingOptions">
+       <attribute name="title">
+        <string>Grouping Options</string>
+       </attribute>
+       <attribute name="toolTip">
+        <string>The Grouping Options tab allows:
 ï‚· grouping files to be loaded, saved, modified or cleared
 ï‚· regrouped data to be plotted
 ï‚· alpha values to be determined from T20 measurements
 ï‚· raw data plotting options to be selected</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_8">
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_6">
-         <item>
-          <widget class="QPushButton" name="loadGroupButton">
-           <property name="toolTip">
-            <string>Opens a file browser window. Use it to select a grouping file.</string>
-           </property>
-           <property name="text">
-            <string>Load Grouping File</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QPushButton" name="saveGroupButton">
-           <property name="toolTip">
-            <string>Opens a file browser window. Use it to save a grouping file.</string>
-           </property>
-           <property name="text">
-            <string>Save Grouping</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QPushButton" name="clearGroupingButton">
-           <property name="toolTip">
-            <string>Clears group and pair tables.</string>
-           </property>
-           <property name="text">
-            <string>Clear Grouping</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_8">
-         <item>
-          <widget class="QLabel" name="label_9">
-           <property name="text">
-            <string>Description:</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QLineEdit" name="groupDescription"/>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <widget class="QGroupBox" name="groupBox_8">
-         <property name="title">
-          <string>Group Table</string>
-         </property>
-         <layout class="QVBoxLayout" name="verticalLayout_6">
+       </attribute>
+       <layout class="QVBoxLayout" name="verticalLayout_8">
+        <item>
+         <layout class="QHBoxLayout" name="horizontalLayout_6">
           <item>
-           <widget class="QTableWidget" name="groupTable">
+           <widget class="QPushButton" name="loadGroupButton">
             <property name="toolTip">
-             <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+             <string>Opens a file browser window. Use it to select a grouping file.</string>
+            </property>
+            <property name="text">
+             <string>Load Grouping File</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QPushButton" name="saveGroupButton">
+            <property name="toolTip">
+             <string>Opens a file browser window. Use it to save a grouping file.</string>
+            </property>
+            <property name="text">
+             <string>Save Grouping</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QPushButton" name="clearGroupingButton">
+            <property name="toolTip">
+             <string>Clears group and pair tables.</string>
+            </property>
+            <property name="text">
+             <string>Clear Grouping</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
+        <item>
+         <layout class="QHBoxLayout" name="horizontalLayout_8">
+          <item>
+           <widget class="QLabel" name="label_9">
+            <property name="text">
+             <string>Description:</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QLineEdit" name="groupDescription"/>
+          </item>
+         </layout>
+        </item>
+        <item>
+         <widget class="QGroupBox" name="groupBox_8">
+          <property name="title">
+           <string>Group Table</string>
+          </property>
+          <layout class="QVBoxLayout" name="verticalLayout_6">
+           <item>
+            <widget class="QTableWidget" name="groupTable">
+             <property name="toolTip">
+              <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Segoe UI'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;For a valid grouping a unique name must be provided and also a valid Detector ID string. Examples of valid detector ID strings includes: &amp;quot;1,2-5,7-9,11&amp;quot; which specify spectra 1,2,3,4,5,7,8,9 and 11.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-            </property>
-            <property name="rowCount">
-             <number>20</number>
-            </property>
-            <property name="columnCount">
-             <number>3</number>
-            </property>
-            <attribute name="horizontalHeaderCascadingSectionResizes">
-             <bool>false</bool>
-            </attribute>
-            <attribute name="horizontalHeaderStretchLastSection">
-             <bool>true</bool>
-            </attribute>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <column>
-             <property name="text">
-              <string>Group
-(Name)</string>
              </property>
-            </column>
-            <column>
-             <property name="text">
-              <string>Detector IDs</string>
+             <property name="rowCount">
+              <number>20</number>
              </property>
-            </column>
-            <column>
-             <property name="text">
-              <string>Ndet</string>
+             <property name="columnCount">
+              <number>3</number>
              </property>
-            </column>
-           </widget>
-          </item>
-          <item>
-           <layout class="QHBoxLayout" name="horizontalLayout_9">
-            <item>
-             <spacer name="horizontalSpacer_6">
-              <property name="orientation">
-               <enum>Qt::Horizontal</enum>
-              </property>
-              <property name="sizeHint" stdset="0">
-               <size>
-                <width>40</width>
-                <height>20</height>
-               </size>
+             <attribute name="horizontalHeaderCascadingSectionResizes">
+              <bool>false</bool>
+             </attribute>
+             <attribute name="horizontalHeaderStretchLastSection">
+              <bool>true</bool>
+             </attribute>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <column>
+              <property name="text">
+               <string>Group
+(Name)</string>
               </property>
-             </spacer>
-            </item>
-            <item>
-             <widget class="QLabel" name="label_5">
+             </column>
+             <column>
               <property name="text">
-               <string>Plot type:</string>
+               <string>Detector IDs</string>
               </property>
-             </widget>
-            </item>
-            <item>
-             <widget class="QComboBox" name="groupTablePlotChoice">
-              <item>
-               <property name="text">
-                <string>Asymmetry</string>
+             </column>
+             <column>
+              <property name="text">
+               <string>Ndet</string>
+              </property>
+             </column>
+            </widget>
+           </item>
+           <item>
+            <layout class="QHBoxLayout" name="horizontalLayout_9">
+             <item>
+              <spacer name="horizontalSpacer_6">
+               <property name="orientation">
+                <enum>Qt::Horizontal</enum>
                </property>
-              </item>
-              <item>
-               <property name="text">
-                <string>Counts</string>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>40</width>
+                 <height>20</height>
+                </size>
                </property>
-              </item>
-              <item>
+              </spacer>
+             </item>
+             <item>
+              <widget class="QLabel" name="label_5">
                <property name="text">
-                <string>Logorithm</string>
-               </property>
-              </item>
-             </widget>
-            </item>
-            <item>
-             <widget class="QPushButton" name="groupTablePlotButton">
-              <property name="enabled">
-               <bool>false</bool>
-              </property>
-              <property name="toolTip">
-               <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+                <string>Plot type:</string>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QComboBox" name="groupTablePlotChoice">
+               <item>
+                <property name="text">
+                 <string>Asymmetry</string>
+                </property>
+               </item>
+               <item>
+                <property name="text">
+                 <string>Counts</string>
+                </property>
+               </item>
+               <item>
+                <property name="text">
+                 <string>Logorithm</string>
+                </property>
+               </item>
+              </widget>
+             </item>
+             <item>
+              <widget class="QPushButton" name="groupTablePlotButton">
+               <property name="enabled">
+                <bool>false</bool>
+               </property>
+               <property name="toolTip">
+                <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Plots the group highlighted most&lt;/span&gt;&lt;/p&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;recently in the group table. The &lt;/span&gt;&lt;/p&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;type of plot can be selected.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-              </property>
-              <property name="text">
-               <string>Plot</string>
-              </property>
-             </widget>
-            </item>
-           </layout>
-          </item>
-         </layout>
-        </widget>
-       </item>
-       <item>
-        <widget class="QGroupBox" name="groupBox_9">
-         <property name="title">
-          <string>Pair Table</string>
-         </property>
-         <layout class="QGridLayout" name="gridLayout_5">
-          <item row="0" column="0">
-           <widget class="QTableWidget" name="pairTable">
-            <property name="maximumSize">
-             <size>
-              <width>16777215</width>
-              <height>16777215</height>
-             </size>
-            </property>
-            <property name="toolTip">
-             <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+               </property>
+               <property name="text">
+                <string>Plot</string>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item>
+         <widget class="QGroupBox" name="groupBox_9">
+          <property name="title">
+           <string>Pair Table</string>
+          </property>
+          <layout class="QGridLayout" name="gridLayout_5">
+           <item row="0" column="0">
+            <widget class="QTableWidget" name="pairTable">
+             <property name="maximumSize">
+              <size>
+               <width>16777215</width>
+               <height>16777215</height>
+              </size>
+             </property>
+             <property name="toolTip">
+              <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Segoe UI'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;A valid pair needs a unique pair name and associated alpha value.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-            </property>
-            <property name="rowCount">
-             <number>10</number>
-            </property>
-            <attribute name="horizontalHeaderStretchLastSection">
-             <bool>true</bool>
-            </attribute>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <row/>
-            <column>
-             <property name="text">
-              <string>Group Pair 
-(Name)</string>
              </property>
-            </column>
-            <column>
-             <property name="text">
-              <string>Forward 
-(Group name)</string>
+             <property name="rowCount">
+              <number>10</number>
              </property>
-            </column>
-            <column>
-             <property name="text">
-              <string>Backward 
+             <attribute name="horizontalHeaderStretchLastSection">
+              <bool>true</bool>
+             </attribute>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <row/>
+             <column>
+              <property name="text">
+               <string>Group Pair 
+(Name)</string>
+              </property>
+             </column>
+             <column>
+              <property name="text">
+               <string>Forward 
+(Group name)</string>
+              </property>
+             </column>
+             <column>
+              <property name="text">
+               <string>Backward 
 (Group name)</string>
-             </property>
-            </column>
-            <column>
-             <property name="text">
-              <string>Alpha</string>
-             </property>
-            </column>
-           </widget>
-          </item>
-          <item row="1" column="0">
-           <layout class="QHBoxLayout" name="horizontalLayout_10">
-            <item>
-             <widget class="QPushButton" name="guessAlphaButton">
-              <property name="enabled">
-               <bool>false</bool>
               </property>
-              <property name="toolTip">
-               <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+             </column>
+             <column>
+              <property name="text">
+               <string>Alpha</string>
+              </property>
+             </column>
+            </widget>
+           </item>
+           <item row="1" column="0">
+            <layout class="QHBoxLayout" name="horizontalLayout_10">
+             <item>
+              <widget class="QPushButton" name="guessAlphaButton">
+               <property name="enabled">
+                <bool>false</bool>
+               </property>
+               <property name="toolTip">
+                <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Guess a new value for &lt;/span&gt;&lt;/p&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;alpha for Group Pair &lt;/span&gt;&lt;/p&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;highlighted / selected.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-              </property>
-              <property name="text">
-               <string>Guess Alpha</string>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <spacer name="horizontalSpacer_7">
-              <property name="orientation">
-               <enum>Qt::Horizontal</enum>
-              </property>
-              <property name="sizeHint" stdset="0">
-               <size>
-                <width>40</width>
-                <height>20</height>
-               </size>
-              </property>
-             </spacer>
-            </item>
-            <item>
-             <widget class="QLabel" name="label_6">
-              <property name="text">
-               <string>Plot type (for pair):</string>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <widget class="QComboBox" name="pairTablePlotChoice">
-              <item>
+               </property>
                <property name="text">
-                <string>Asymmetry</string>
-               </property>
-              </item>
-             </widget>
-            </item>
-            <item>
-             <widget class="QPushButton" name="pairTablePlotButton">
-              <property name="enabled">
-               <bool>false</bool>
-              </property>
-              <property name="toolTip">
-               <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+                <string>Guess Alpha</string>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <spacer name="horizontalSpacer_7">
+               <property name="orientation">
+                <enum>Qt::Horizontal</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>40</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+             <item>
+              <widget class="QLabel" name="label_6">
+               <property name="text">
+                <string>Plot type (for pair):</string>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QComboBox" name="pairTablePlotChoice">
+               <item>
+                <property name="text">
+                 <string>Asymmetry</string>
+                </property>
+               </item>
+              </widget>
+             </item>
+             <item>
+              <widget class="QPushButton" name="pairTablePlotButton">
+               <property name="enabled">
+                <bool>false</bool>
+               </property>
+               <property name="toolTip">
+                <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Plots the pair highlighted most &lt;/span&gt;&lt;/p&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;recently in the pair table. The &lt;/span&gt;&lt;/p&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;type of plot can be selected.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-              </property>
-              <property name="text">
-               <string>Plot</string>
-              </property>
-             </widget>
-            </item>
-           </layout>
-          </item>
-         </layout>
-        </widget>
-       </item>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_7">
-         <item>
-          <widget class="QPushButton" name="muonAnalysisHelpGrouping">
-           <property name="maximumSize">
-            <size>
-             <width>30</width>
-             <height>16777215</height>
-            </size>
-           </property>
-           <property name="toolTip">
-            <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+               </property>
+               <property name="text">
+                <string>Plot</string>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item>
+         <layout class="QHBoxLayout" name="horizontalLayout_7">
+          <item>
+           <widget class="QPushButton" name="muonAnalysisHelpGrouping">
+            <property name="maximumSize">
+             <size>
+              <width>30</width>
+              <height>16777215</height>
+             </size>
+            </property>
+            <property name="toolTip">
+             <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;42&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-           </property>
-           <property name="text">
-            <string>?</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QLabel" name="connectedDataGrouping">
-           <property name="toolTip">
-            <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+            </property>
+            <property name="text">
+             <string>?</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QLabel" name="connectedDataGrouping">
+            <property name="toolTip">
+             <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;The data connected to the interface.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-           </property>
-           <property name="text">
-            <string>Connected: N/A</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <spacer name="horizontalSpacer_4">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-        </layout>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="DataAnalysis">
-      <attribute name="title">
-       <string>Data Analysis</string>
-      </attribute>
-      <attribute name="toolTip">
-       <string>The Data Analysis tab allows:
+            </property>
+            <property name="text">
+             <string>Connected: N/A</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <spacer name="horizontalSpacer_4">
+            <property name="orientation">
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>40</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
+        </item>
+       </layout>
+      </widget>
+      <widget class="QWidget" name="DataAnalysis">
+       <attribute name="title">
+        <string>Data Analysis</string>
+       </attribute>
+       <attribute name="toolTip">
+        <string>The Data Analysis tab allows:
 ï‚· selected functions to fit to the data
 ï‚· changing of fit ranges and parameters
 ï‚· the user to fit data </string>
-      </attribute>
-      <layout class="QGridLayout" name="gridLayout_3">
-       <item row="1" column="0">
-        <layout class="QGridLayout" name="gridLayout_7">
-         <item row="0" column="0">
-          <widget class="QPushButton" name="muonAnalysisHelpDataAnalysis">
-           <property name="maximumSize">
-            <size>
-             <width>30</width>
-             <height>16777215</height>
-            </size>
-           </property>
-           <property name="toolTip">
-            <string/>
-           </property>
-           <property name="text">
-            <string>?</string>
-           </property>
-           <property name="autoRepeatDelay">
-            <number>300</number>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1">
-          <spacer name="horizontalSpacer_16">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-        </layout>
-       </item>
-       <item row="0" column="0">
-        <widget class="MantidQt::MantidWidgets::MuonFitPropertyBrowser" name="fitBrowser">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="ResultsTable">
-      <attribute name="title">
-       <string>Results Table</string>
-      </attribute>
-      <attribute name="toolTip">
-       <string>The Results Table tab allows:
+       </attribute>
+       <layout class="QGridLayout" name="gridLayout_3">
+        <item row="1" column="0">
+         <layout class="QGridLayout" name="gridLayout_7">
+          <item row="0" column="0">
+           <widget class="QPushButton" name="muonAnalysisHelpDataAnalysis">
+            <property name="maximumSize">
+             <size>
+              <width>30</width>
+              <height>16777215</height>
+             </size>
+            </property>
+            <property name="toolTip">
+             <string/>
+            </property>
+            <property name="text">
+             <string>?</string>
+            </property>
+            <property name="autoRepeatDelay">
+             <number>300</number>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="1">
+           <spacer name="horizontalSpacer_16">
+            <property name="orientation">
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>40</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
+        </item>
+        <item row="0" column="0">
+         <widget class="MantidQt::MantidWidgets::MuonFitPropertyBrowser" name="fitBrowser">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </widget>
+      <widget class="QWidget" name="ResultsTable">
+       <attribute name="title">
+        <string>Results Table</string>
+       </attribute>
+       <attribute name="toolTip">
+        <string>The Results Table tab allows:
 ï‚· creating result(s) tables
 ï‚· selecting which instrument log values (temp, field etc) to write out alongside the fit 
      parameters
 ï‚· option to write out fit information from one or several data files</string>
-      </attribute>
-      <layout class="QGridLayout" name="gridLayout_14">
-       <item row="0" column="0">
-        <widget class="QGroupBox" name="groupBox_12">
-         <property name="minimumSize">
-          <size>
-           <width>0</width>
-           <height>0</height>
-          </size>
-         </property>
-         <property name="title">
-          <string>Values</string>
-         </property>
-         <layout class="QGridLayout" name="gridLayout_13">
-          <item row="1" column="0">
-           <layout class="QGridLayout" name="gridLayout_16">
-            <item row="0" column="1">
-             <widget class="QCheckBox" name="selectAllLogValues">
-              <property name="toolTip">
-               <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+       </attribute>
+       <layout class="QGridLayout" name="gridLayout_14">
+        <item row="0" column="0">
+         <widget class="QGroupBox" name="groupBox_12">
+          <property name="minimumSize">
+           <size>
+            <width>0</width>
+            <height>0</height>
+           </size>
+          </property>
+          <property name="title">
+           <string>Values</string>
+          </property>
+          <layout class="QGridLayout" name="gridLayout_13">
+           <item row="1" column="0">
+            <layout class="QGridLayout" name="gridLayout_16">
+             <item row="0" column="1">
+              <widget class="QCheckBox" name="selectAllLogValues">
+               <property name="toolTip">
+                <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
@@ -1429,243 +1466,243 @@ p, li { white-space: pre-wrap; }
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;unchecked then no log values are &lt;/span&gt;&lt;/p&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;written but, instead, specific log &lt;/span&gt;&lt;/p&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;values can be selected by the user.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-              </property>
-              <property name="text">
-               <string>Select/Deselect All</string>
-              </property>
-              <property name="checked">
-               <bool>false</bool>
-              </property>
-             </widget>
-            </item>
-            <item row="0" column="0">
-             <spacer name="horizontalSpacer_22">
-              <property name="orientation">
-               <enum>Qt::Horizontal</enum>
-              </property>
-              <property name="sizeHint" stdset="0">
-               <size>
-                <width>40</width>
-                <height>20</height>
-               </size>
-              </property>
-             </spacer>
-            </item>
-           </layout>
-          </item>
-          <item row="0" column="0">
-           <widget class="QTableWidget" name="valueTable">
-            <property name="toolTip">
-             <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+               </property>
+               <property name="text">
+                <string>Select/Deselect All</string>
+               </property>
+               <property name="checked">
+                <bool>false</bool>
+               </property>
+              </widget>
+             </item>
+             <item row="0" column="0">
+              <spacer name="horizontalSpacer_22">
+               <property name="orientation">
+                <enum>Qt::Horizontal</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>40</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+            </layout>
+           </item>
+           <item row="0" column="0">
+            <widget class="QTableWidget" name="valueTable">
+             <property name="toolTip">
+              <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Segoe UI'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Allows the user to select which instrument log values to include in the results table.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-            </property>
-            <property name="rowCount">
-             <number>0</number>
-            </property>
-            <attribute name="horizontalHeaderDefaultSectionSize">
-             <number>390</number>
-            </attribute>
-            <attribute name="horizontalHeaderStretchLastSection">
-             <bool>true</bool>
-            </attribute>
-            <attribute name="verticalHeaderHighlightSections">
-             <bool>true</bool>
-            </attribute>
-            <attribute name="verticalHeaderStretchLastSection">
-             <bool>false</bool>
-            </attribute>
-            <column>
-             <property name="text">
-              <string>Log Value</string>
              </property>
-            </column>
-            <column>
-             <property name="text">
-              <string>Include</string>
+             <property name="rowCount">
+              <number>0</number>
              </property>
-            </column>
-           </widget>
-          </item>
-         </layout>
-        </widget>
-       </item>
-       <item row="1" column="0">
-        <widget class="QGroupBox" name="groupBox_11">
-         <property name="minimumSize">
-          <size>
-           <width>0</width>
-           <height>0</height>
-          </size>
-         </property>
-         <property name="title">
-          <string>Fitting Results</string>
-         </property>
-         <layout class="QGridLayout" name="gridLayout_19">
-          <item row="2" column="0">
-           <layout class="QGridLayout" name="gridLayout_15">
-            <item row="0" column="1">
-             <widget class="QCheckBox" name="selectAllFittingResults">
-              <property name="toolTip">
-               <string>If checked then the fit results 
+             <attribute name="horizontalHeaderDefaultSectionSize">
+              <number>390</number>
+             </attribute>
+             <attribute name="horizontalHeaderStretchLastSection">
+              <bool>true</bool>
+             </attribute>
+             <attribute name="verticalHeaderHighlightSections">
+              <bool>true</bool>
+             </attribute>
+             <attribute name="verticalHeaderStretchLastSection">
+              <bool>false</bool>
+             </attribute>
+             <column>
+              <property name="text">
+               <string>Log Value</string>
+              </property>
+             </column>
+             <column>
+              <property name="text">
+               <string>Include</string>
+              </property>
+             </column>
+            </widget>
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item row="1" column="0">
+         <widget class="QGroupBox" name="groupBox_11">
+          <property name="minimumSize">
+           <size>
+            <width>0</width>
+            <height>0</height>
+           </size>
+          </property>
+          <property name="title">
+           <string>Fitting Results</string>
+          </property>
+          <layout class="QGridLayout" name="gridLayout_19">
+           <item row="2" column="0">
+            <layout class="QGridLayout" name="gridLayout_15">
+             <item row="0" column="1">
+              <widget class="QCheckBox" name="selectAllFittingResults">
+               <property name="toolTip">
+                <string>If checked then the fit results 
 from all the runs listed are 
 selected and written to the 
 results table.</string>
-              </property>
-              <property name="text">
-               <string>Select/Deselect All</string>
-              </property>
-              <property name="checked">
-               <bool>true</bool>
-              </property>
-             </widget>
-            </item>
-            <item row="0" column="0">
-             <spacer name="horizontalSpacer_13">
-              <property name="orientation">
-               <enum>Qt::Horizontal</enum>
-              </property>
-              <property name="sizeHint" stdset="0">
-               <size>
-                <width>40</width>
-                <height>20</height>
-               </size>
-              </property>
-             </spacer>
-            </item>
-           </layout>
-          </item>
-          <item row="1" column="0">
-           <widget class="QTableWidget" name="fittingResultsTable">
-            <property name="toolTip">
-             <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+               </property>
+               <property name="text">
+                <string>Select/Deselect All</string>
+               </property>
+               <property name="checked">
+                <bool>true</bool>
+               </property>
+              </widget>
+             </item>
+             <item row="0" column="0">
+              <spacer name="horizontalSpacer_13">
+               <property name="orientation">
+                <enum>Qt::Horizontal</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>40</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+            </layout>
+           </item>
+           <item row="1" column="0">
+            <widget class="QTableWidget" name="fittingResultsTable">
+             <property name="toolTip">
+              <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Segoe UI'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;A group listing all the runs / data files for which fit parameters exist.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-            </property>
-            <property name="rowCount">
-             <number>0</number>
-            </property>
-            <attribute name="horizontalHeaderDefaultSectionSize">
-             <number>390</number>
-            </attribute>
-            <attribute name="horizontalHeaderMinimumSectionSize">
-             <number>27</number>
-            </attribute>
-            <attribute name="horizontalHeaderStretchLastSection">
-             <bool>true</bool>
-            </attribute>
-            <attribute name="verticalHeaderCascadingSectionResizes">
-             <bool>false</bool>
-            </attribute>
-            <attribute name="verticalHeaderHighlightSections">
-             <bool>true</bool>
-            </attribute>
-            <attribute name="verticalHeaderStretchLastSection">
-             <bool>false</bool>
-            </attribute>
-            <column>
-             <property name="text">
-              <string>Fit Table Name</string>
-             </property>
-            </column>
-            <column>
-             <property name="text">
-              <string>Include</string>
              </property>
-             <property name="textAlignment">
-              <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+             <property name="rowCount">
+              <number>0</number>
              </property>
-            </column>
-           </widget>
-          </item>
-          <item row="0" column="0">
-           <layout class="QHBoxLayout" name="horizontalLayout_12">
-            <property name="spacing">
-             <number>6</number>
-            </property>
-            <item>
-             <widget class="QRadioButton" name="individualFit">
-              <property name="sizePolicy">
-               <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-                <horstretch>0</horstretch>
-                <verstretch>0</verstretch>
-               </sizepolicy>
-              </property>
+             <attribute name="horizontalHeaderDefaultSectionSize">
+              <number>390</number>
+             </attribute>
+             <attribute name="horizontalHeaderMinimumSectionSize">
+              <number>27</number>
+             </attribute>
+             <attribute name="horizontalHeaderStretchLastSection">
+              <bool>true</bool>
+             </attribute>
+             <attribute name="verticalHeaderCascadingSectionResizes">
+              <bool>false</bool>
+             </attribute>
+             <attribute name="verticalHeaderHighlightSections">
+              <bool>true</bool>
+             </attribute>
+             <attribute name="verticalHeaderStretchLastSection">
+              <bool>false</bool>
+             </attribute>
+             <column>
               <property name="text">
-               <string>Individual fits</string>
-              </property>
-              <property name="checked">
-               <bool>true</bool>
-              </property>
-              <attribute name="buttonGroup">
-               <string notr="true">fitType</string>
-              </attribute>
-             </widget>
-            </item>
-            <item>
-             <widget class="QRadioButton" name="sequentialFit">
-              <property name="enabled">
-               <bool>false</bool>
-              </property>
-              <property name="sizePolicy">
-               <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-                <horstretch>0</horstretch>
-                <verstretch>0</verstretch>
-               </sizepolicy>
+               <string>Fit Table Name</string>
               </property>
+             </column>
+             <column>
               <property name="text">
-               <string>Sequential fits:</string>
-              </property>
-              <attribute name="buttonGroup">
-               <string notr="true">fitType</string>
-              </attribute>
-             </widget>
-            </item>
-            <item>
-             <widget class="QComboBox" name="fitLabelCombo">
-              <property name="enabled">
-               <bool>false</bool>
-              </property>
-              <property name="sizePolicy">
-               <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-                <horstretch>0</horstretch>
-                <verstretch>0</verstretch>
-               </sizepolicy>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <spacer name="horizontalSpacer_25">
-              <property name="orientation">
-               <enum>Qt::Horizontal</enum>
-              </property>
-              <property name="sizeHint" stdset="0">
-               <size>
-                <width>40</width>
-                <height>20</height>
-               </size>
-              </property>
-             </spacer>
-            </item>
-           </layout>
-          </item>
-         </layout>
-        </widget>
-       </item>
-       <item row="2" column="0">
-        <widget class="QGroupBox" name="groupBox_37">
-         <property name="title">
-          <string>Table</string>
-         </property>
-         <layout class="QGridLayout" name="gridLayout_49">
-          <item row="0" column="2">
-           <widget class="QPushButton" name="createTableBtn">
-            <property name="toolTip">
-             <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+               <string>Include</string>
+              </property>
+              <property name="textAlignment">
+               <set>AlignCenter</set>
+              </property>
+             </column>
+            </widget>
+           </item>
+           <item row="0" column="0">
+            <layout class="QHBoxLayout" name="horizontalLayout_12">
+             <property name="spacing">
+              <number>6</number>
+             </property>
+             <item>
+              <widget class="QRadioButton" name="individualFit">
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+               <property name="text">
+                <string>Individual fits</string>
+               </property>
+               <property name="checked">
+                <bool>true</bool>
+               </property>
+               <attribute name="buttonGroup">
+                <string notr="true">fitType</string>
+               </attribute>
+              </widget>
+             </item>
+             <item>
+              <widget class="QRadioButton" name="sequentialFit">
+               <property name="enabled">
+                <bool>false</bool>
+               </property>
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+               <property name="text">
+                <string>Sequential fits:</string>
+               </property>
+               <attribute name="buttonGroup">
+                <string notr="true">fitType</string>
+               </attribute>
+              </widget>
+             </item>
+             <item>
+              <widget class="QComboBox" name="fitLabelCombo">
+               <property name="enabled">
+                <bool>false</bool>
+               </property>
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <spacer name="horizontalSpacer_25">
+               <property name="orientation">
+                <enum>Qt::Horizontal</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>40</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+            </layout>
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item row="2" column="0">
+         <widget class="QGroupBox" name="groupBox_37">
+          <property name="title">
+           <string>Table</string>
+          </property>
+          <layout class="QGridLayout" name="gridLayout_49">
+           <item row="0" column="2">
+            <widget class="QPushButton" name="createTableBtn">
+             <property name="toolTip">
+              <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
@@ -1673,217 +1710,217 @@ p, li { white-space: pre-wrap; }
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;contains fit results and log &lt;/span&gt;&lt;/p&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;values from all the ‘checked’ &lt;/span&gt;&lt;/p&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;options.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+             </property>
+             <property name="text">
+              <string>Create Table</string>
+             </property>
+            </widget>
+           </item>
+           <item row="0" column="1">
+            <widget class="QLineEdit" name="tableName"/>
+           </item>
+           <item row="0" column="0">
+            <widget class="QLabel" name="label_36">
+             <property name="toolTip">
+              <string>A user defined name for the results table.</string>
+             </property>
+             <property name="text">
+              <string>Name:</string>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item row="3" column="0">
+         <layout class="QGridLayout" name="gridLayout_12">
+          <item row="0" column="0">
+           <widget class="QPushButton" name="muonAnalysisHelpResults">
+            <property name="maximumSize">
+             <size>
+              <width>30</width>
+              <height>16777215</height>
+             </size>
+            </property>
+            <property name="toolTip">
+             <string>42</string>
             </property>
             <property name="text">
-             <string>Create Table</string>
+             <string>?</string>
             </property>
            </widget>
           </item>
           <item row="0" column="1">
-           <widget class="QLineEdit" name="tableName"/>
-          </item>
-          <item row="0" column="0">
-           <widget class="QLabel" name="label_36">
-            <property name="toolTip">
-             <string>A user defined name for the results table.</string>
+           <spacer name="horizontalSpacer_21">
+            <property name="orientation">
+             <enum>Qt::Horizontal</enum>
             </property>
-            <property name="text">
-             <string>Name:</string>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>40</width>
+              <height>20</height>
+             </size>
             </property>
-           </widget>
+           </spacer>
           </item>
          </layout>
-        </widget>
-       </item>
-       <item row="3" column="0">
-        <layout class="QGridLayout" name="gridLayout_12">
-         <item row="0" column="0">
-          <widget class="QPushButton" name="muonAnalysisHelpResults">
-           <property name="maximumSize">
-            <size>
-             <width>30</width>
-             <height>16777215</height>
-            </size>
-           </property>
-           <property name="toolTip">
-            <string>42</string>
-           </property>
-           <property name="text">
-            <string>?</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1">
-          <spacer name="horizontalSpacer_21">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-        </layout>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="Settings">
-      <attribute name="title">
-       <string>Settings</string>
-      </attribute>
-      <attribute name="toolTip">
-       <string>The Settings tab allows:
+        </item>
+       </layout>
+      </widget>
+      <widget class="QWidget" name="Settings">
+       <attribute name="title">
+        <string>Settings</string>
+       </attribute>
+       <attribute name="toolTip">
+        <string>The Settings tab allows:
 ï‚· modification of plot styles (lines, symbols etc)
 ï‚· change of time (x-axis properties) and y-axis scales
 ï‚· rebin of data for clarity
 ï‚· adjusting whether new plots are created or old plots are overwritten</string>
-      </attribute>
-      <layout class="QGridLayout" name="gridLayout_8">
-       <item row="1" column="0">
-        <widget class="QGroupBox" name="groupBox_7">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="minimumSize">
-          <size>
-           <width>0</width>
-           <height>100</height>
-          </size>
-         </property>
-         <property name="title">
-          <string>Data Binning</string>
-         </property>
-         <layout class="QGridLayout" name="gridLayout_30">
-          <item row="0" column="0">
-           <layout class="QGridLayout" name="gridLayout_24">
-            <property name="sizeConstraint">
-             <enum>QLayout::SetFixedSize</enum>
-            </property>
-            <item row="0" column="0">
-             <widget class="QLabel" name="optionLabelBinWidth">
-              <property name="text">
-               <string>Data collected with histogram bins of</string>
-              </property>
-             </widget>
-            </item>
-            <item row="1" column="0">
-             <layout class="QGridLayout" name="gridLayout_26">
-              <item row="0" column="0">
-               <widget class="QLabel" name="label_4">
-                <property name="toolTip">
-                 <string>Select how to rebin the data.</string>
-                </property>
-                <property name="text">
-                 <string>Rebin data:</string>
-                </property>
-               </widget>
-              </item>
-              <item row="0" column="1">
-               <widget class="QComboBox" name="rebinComboBox">
-                <property name="sizePolicy">
-                 <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-                  <horstretch>0</horstretch>
-                  <verstretch>0</verstretch>
-                 </sizepolicy>
-                </property>
-                <property name="maximumSize">
-                 <size>
-                  <width>80</width>
-                  <height>16777215</height>
-                 </size>
-                </property>
-                <item>
-                 <property name="text">
-                  <string>None</string>
-                 </property>
-                </item>
-                <item>
-                 <property name="text">
-                  <string>Fixed</string>
+       </attribute>
+       <layout class="QGridLayout" name="gridLayout_8">
+        <item row="1" column="0">
+         <widget class="QGroupBox" name="groupBox_7">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="minimumSize">
+           <size>
+            <width>0</width>
+            <height>100</height>
+           </size>
+          </property>
+          <property name="title">
+           <string>Data Binning</string>
+          </property>
+          <layout class="QGridLayout" name="gridLayout_30">
+           <item row="0" column="0">
+            <layout class="QGridLayout" name="gridLayout_24">
+             <property name="sizeConstraint">
+              <enum>QLayout::SetFixedSize</enum>
+             </property>
+             <item row="0" column="0">
+              <widget class="QLabel" name="optionLabelBinWidth">
+               <property name="text">
+                <string>Data collected with histogram bins of</string>
+               </property>
+              </widget>
+             </item>
+             <item row="1" column="0">
+              <layout class="QGridLayout" name="gridLayout_26">
+               <item row="0" column="0">
+                <widget class="QLabel" name="label_4">
+                 <property name="toolTip">
+                  <string>Select how to rebin the data.</string>
                  </property>
-                </item>
-                <item>
                  <property name="text">
-                  <string>Variable</string>
+                  <string>Rebin data:</string>
                  </property>
-                </item>
-               </widget>
-              </item>
-              <item row="0" column="2">
-               <widget class="QStackedWidget" name="rebinEntryState">
-                <property name="sizePolicy">
-                 <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
-                  <horstretch>0</horstretch>
-                  <verstretch>0</verstretch>
-                 </sizepolicy>
-                </property>
-                <property name="currentIndex">
-                 <number>2</number>
-                </property>
-                <widget class="QWidget" name="None">
-                 <layout class="QGridLayout" name="gridLayout_25"/>
                 </widget>
-                <widget class="QWidget" name="Fixed">
-                 <layout class="QGridLayout" name="gridLayout_28">
-                  <item row="0" column="0">
-                   <layout class="QGridLayout" name="gridLayout_27">
-                    <item row="0" column="1">
-                     <widget class="QLineEdit" name="optionStepSizeText">
-                      <property name="minimumSize">
-                       <size>
-                        <width>50</width>
-                        <height>0</height>
-                       </size>
-                      </property>
-                      <property name="maximumSize">
-                       <size>
-                        <width>16777215</width>
-                        <height>16777215</height>
-                       </size>
-                      </property>
-                     </widget>
-                    </item>
-                    <item row="0" column="0">
-                     <widget class="QLabel" name="optionBinStep">
-                      <property name="toolTip">
-                       <string>The step size defines how many bins the data is rebinned over.</string>
-                      </property>
-                      <property name="text">
-                       <string>Steps:</string>
-                      </property>
-                     </widget>
-                    </item>
-                    <item row="0" column="3">
-                     <spacer name="horizontalSpacer_9">
-                      <property name="orientation">
-                       <enum>Qt::Horizontal</enum>
-                      </property>
-                      <property name="sizeHint" stdset="0">
-                       <size>
-                        <width>400</width>
-                        <height>20</height>
-                       </size>
-                      </property>
-                     </spacer>
-                    </item>
-                   </layout>
-                  </item>
-                 </layout>
+               </item>
+               <item row="0" column="1">
+                <widget class="QComboBox" name="rebinComboBox">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                 <property name="maximumSize">
+                  <size>
+                   <width>80</width>
+                   <height>16777215</height>
+                  </size>
+                 </property>
+                 <item>
+                  <property name="text">
+                   <string>None</string>
+                  </property>
+                 </item>
+                 <item>
+                  <property name="text">
+                   <string>Fixed</string>
+                  </property>
+                 </item>
+                 <item>
+                  <property name="text">
+                   <string>Variable</string>
+                  </property>
+                 </item>
                 </widget>
-                <widget class="QWidget" name="Variable">
-                 <layout class="QGridLayout" name="gridLayout_11">
-                  <item row="0" column="0">
-                   <layout class="QGridLayout" name="gridLayout_29">
-                    <item row="0" column="0">
-                     <widget class="QLabel" name="optionBinStep_3">
-                      <property name="toolTip">
-                       <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+               </item>
+               <item row="0" column="2">
+                <widget class="QStackedWidget" name="rebinEntryState">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                 <property name="currentIndex">
+                  <number>2</number>
+                 </property>
+                 <widget class="QWidget" name="None">
+                  <layout class="QGridLayout" name="gridLayout_25"/>
+                 </widget>
+                 <widget class="QWidget" name="Fixed">
+                  <layout class="QGridLayout" name="gridLayout_28">
+                   <item row="0" column="0">
+                    <layout class="QGridLayout" name="gridLayout_27">
+                     <item row="0" column="1">
+                      <widget class="QLineEdit" name="optionStepSizeText">
+                       <property name="minimumSize">
+                        <size>
+                         <width>50</width>
+                         <height>0</height>
+                        </size>
+                       </property>
+                       <property name="maximumSize">
+                        <size>
+                         <width>16777215</width>
+                         <height>16777215</height>
+                        </size>
+                       </property>
+                      </widget>
+                     </item>
+                     <item row="0" column="0">
+                      <widget class="QLabel" name="optionBinStep">
+                       <property name="toolTip">
+                        <string>The step size defines how many bins the data is rebinned over.</string>
+                       </property>
+                       <property name="text">
+                        <string>Steps:</string>
+                       </property>
+                      </widget>
+                     </item>
+                     <item row="0" column="3">
+                      <spacer name="horizontalSpacer_9">
+                       <property name="orientation">
+                        <enum>Qt::Horizontal</enum>
+                       </property>
+                       <property name="sizeHint" stdset="0">
+                        <size>
+                         <width>400</width>
+                         <height>20</height>
+                        </size>
+                       </property>
+                      </spacer>
+                     </item>
+                    </layout>
+                   </item>
+                  </layout>
+                 </widget>
+                 <widget class="QWidget" name="Variable">
+                  <layout class="QGridLayout" name="gridLayout_11">
+                   <item row="0" column="0">
+                    <layout class="QGridLayout" name="gridLayout_29">
+                     <item row="0" column="0">
+                      <widget class="QLabel" name="optionBinStep_3">
+                       <property name="toolTip">
+                        <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
@@ -1893,658 +1930,677 @@ p, li { white-space: pre-wrap; }
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Negative width values indicate logarithmic binning. &lt;/span&gt;&lt;/p&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;For a more complex explanation click the help button&lt;/span&gt;&lt;/p&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;to the right.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-                      </property>
-                      <property name="text">
-                       <string>Bin Boundaries:</string>
-                      </property>
-                     </widget>
-                    </item>
-                    <item row="0" column="1">
-                     <widget class="QLineEdit" name="binBoundaries"/>
-                    </item>
-                    <item row="0" column="2">
-                     <spacer name="horizontalSpacer_8">
-                      <property name="orientation">
-                       <enum>Qt::Horizontal</enum>
-                      </property>
-                      <property name="sizeType">
-                       <enum>QSizePolicy::Fixed</enum>
-                      </property>
-                      <property name="sizeHint" stdset="0">
-                       <size>
-                        <width>10</width>
-                        <height>20</height>
-                       </size>
-                      </property>
-                     </spacer>
-                    </item>
-                    <item row="0" column="3">
-                     <widget class="QPushButton" name="binBoundariesHelp">
-                      <property name="sizePolicy">
-                       <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-                        <horstretch>0</horstretch>
-                        <verstretch>0</verstretch>
-                       </sizepolicy>
-                      </property>
-                      <property name="maximumSize">
-                       <size>
-                        <width>30</width>
-                        <height>16777215</height>
-                       </size>
-                      </property>
-                      <property name="toolTip">
-                       <string>Help with bin boundaries.</string>
-                      </property>
-                      <property name="text">
-                       <string>?</string>
-                      </property>
-                     </widget>
-                    </item>
-                   </layout>
-                  </item>
-                 </layout>
+                       </property>
+                       <property name="text">
+                        <string>Bin Boundaries:</string>
+                       </property>
+                      </widget>
+                     </item>
+                     <item row="0" column="1">
+                      <widget class="QLineEdit" name="binBoundaries"/>
+                     </item>
+                     <item row="0" column="2">
+                      <spacer name="horizontalSpacer_8">
+                       <property name="orientation">
+                        <enum>Qt::Horizontal</enum>
+                       </property>
+                       <property name="sizeType">
+                        <enum>QSizePolicy::Fixed</enum>
+                       </property>
+                       <property name="sizeHint" stdset="0">
+                        <size>
+                         <width>10</width>
+                         <height>20</height>
+                        </size>
+                       </property>
+                      </spacer>
+                     </item>
+                     <item row="0" column="3">
+                      <widget class="QPushButton" name="binBoundariesHelp">
+                       <property name="sizePolicy">
+                        <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+                         <horstretch>0</horstretch>
+                         <verstretch>0</verstretch>
+                        </sizepolicy>
+                       </property>
+                       <property name="maximumSize">
+                        <size>
+                         <width>30</width>
+                         <height>16777215</height>
+                        </size>
+                       </property>
+                       <property name="toolTip">
+                        <string>Help with bin boundaries.</string>
+                       </property>
+                       <property name="text">
+                        <string>?</string>
+                       </property>
+                      </widget>
+                     </item>
+                    </layout>
+                   </item>
+                  </layout>
+                 </widget>
                 </widget>
-               </widget>
-              </item>
-             </layout>
-            </item>
-           </layout>
-          </item>
-         </layout>
-        </widget>
-       </item>
-       <item row="2" column="0">
-        <widget class="QGroupBox" name="groupBox_13">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="title">
-          <string>General</string>
-         </property>
-         <layout class="QGridLayout" name="gridLayout_20">
-          <item row="3" column="0">
-           <layout class="QGridLayout" name="gridLayout_21">
-            <item row="0" column="2">
-             <spacer name="horizontalSpacer_23">
-              <property name="orientation">
-               <enum>Qt::Horizontal</enum>
-              </property>
-              <property name="sizeType">
-               <enum>QSizePolicy::Fixed</enum>
-              </property>
-              <property name="sizeHint" stdset="0">
-               <size>
-                <width>200</width>
-                <height>20</height>
-               </size>
-              </property>
-             </spacer>
-            </item>
-            <item row="0" column="1">
-             <widget class="QComboBox" name="plotCreation">
-              <property name="sizePolicy">
-               <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-                <horstretch>0</horstretch>
-                <verstretch>0</verstretch>
-               </sizepolicy>
-              </property>
-              <item>
+               </item>
+              </layout>
+             </item>
+            </layout>
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item row="2" column="0">
+         <widget class="QGroupBox" name="groupBox_13">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="title">
+           <string>General</string>
+          </property>
+          <layout class="QGridLayout" name="gridLayout_20">
+           <item row="3" column="0">
+            <layout class="QGridLayout" name="gridLayout_21">
+             <item row="0" column="2">
+              <spacer name="horizontalSpacer_23">
+               <property name="orientation">
+                <enum>Qt::Horizontal</enum>
+               </property>
+               <property name="sizeType">
+                <enum>QSizePolicy::Fixed</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>200</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+             <item row="0" column="1">
+              <widget class="QComboBox" name="plotCreation">
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+               <item>
+                <property name="text">
+                 <string>Auto-Update + Overwrite</string>
+                </property>
+               </item>
+               <item>
+                <property name="text">
+                 <string>Auto-Update</string>
+                </property>
+               </item>
+               <item>
+                <property name="text">
+                 <string>Overwrite</string>
+                </property>
+               </item>
+               <item>
+                <property name="text">
+                 <string>None</string>
+                </property>
+               </item>
+              </widget>
+             </item>
+             <item row="0" column="0">
+              <widget class="QLabel" name="label_7">
+               <property name="toolTip">
+                <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;The method in which plots should be created.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+               </property>
                <property name="text">
-                <string>Auto-Update + Overwrite</string>
+                <string>Plot Creation:</string>
+               </property>
+              </widget>
+             </item>
+             <item row="1" column="1">
+              <widget class="QComboBox" name="newPlotPolicy">
+               <item>
+                <property name="text">
+                 <string>Create new window</string>
+                </property>
+               </item>
+               <item>
+                <property name="text">
+                 <string>Use previous window</string>
+                </property>
+               </item>
+              </widget>
+             </item>
+             <item row="1" column="0">
+              <widget class="QLabel" name="label_14">
+               <property name="toolTip">
+                <string>Ensures only the graph for the current data file is displayed.</string>
                </property>
-              </item>
-              <item>
                <property name="text">
-                <string>Auto-Update</string>
+                <string>New plot policy:</string>
+               </property>
+              </widget>
+             </item>
+             <item row="1" column="2">
+              <widget class="QStackedWidget" name="newPlotPolicyOptions">
+               <property name="currentIndex">
+                <number>0</number>
+               </property>
+               <widget class="QWidget" name="page">
+                <layout class="QHBoxLayout" name="horizontalLayout_14">
+                 <property name="spacing">
+                  <number>6</number>
+                 </property>
+                 <property name="leftMargin">
+                  <number>0</number>
+                 </property>
+                 <property name="topMargin">
+                  <number>0</number>
+                 </property>
+                 <property name="rightMargin">
+                  <number>0</number>
+                 </property>
+                 <property name="bottomMargin">
+                  <number>0</number>
+                 </property>
+                 <item>
+                  <widget class="QCheckBox" name="hideGraphs">
+                   <property name="text">
+                    <string>Hide previous plots</string>
+                   </property>
+                  </widget>
+                 </item>
+                </layout>
+               </widget>
+               <widget class="QWidget" name="page_2">
+                <layout class="QHBoxLayout" name="horizontalLayout_15">
+                 <property name="leftMargin">
+                  <number>0</number>
+                 </property>
+                 <property name="topMargin">
+                  <number>0</number>
+                 </property>
+                 <property name="rightMargin">
+                  <number>0</number>
+                 </property>
+                 <property name="bottomMargin">
+                  <number>0</number>
+                 </property>
+                </layout>
+               </widget>
+              </widget>
+             </item>
+             <item row="2" column="0">
+              <widget class="QLabel" name="label_8">
+               <property name="toolTip">
+                <string>Hides the MantidPlot toolbars. Useful on small screens.</string>
                </property>
-              </item>
-              <item>
                <property name="text">
-                <string>Overwrite</string>
+                <string>Hide Toolbars:</string>
                </property>
-              </item>
-              <item>
-               <property name="text">
-                <string>None</string>
-               </property>
-              </item>
-             </widget>
-            </item>
-            <item row="0" column="0">
-             <widget class="QLabel" name="label_7">
-              <property name="toolTip">
-               <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;The method in which plots should be created.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-              </property>
-              <property name="text">
-               <string>Plot Creation:</string>
-              </property>
-             </widget>
-            </item>
-            <item row="1" column="1">
-             <widget class="QComboBox" name="newPlotPolicy">
-              <item>
+              </widget>
+             </item>
+             <item row="2" column="1">
+              <widget class="QCheckBox" name="hideToolbars">
                <property name="text">
-                <string>Create new window</string>
+                <string/>
                </property>
-              </item>
-              <item>
-               <property name="text">
-                <string>Use previous window</string>
-               </property>
-              </item>
-             </widget>
-            </item>
-            <item row="1" column="0">
-             <widget class="QLabel" name="label_14">
-              <property name="toolTip">
-               <string>Ensures only the graph for the current data file is displayed.</string>
-              </property>
-              <property name="text">
-               <string>New plot policy:</string>
-              </property>
-             </widget>
-            </item>
-            <item row="1" column="2">
-             <widget class="QStackedWidget" name="newPlotPolicyOptions">
-              <property name="currentIndex">
-               <number>0</number>
-              </property>
-              <widget class="QWidget" name="page">
-               <layout class="QHBoxLayout" name="horizontalLayout_14">
-                <property name="spacing">
-                 <number>6</number>
-                </property>
-                <property name="margin">
-                 <number>0</number>
-                </property>
-                <item>
-                 <widget class="QCheckBox" name="hideGraphs">
-                  <property name="text">
-                   <string>Hide previous plots</string>
-                  </property>
-                 </widget>
-                </item>
-               </layout>
-              </widget>
-              <widget class="QWidget" name="page_2">
-               <layout class="QHBoxLayout" name="horizontalLayout_15">
-                <property name="margin">
-                 <number>0</number>
-                </property>
-               </layout>
               </widget>
-             </widget>
-            </item>
-            <item row="2" column="0">
-             <widget class="QLabel" name="label_8">
-              <property name="toolTip">
-               <string>Hides the MantidPlot toolbars. Useful on small screens.</string>
-              </property>
-              <property name="text">
-               <string>Hide Toolbars:</string>
-              </property>
-             </widget>
-            </item>
-            <item row="2" column="1">
-             <widget class="QCheckBox" name="hideToolbars">
-              <property name="text">
-               <string/>
-              </property>
-             </widget>
-            </item>
-           </layout>
+             </item>
+            </layout>
+           </item>
+           <item row="6" column="0">
+            <spacer name="verticalSpacer">
+             <property name="orientation">
+              <enum>Qt::Vertical</enum>
+             </property>
+             <property name="sizeType">
+              <enum>QSizePolicy::Expanding</enum>
+             </property>
+             <property name="sizeHint" stdset="0">
+              <size>
+               <width>20</width>
+               <height>1000</height>
+              </size>
+             </property>
+            </spacer>
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item row="4" column="0">
+         <layout class="QGridLayout" name="gridLayout_6">
+          <item row="0" column="0">
+           <widget class="QPushButton" name="muonAnalysisHelpPlotting">
+            <property name="maximumSize">
+             <size>
+              <width>30</width>
+              <height>16777215</height>
+             </size>
+            </property>
+            <property name="toolTip">
+             <string/>
+            </property>
+            <property name="text">
+             <string>?</string>
+            </property>
+           </widget>
           </item>
-          <item row="6" column="0">
-           <spacer name="verticalSpacer">
+          <item row="0" column="2">
+           <spacer name="horizontalSpacer_15">
             <property name="orientation">
-             <enum>Qt::Vertical</enum>
-            </property>
-            <property name="sizeType">
-             <enum>QSizePolicy::Expanding</enum>
+             <enum>Qt::Horizontal</enum>
             </property>
             <property name="sizeHint" stdset="0">
              <size>
-              <width>20</width>
-              <height>1000</height>
+              <width>40</width>
+              <height>20</height>
              </size>
             </property>
            </spacer>
           </item>
-         </layout>
-        </widget>
-       </item>
-       <item row="4" column="0">
-        <layout class="QGridLayout" name="gridLayout_6">
-         <item row="0" column="0">
-          <widget class="QPushButton" name="muonAnalysisHelpPlotting">
-           <property name="maximumSize">
-            <size>
-             <width>30</width>
-             <height>16777215</height>
-            </size>
-           </property>
-           <property name="toolTip">
-            <string/>
-           </property>
-           <property name="text">
-            <string>?</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="2">
-          <spacer name="horizontalSpacer_15">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-         <item row="0" column="1">
-          <widget class="QLabel" name="connectedDataSettings">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="toolTip">
-            <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+          <item row="0" column="1">
+           <widget class="QLabel" name="connectedDataSettings">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="toolTip">
+             <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;The data connected to the interface.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-           </property>
-           <property name="text">
-            <string>Connected: N/A</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item row="0" column="0">
-        <widget class="QGroupBox" name="groupBox_6">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="title">
-          <string>Data Plot Style</string>
-         </property>
-         <layout class="QGridLayout" name="gridLayout">
-          <item row="0" column="0">
-           <layout class="QGridLayout" name="gridLayout_31">
-            <item row="0" column="0">
-             <layout class="QGridLayout" name="gridLayout_17">
-              <item row="0" column="1">
-               <widget class="QComboBox" name="connectPlotType">
-                <property name="sizePolicy">
-                 <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-                  <horstretch>0</horstretch>
-                  <verstretch>0</verstretch>
-                 </sizepolicy>
-                </property>
-                <item>
-                 <property name="text">
-                  <string>Line</string>
+            </property>
+            <property name="text">
+             <string>Connected: N/A</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
+        <item row="0" column="0">
+         <widget class="QGroupBox" name="groupBox_6">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="title">
+           <string>Data Plot Style</string>
+          </property>
+          <layout class="QGridLayout" name="gridLayout">
+           <item row="0" column="0">
+            <layout class="QGridLayout" name="gridLayout_31">
+             <item row="0" column="0">
+              <layout class="QGridLayout" name="gridLayout_17">
+               <item row="0" column="1">
+                <widget class="QComboBox" name="connectPlotType">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
                  </property>
-                </item>
-                <item>
-                 <property name="text">
-                  <string>Scatter</string>
+                 <item>
+                  <property name="text">
+                   <string>Line</string>
+                  </property>
+                 </item>
+                 <item>
+                  <property name="text">
+                   <string>Scatter</string>
+                  </property>
+                 </item>
+                 <item>
+                  <property name="text">
+                   <string>Line + Symbol</string>
+                  </property>
+                 </item>
+                </widget>
+               </item>
+               <item row="0" column="2">
+                <spacer name="horizontalSpacer_17">
+                 <property name="orientation">
+                  <enum>Qt::Horizontal</enum>
+                 </property>
+                 <property name="sizeType">
+                  <enum>QSizePolicy::Fixed</enum>
+                 </property>
+                 <property name="sizeHint" stdset="0">
+                  <size>
+                   <width>300</width>
+                   <height>20</height>
+                  </size>
+                 </property>
+                </spacer>
+               </item>
+               <item row="0" column="0">
+                <widget class="QLabel" name="label_3">
+                 <property name="minimumSize">
+                  <size>
+                   <width>100</width>
+                   <height>0</height>
+                  </size>
+                 </property>
+                 <property name="toolTip">
+                  <string>This will change how the data looks once plotted.</string>
                  </property>
-                </item>
-                <item>
                  <property name="text">
-                  <string>Line + Symbol</string>
+                  <string>Connect Points:</string>
                  </property>
-                </item>
-               </widget>
-              </item>
-              <item row="0" column="2">
-               <spacer name="horizontalSpacer_17">
-                <property name="orientation">
-                 <enum>Qt::Horizontal</enum>
-                </property>
-                <property name="sizeType">
-                 <enum>QSizePolicy::Fixed</enum>
-                </property>
-                <property name="sizeHint" stdset="0">
-                 <size>
-                  <width>300</width>
-                  <height>20</height>
-                 </size>
-                </property>
-               </spacer>
-              </item>
-              <item row="0" column="0">
-               <widget class="QLabel" name="label_3">
-                <property name="minimumSize">
-                 <size>
-                  <width>100</width>
-                  <height>0</height>
-                 </size>
-                </property>
-                <property name="toolTip">
-                 <string>This will change how the data looks once plotted.</string>
-                </property>
-                <property name="text">
-                 <string>Connect Points:</string>
-                </property>
-               </widget>
-              </item>
-             </layout>
-            </item>
-            <item row="2" column="0">
-             <layout class="QGridLayout" name="gridLayout_10">
-              <item row="0" column="1">
-               <widget class="QLabel" name="timeAxisStartAtLabel">
-                <property name="enabled">
-                 <bool>true</bool>
-                </property>
-                <property name="toolTip">
-                 <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+                </widget>
+               </item>
+              </layout>
+             </item>
+             <item row="2" column="0">
+              <layout class="QGridLayout" name="gridLayout_10">
+               <item row="0" column="1">
+                <widget class="QLabel" name="timeAxisStartAtLabel">
+                 <property name="enabled">
+                  <bool>true</bool>
+                 </property>
+                 <property name="toolTip">
+                  <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;Plots the data from this user defined start value. This box is greyed out if the time axis is set to &amp;quot;Start at Time Zero&amp;quot;.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-                </property>
-                <property name="text">
-                 <string>Start</string>
-                </property>
-               </widget>
-              </item>
-              <item row="0" column="2">
-               <widget class="QLineEdit" name="timeAxisStartAtInput">
-                <property name="enabled">
-                 <bool>true</bool>
-                </property>
-                <property name="minimumSize">
-                 <size>
-                  <width>50</width>
-                  <height>0</height>
-                 </size>
-                </property>
-                <property name="maximumSize">
-                 <size>
-                  <width>16777215</width>
-                  <height>16777215</height>
-                 </size>
-                </property>
-                <property name="text">
-                 <string>0.3</string>
-                </property>
-               </widget>
-              </item>
-              <item row="1" column="1">
-               <widget class="QLabel" name="yAxisMinimumLabel">
-                <property name="enabled">
-                 <bool>true</bool>
-                </property>
-                <property name="toolTip">
-                 <string>Defines the lower plot limit on the y-axis. Greyed out if Auto scale is checked.</string>
-                </property>
-                <property name="text">
-                 <string>Minimum:</string>
-                </property>
-               </widget>
-              </item>
-              <item row="1" column="2">
-               <widget class="QLineEdit" name="yAxisMinimumInput">
-                <property name="enabled">
-                 <bool>false</bool>
-                </property>
-                <property name="minimumSize">
-                 <size>
-                  <width>50</width>
-                  <height>0</height>
-                 </size>
-                </property>
-                <property name="maximumSize">
-                 <size>
-                  <width>16777215</width>
-                  <height>16777215</height>
-                 </size>
-                </property>
-               </widget>
-              </item>
-              <item row="1" column="4">
-               <widget class="QLabel" name="yAxisMaximumLabel">
-                <property name="enabled">
-                 <bool>true</bool>
-                </property>
-                <property name="toolTip">
-                 <string>Defines the upper plot limit on the y-axis. Greyed out if Auto scale is checked.</string>
-                </property>
-                <property name="text">
-                 <string>Maximum:</string>
-                </property>
-               </widget>
-              </item>
-              <item row="1" column="5">
-               <widget class="QLineEdit" name="yAxisMaximumInput">
-                <property name="enabled">
-                 <bool>false</bool>
-                </property>
-                <property name="minimumSize">
-                 <size>
-                  <width>50</width>
-                  <height>0</height>
-                 </size>
-                </property>
-                <property name="maximumSize">
-                 <size>
-                  <width>16777215</width>
-                  <height>16777215</height>
-                 </size>
-                </property>
-               </widget>
-              </item>
-              <item row="0" column="4">
-               <widget class="QLabel" name="timeAxisFinishAtLabel">
-                <property name="toolTip">
-                 <string>Plots the data until this user defined end value.</string>
-                </property>
-                <property name="text">
-                 <string>Finish</string>
-                </property>
-               </widget>
-              </item>
-              <item row="0" column="5">
-               <widget class="QLineEdit" name="timeAxisFinishAtInput">
-                <property name="minimumSize">
-                 <size>
-                  <width>50</width>
-                  <height>0</height>
-                 </size>
-                </property>
-                <property name="maximumSize">
-                 <size>
-                  <width>16777215</width>
-                  <height>16777215</height>
-                 </size>
-                </property>
-                <property name="text">
-                 <string>16.0</string>
-                </property>
-               </widget>
-              </item>
-              <item row="1" column="8">
-               <widget class="QCheckBox" name="yAxisAutoscale">
-                <property name="toolTip">
-                 <string/>
-                </property>
-                <property name="text">
-                 <string>Autoscale</string>
-                </property>
-                <property name="checked">
-                 <bool>true</bool>
-                </property>
-               </widget>
-              </item>
-              <item row="2" column="8">
-               <widget class="QCheckBox" name="showErrorBars">
-                <property name="enabled">
-                 <bool>true</bool>
-                </property>
-                <property name="toolTip">
-                 <string>Show error bars on the plot if the tick-box is selected.</string>
-                </property>
-                <property name="text">
-                 <string>Show error bars</string>
-                </property>
-               </widget>
-              </item>
-              <item row="1" column="0">
-               <widget class="QLabel" name="label_11">
-                <property name="minimumSize">
-                 <size>
-                  <width>70</width>
-                  <height>0</height>
-                 </size>
-                </property>
-                <property name="toolTip">
-                 <string>Uncheck Auto-scale to specify y-axis min and max limits.</string>
-                </property>
-                <property name="text">
-                 <string>Y-axis:</string>
-                </property>
-               </widget>
-              </item>
-              <item row="0" column="8">
-               <spacer name="horizontalSpacer_19">
-                <property name="orientation">
-                 <enum>Qt::Horizontal</enum>
-                </property>
-                <property name="sizeType">
-                 <enum>QSizePolicy::Fixed</enum>
-                </property>
-                <property name="sizeHint" stdset="0">
-                 <size>
-                  <width>120</width>
-                  <height>20</height>
-                 </size>
-                </property>
-               </spacer>
-              </item>
-              <item row="1" column="6">
-               <spacer name="horizontalSpacer_20">
-                <property name="orientation">
-                 <enum>Qt::Horizontal</enum>
-                </property>
-                <property name="sizeType">
-                 <enum>QSizePolicy::Fixed</enum>
-                </property>
-                <property name="sizeHint" stdset="0">
-                 <size>
-                  <width>30</width>
-                  <height>20</height>
-                 </size>
-                </property>
-               </spacer>
-              </item>
-              <item row="1" column="3">
-               <spacer name="horizontalSpacer_14">
-                <property name="orientation">
-                 <enum>Qt::Horizontal</enum>
-                </property>
-                <property name="sizeType">
-                 <enum>QSizePolicy::Fixed</enum>
-                </property>
-                <property name="sizeHint" stdset="0">
-                 <size>
-                  <width>30</width>
-                  <height>20</height>
-                 </size>
-                </property>
-               </spacer>
-              </item>
-             </layout>
-            </item>
-            <item row="1" column="0">
-             <layout class="QGridLayout" name="gridLayout_18">
-              <item row="0" column="1">
-               <widget class="QComboBox" name="timeComboBox">
-                <property name="sizePolicy">
-                 <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-                  <horstretch>0</horstretch>
-                  <verstretch>0</verstretch>
-                 </sizepolicy>
-                </property>
-                <item>
+                 </property>
                  <property name="text">
-                  <string>Start at First Good Data</string>
+                  <string>Start</string>
+                 </property>
+                </widget>
+               </item>
+               <item row="0" column="2">
+                <widget class="QLineEdit" name="timeAxisStartAtInput">
+                 <property name="enabled">
+                  <bool>true</bool>
+                 </property>
+                 <property name="minimumSize">
+                  <size>
+                   <width>50</width>
+                   <height>0</height>
+                  </size>
+                 </property>
+                 <property name="maximumSize">
+                  <size>
+                   <width>16777215</width>
+                   <height>16777215</height>
+                  </size>
                  </property>
-                </item>
-                <item>
                  <property name="text">
-                  <string>Start at Time Zero</string>
+                  <string>0.3</string>
+                 </property>
+                </widget>
+               </item>
+               <item row="1" column="1">
+                <widget class="QLabel" name="yAxisMinimumLabel">
+                 <property name="enabled">
+                  <bool>true</bool>
+                 </property>
+                 <property name="toolTip">
+                  <string>Defines the lower plot limit on the y-axis. Greyed out if Auto scale is checked.</string>
                  </property>
-                </item>
-                <item>
                  <property name="text">
-                  <string>Custom Value</string>
+                  <string>Minimum:</string>
                  </property>
-                </item>
-               </widget>
-              </item>
-              <item row="0" column="0">
-               <widget class="QLabel" name="label_10">
-                <property name="minimumSize">
-                 <size>
-                  <width>100</width>
-                  <height>0</height>
-                 </size>
-                </property>
-                <property name="toolTip">
-                 <string>Plots the data from t = 0 or from the first good bin.</string>
-                </property>
-                <property name="text">
-                 <string>Time axis:</string>
-                </property>
-               </widget>
-              </item>
-              <item row="0" column="2">
-               <spacer name="horizontalSpacer_18">
-                <property name="orientation">
-                 <enum>Qt::Horizontal</enum>
-                </property>
-                <property name="sizeType">
-                 <enum>QSizePolicy::Fixed</enum>
-                </property>
-                <property name="sizeHint" stdset="0">
-                 <size>
-                  <width>250</width>
-                  <height>20</height>
-                 </size>
-                </property>
-               </spacer>
-              </item>
-             </layout>
-            </item>
-           </layout>
-          </item>
-         </layout>
-        </widget>
-       </item>
-      </layout>
+                </widget>
+               </item>
+               <item row="1" column="2">
+                <widget class="QLineEdit" name="yAxisMinimumInput">
+                 <property name="enabled">
+                  <bool>false</bool>
+                 </property>
+                 <property name="minimumSize">
+                  <size>
+                   <width>50</width>
+                   <height>0</height>
+                  </size>
+                 </property>
+                 <property name="maximumSize">
+                  <size>
+                   <width>16777215</width>
+                   <height>16777215</height>
+                  </size>
+                 </property>
+                </widget>
+               </item>
+               <item row="1" column="4">
+                <widget class="QLabel" name="yAxisMaximumLabel">
+                 <property name="enabled">
+                  <bool>true</bool>
+                 </property>
+                 <property name="toolTip">
+                  <string>Defines the upper plot limit on the y-axis. Greyed out if Auto scale is checked.</string>
+                 </property>
+                 <property name="text">
+                  <string>Maximum:</string>
+                 </property>
+                </widget>
+               </item>
+               <item row="1" column="5">
+                <widget class="QLineEdit" name="yAxisMaximumInput">
+                 <property name="enabled">
+                  <bool>false</bool>
+                 </property>
+                 <property name="minimumSize">
+                  <size>
+                   <width>50</width>
+                   <height>0</height>
+                  </size>
+                 </property>
+                 <property name="maximumSize">
+                  <size>
+                   <width>16777215</width>
+                   <height>16777215</height>
+                  </size>
+                 </property>
+                </widget>
+               </item>
+               <item row="0" column="4">
+                <widget class="QLabel" name="timeAxisFinishAtLabel">
+                 <property name="toolTip">
+                  <string>Plots the data until this user defined end value.</string>
+                 </property>
+                 <property name="text">
+                  <string>Finish</string>
+                 </property>
+                </widget>
+               </item>
+               <item row="0" column="5">
+                <widget class="QLineEdit" name="timeAxisFinishAtInput">
+                 <property name="minimumSize">
+                  <size>
+                   <width>50</width>
+                   <height>0</height>
+                  </size>
+                 </property>
+                 <property name="maximumSize">
+                  <size>
+                   <width>16777215</width>
+                   <height>16777215</height>
+                  </size>
+                 </property>
+                 <property name="text">
+                  <string>16.0</string>
+                 </property>
+                </widget>
+               </item>
+               <item row="1" column="8">
+                <widget class="QCheckBox" name="yAxisAutoscale">
+                 <property name="toolTip">
+                  <string/>
+                 </property>
+                 <property name="text">
+                  <string>Autoscale</string>
+                 </property>
+                 <property name="checked">
+                  <bool>true</bool>
+                 </property>
+                </widget>
+               </item>
+               <item row="2" column="8">
+                <widget class="QCheckBox" name="showErrorBars">
+                 <property name="enabled">
+                  <bool>true</bool>
+                 </property>
+                 <property name="toolTip">
+                  <string>Show error bars on the plot if the tick-box is selected.</string>
+                 </property>
+                 <property name="text">
+                  <string>Show error bars</string>
+                 </property>
+                </widget>
+               </item>
+               <item row="1" column="0">
+                <widget class="QLabel" name="label_11">
+                 <property name="minimumSize">
+                  <size>
+                   <width>70</width>
+                   <height>0</height>
+                  </size>
+                 </property>
+                 <property name="toolTip">
+                  <string>Uncheck Auto-scale to specify y-axis min and max limits.</string>
+                 </property>
+                 <property name="text">
+                  <string>Y-axis:</string>
+                 </property>
+                </widget>
+               </item>
+               <item row="0" column="8">
+                <spacer name="horizontalSpacer_19">
+                 <property name="orientation">
+                  <enum>Qt::Horizontal</enum>
+                 </property>
+                 <property name="sizeType">
+                  <enum>QSizePolicy::Fixed</enum>
+                 </property>
+                 <property name="sizeHint" stdset="0">
+                  <size>
+                   <width>120</width>
+                   <height>20</height>
+                  </size>
+                 </property>
+                </spacer>
+               </item>
+               <item row="1" column="6">
+                <spacer name="horizontalSpacer_20">
+                 <property name="orientation">
+                  <enum>Qt::Horizontal</enum>
+                 </property>
+                 <property name="sizeType">
+                  <enum>QSizePolicy::Fixed</enum>
+                 </property>
+                 <property name="sizeHint" stdset="0">
+                  <size>
+                   <width>30</width>
+                   <height>20</height>
+                  </size>
+                 </property>
+                </spacer>
+               </item>
+               <item row="1" column="3">
+                <spacer name="horizontalSpacer_14">
+                 <property name="orientation">
+                  <enum>Qt::Horizontal</enum>
+                 </property>
+                 <property name="sizeType">
+                  <enum>QSizePolicy::Fixed</enum>
+                 </property>
+                 <property name="sizeHint" stdset="0">
+                  <size>
+                   <width>30</width>
+                   <height>20</height>
+                  </size>
+                 </property>
+                </spacer>
+               </item>
+              </layout>
+             </item>
+             <item row="1" column="0">
+              <layout class="QGridLayout" name="gridLayout_18">
+               <item row="0" column="1">
+                <widget class="QComboBox" name="timeComboBox">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                 <item>
+                  <property name="text">
+                   <string>Start at First Good Data</string>
+                  </property>
+                 </item>
+                 <item>
+                  <property name="text">
+                   <string>Start at Time Zero</string>
+                  </property>
+                 </item>
+                 <item>
+                  <property name="text">
+                   <string>Custom Value</string>
+                  </property>
+                 </item>
+                </widget>
+               </item>
+               <item row="0" column="0">
+                <widget class="QLabel" name="label_10">
+                 <property name="minimumSize">
+                  <size>
+                   <width>100</width>
+                   <height>0</height>
+                  </size>
+                 </property>
+                 <property name="toolTip">
+                  <string>Plots the data from t = 0 or from the first good bin.</string>
+                 </property>
+                 <property name="text">
+                  <string>Time axis:</string>
+                 </property>
+                </widget>
+               </item>
+               <item row="0" column="2">
+                <spacer name="horizontalSpacer_18">
+                 <property name="orientation">
+                  <enum>Qt::Horizontal</enum>
+                 </property>
+                 <property name="sizeType">
+                  <enum>QSizePolicy::Fixed</enum>
+                 </property>
+                 <property name="sizeHint" stdset="0">
+                  <size>
+                   <width>250</width>
+                   <height>20</height>
+                  </size>
+                 </property>
+                </spacer>
+               </item>
+              </layout>
+             </item>
+            </layout>
+           </item>
+          </layout>
+         </widget>
+        </item>
+       </layout>
+      </widget>
      </widget>
-    </widget>
-   </item>
-  </layout>
+    </item>
+   </layout>
+  </widget>
  </widget>
  <customwidgets>
   <customwidget>
diff --git a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/PeriodicTableWidget.h b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/PeriodicTableWidget.h
index d875b5eb24253d20c42592d1a20b7cc4c3890a21..3f3d2385b580b6bedccf69d23aa0880d330f2deb 100644
--- a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/PeriodicTableWidget.h
+++ b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/PeriodicTableWidget.h
@@ -37,7 +37,8 @@ class EXPORT_OPT_MANTIDQT_MANTIDWIDGETS PeriodicTableWidget : public QWidget {
 public:
   ///Constructor
   PeriodicTableWidget(QWidget *parent = 0);
-
+  ///Destructor
+  virtual ~PeriodicTableWidget() {};
   /// Vectors to Hold the QPushButtons of Elements in corresponding Groups
   QVector<QPushButton *> OtherNonMetals;
   QVector<QPushButton *> AlkaliMetals;
@@ -75,6 +76,9 @@ public:
   ///Displays or hides the Legend for the colour coding of periodic groups
   void showGroupLegend(bool checked);
 
+  QString getValue();
+
+
 private:
   ///The Form containing the PeriodicTableWidget
   Ui::PeriodicTable ui;
diff --git a/MantidQt/MantidWidgets/src/PeriodicTableWidget.cpp b/MantidQt/MantidWidgets/src/PeriodicTableWidget.cpp
index c7144af4da6dab42683359544d22500f2fe906f8..8f35fb59816044ee9f733a2e92289b7a9df4dddb 100644
--- a/MantidQt/MantidWidgets/src/PeriodicTableWidget.cpp
+++ b/MantidQt/MantidWidgets/src/PeriodicTableWidget.cpp
@@ -205,6 +205,10 @@ QString PeriodicTableWidget::getAllCheckedElementsStr() {
   return allCheckedElementsStr;
 }
 
+QString PeriodicTableWidget::getValue() {
+    return getAllCheckedElementsStr();
+}
+
 void PeriodicTableWidget::disableButtons(
     QVector<QPushButton *> buttonsToDisable) {
   for (auto i = buttonsToDisable.begin(); i != buttonsToDisable.end(); i++) {
diff --git a/Testing/SystemTests/tests/analysis/CodeConventions.py b/Testing/SystemTests/tests/analysis/CodeConventions.py
index 58b2147fe6bc44cdae44adda43c203bd635a22bb..0a4a9a0c89154bb541f420c18a42af7176372c4c 100644
--- a/Testing/SystemTests/tests/analysis/CodeConventions.py
+++ b/Testing/SystemTests/tests/analysis/CodeConventions.py
@@ -37,7 +37,8 @@ ALG_BAD_PARAMS = {
     "SetUB(v1)":("a", "b", "c", "alpha", "beta", "gamma", "u", "v"),
     "ViewBOA(v1)":("CD-Distance"),
     "PoldiCreatePeaksFromCell(v1)":("a", "b", "c", "alpha", "beta", "gamma"),
-    "CreateMD(v1)" : ("u", "v")
+    "CreateMD(v1)" : ("u", "v"),
+    "AccumulateMD(v1)" : ("u", "v")
     }
 
 # TODO this list should be empty
diff --git a/docs/source/algorithms/AccumulateMD-v1.rst b/docs/source/algorithms/AccumulateMD-v1.rst
new file mode 100644
index 0000000000000000000000000000000000000000..3058485f87c137bc1da6161dfc990f7428905332
--- /dev/null
+++ b/docs/source/algorithms/AccumulateMD-v1.rst
@@ -0,0 +1,63 @@
+.. algorithm::
+
+.. summary::
+
+.. alias::
+
+.. properties::
+
+Description
+-----------
+
+This workflow algorithm appends new data to an existing multidimensional workspace. It allows the accumulation of data in a single MDWorkspace as you go, e.g. during an experiment.
+
+Input properties which are not described here are identical to those in the :ref:`algm-CreateMD` algorithm.
+
+InputWorkspace
+##############
+The MDEventWorkspace to append data to.
+
+DataSources
+###########
+These can be workspace names, file names or full file paths. Not all of the data need to exist when the algorithm is called. If data are named which have previously been appended to the workspace they will not be appended again. Note that data are known by name, it is therefore possible to append the same data again if the data source is renamed.
+
+Clean
+###########
+It is possible to get confused about what data has been included in an MDWorkspace if it is built up slowly over an experiment. Use this option to start afresh; it creates a new workspace using all of the data in DataSources which are available, rather then appending to the existing workspace.
+
+Usage
+-----
+
+**Simple Example**
+
+.. testcode:: ExSimpleAccumulate
+
+    # Create some sample data
+    sample_data_1 = CreateSimulationWorkspace(Instrument='MAR', BinParams=[-3,1,3], UnitX='DeltaE')
+    AddSampleLog(Workspace=sample_data_1,LogName='Ei',LogText='3.0',LogType='Number')
+    sample_data_2 = CreateSimulationWorkspace(Instrument='MAR', BinParams=[-3,1,3], UnitX='DeltaE')
+    AddSampleLog(Workspace=sample_data_2,LogName='Ei',LogText='3.0',LogType='Number')
+
+    # Create an MDWorkspace withdata from sample_data_1
+    md_ws = CreateMD(sample_data_1, Emode='Direct', Alatt=[1.4165, 1.4165,1.4165], Angdeg=[90, 90, 90], u=[1, 0, 0,], v=[0,1,0])
+
+    # Append data from sample_data_2 to the existing workspace
+    # Note: sample_data_1 will not be appended as it is already in the workspace
+    #       sample_data_3 will not be appended as it does not exist
+    acc_ws = AccumulateMD(md_ws, 'sample_data_1,sample_data_2,sample_data_3', Alatt=[1.4165, 1.4165, 1.4165], Angdeg=[90, 90, 90], u=[1, 0, 0,], v=[0,1,0])
+
+    # acc_ws should have double the number of events that md_ws has
+    print "There are {kwarg} events in each of the two data workspaces.".format(kwarg=md_ws.getNEvents()) 
+    print "The accumulated data workspace contains {kwarg} events.".format(kwarg=acc_ws.getNEvents())
+  
+Output:
+
+.. testoutput:: ExSimpleAccumulate
+
+    There are 5508 events in each of the two data workspaces.
+    The accumulated data workspace contains 11016 events.
+
+
+.. categories::
+
+.. sourcelink::
diff --git a/scripts/Interface/__init__.py b/scripts/Interface/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/scripts/__init__.py b/scripts/__init__.py
deleted file mode 100644
index fe9313f70f4255dd93b08c1ee18bf672db410516..0000000000000000000000000000000000000000
--- a/scripts/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-__author__ = 'spu92482'