From fb15f3ec16f4673fc8dcc7c312d7044e385d6688 Mon Sep 17 00:00:00 2001
From: Stuart Campbell <campbellsi@ornl.gov>
Date: Thu, 26 Apr 2012 16:53:31 -0400
Subject: [PATCH] Refs #5045. Updated to make use of MaskWorkspace.

---
 .../inc/MantidAlgorithms/BinaryOperateMasks.h |  2 +-
 .../Algorithms/src/BinaryOperateMasks.cpp     | 25 ++++++++++---------
 .../Algorithms/test/BinaryOperateMasksTest.h  | 23 ++++++++---------
 3 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/BinaryOperateMasks.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/BinaryOperateMasks.h
index 8af7b2998e1..9523db72bd6 100644
--- a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/BinaryOperateMasks.h
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/BinaryOperateMasks.h
@@ -42,7 +42,7 @@ namespace Algorithms
     /// Algorithm's version for identification overriding a virtual method
     virtual int version() const { return 1;};
     /// Algorithm's category for identification overriding a virtual method
-    virtual const std::string category() const { return "Diffraction;Transforms\\Masking";}
+    virtual const std::string category() const { return "Transforms\\Masking";}
 
   private:
     /// Sets documentation strings for this algorithm
diff --git a/Code/Mantid/Framework/Algorithms/src/BinaryOperateMasks.cpp b/Code/Mantid/Framework/Algorithms/src/BinaryOperateMasks.cpp
index a281284a841..5414a514012 100644
--- a/Code/Mantid/Framework/Algorithms/src/BinaryOperateMasks.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/BinaryOperateMasks.cpp
@@ -4,7 +4,7 @@
 *WIKI*/
 #include "MantidAlgorithms/BinaryOperateMasks.h"
 #include "MantidKernel/System.h"
-#include "MantidDataObjects/SpecialWorkspace2D.h"
+#include "MantidDataObjects/MaskWorkspace.h"
 #include "MantidAPI/WorkspaceValidators.h"
 #include "MantidKernel/ListValidator.h"
 
@@ -49,14 +49,14 @@ namespace Algorithms
     operators.push_back("XOR");
     operators.push_back("NOT");
 
-    declareProperty(new WorkspaceProperty<DataObjects::SpecialWorkspace2D>("InputWorkspace1", "", Direction::Input),
-        "SpecialWorkspace2D 1 for binary operation");
-    declareProperty(new WorkspaceProperty<DataObjects::SpecialWorkspace2D>("InputWorkspace2", "", Direction::Input, PropertyMode::Optional),
-        "Optional SpecialWorkspace2D 2 for binary operation");
+    declareProperty(new WorkspaceProperty<DataObjects::MaskWorkspace>("InputWorkspace1", "", Direction::Input),
+        "MaskWorkspace 1 for binary operation");
+    declareProperty(new WorkspaceProperty<DataObjects::MaskWorkspace>("InputWorkspace2", "", Direction::Input, PropertyMode::Optional),
+        "Optional MaskWorkspace 2 for binary operation");
     declareProperty("OperationType", "AND", boost::make_shared<StringListValidator>(operators),
         "Operator for Workspace1 and Workspace2");
-    declareProperty(new WorkspaceProperty<DataObjects::SpecialWorkspace2D>("OutputWorkspace", "", Direction::Output),
-        "Output SpecialWorkspace2D as result of binary operation");
+    declareProperty(new WorkspaceProperty<DataObjects::MaskWorkspace>("OutputWorkspace", "", Direction::Output),
+        "Output MaskWorkspace as result of binary operation");
 
     return;
   }
@@ -64,16 +64,16 @@ namespace Algorithms
   void BinaryOperateMasks::exec(){
 
     // 1. Read input
-    DataObjects::SpecialWorkspace2D_const_sptr inputws1 = getProperty("InputWorkspace1");
+    DataObjects::MaskWorkspace_const_sptr inputws1 = getProperty("InputWorkspace1");
     std::string op = getProperty("OperationType");
 
     // 2. Output
-    Mantid::DataObjects::SpecialWorkspace2D_sptr outputws = getProperty("OutputWorkspace");
+    Mantid::DataObjects::MaskWorkspace_sptr outputws = getProperty("OutputWorkspace");
 
     if (outputws != inputws1)
     {
         // if the input and output are not the same, then create a new workspace for the output.
-         outputws = boost::dynamic_pointer_cast<DataObjects::SpecialWorkspace2D>(API::WorkspaceFactory::Instance().create(inputws1));
+         outputws = boost::dynamic_pointer_cast<DataObjects::MaskWorkspace>(API::WorkspaceFactory::Instance().create(inputws1));
          outputws->copyFrom(inputws1);
     }
 
@@ -86,7 +86,8 @@ namespace Algorithms
     } else {
         // Binary operation
         // a. 2nd Input
-        DataObjects::SpecialWorkspace2D_const_sptr inputws2 = getProperty("InputWorkspace2");
+        DataObjects::MaskWorkspace_const_sptr inputws2 = getProperty("InputWorkspace2");
+        DataObjects::SpecialWorkspace2D_const_sptr inputws2_special(inputws2);
 
         unsigned int binop;
         if (op == "AND"){
@@ -98,7 +99,7 @@ namespace Algorithms
         } else{
             binop = 1000;
         }
-        outputws->binaryOperation(inputws2, binop);
+        outputws->binaryOperation(inputws2_special, binop);
 
     }
 
diff --git a/Code/Mantid/Framework/Algorithms/test/BinaryOperateMasksTest.h b/Code/Mantid/Framework/Algorithms/test/BinaryOperateMasksTest.h
index 9e06e376c3a..f2bf10d7c11 100644
--- a/Code/Mantid/Framework/Algorithms/test/BinaryOperateMasksTest.h
+++ b/Code/Mantid/Framework/Algorithms/test/BinaryOperateMasksTest.h
@@ -4,7 +4,7 @@
 #include "MantidAlgorithms/BinaryOperateMasks.h"
 #include "MantidKernel/Timer.h"
 #include "MantidKernel/System.h"
-#include "MantidDataObjects/SpecialWorkspace2D.h"
+#include "MantidDataObjects/MaskWorkspace.h"
 #include "MantidTestHelpers/ComponentCreationHelper.h"
 #include "MantidTestHelpers/WorkspaceCreationHelper.h"
 #include "MantidGeometry/Instrument.h"
@@ -30,14 +30,14 @@ public:
 
     this->binoperator.initialize();
 
-    // 1. Create SpecialWorkspaces
+    // 1. Create Mask Workspace
     Mantid::Geometry::Instrument_sptr inst1 = ComponentCreationHelper::createTestInstrumentCylindrical(5);
     // Mantid::Geometry::Instrument_sptr inst1(new Geometry::Instrument);
-    Mantid::DataObjects::SpecialWorkspace2D_sptr ws1(new  Mantid::DataObjects::SpecialWorkspace2D(inst1));
-    Mantid::DataObjects::SpecialWorkspace2D_const_sptr cws1 = boost::dynamic_pointer_cast<const Mantid::DataObjects::SpecialWorkspace2D>(ws1);
+    Mantid::DataObjects::MaskWorkspace_sptr ws1(new  Mantid::DataObjects::MaskWorkspace(inst1));
+    Mantid::DataObjects::MaskWorkspace_const_sptr cws1 = boost::dynamic_pointer_cast<const Mantid::DataObjects::MaskWorkspace>(ws1);
 
     Mantid::Geometry::Instrument_sptr inst2 = ComponentCreationHelper::createTestInstrumentCylindrical(5);
-    Mantid::DataObjects::SpecialWorkspace2D_sptr ws2(new Mantid::DataObjects::SpecialWorkspace2D(inst2));
+    Mantid::DataObjects::MaskWorkspace_sptr ws2(new Mantid::DataObjects::MaskWorkspace(inst2));
 
     std::string ws3name = "BinarySum";
 
@@ -57,8 +57,7 @@ public:
     {
       TS_ASSERT_EQUALS(this->binoperator.execute(),true);
 
-      // DataObjects::SpecialWorkspace2D_sptr ws3 = this->binoperator.getProperty("OutputWorkspace");
-      DataObjects::SpecialWorkspace2D_sptr ws3 = AnalysisDataService::Instance().retrieveWS<DataObjects::SpecialWorkspace2D>(ws3name);
+      DataObjects::MaskWorkspace_sptr ws3 = AnalysisDataService::Instance().retrieveWS<DataObjects::MaskWorkspace>(ws3name);
 
       TS_ASSERT_EQUALS(ws3->getValue(1), 1);
       TS_ASSERT_EQUALS(ws3->getValue(2), 0);
@@ -80,9 +79,9 @@ public:
   void test_NOTOperation(){
     this->binoperator.initialize();
 
-    // 1. Create SpecialWorkspaces
+    // 1. Create Mask Workspaces
     Mantid::Geometry::Instrument_sptr inst1 = ComponentCreationHelper::createTestInstrumentCylindrical(5);
-    Mantid::DataObjects::SpecialWorkspace2D_sptr ws1(new  Mantid::DataObjects::SpecialWorkspace2D(inst1));
+    Mantid::DataObjects::MaskWorkspace_sptr ws1(new  Mantid::DataObjects::MaskWorkspace(inst1));
 
     ws1->setValue(1, 0);
     ws1->setValue(3, 1);
@@ -91,11 +90,11 @@ public:
     std::string ws4name = "BinaryNOTResult";
     this->binoperator.setPropertyValue("OutputWorkspace", ws4name);
     this->binoperator.setPropertyValue("OperationType", "NOT");
-    DataObjects::SpecialWorkspace2D_sptr ws4;
+    DataObjects::MaskWorkspace_sptr ws4;
     try
     {
       TS_ASSERT_EQUALS(this->binoperator.execute(),true);
-      ws4 = AnalysisDataService::Instance().retrieveWS<DataObjects::SpecialWorkspace2D>(ws4name);
+      ws4 = AnalysisDataService::Instance().retrieveWS<DataObjects::MaskWorkspace>(ws4name);
 
       if (ws4 == NULL){
         std::cout << "Workspace4 is NULL" << std::endl;
@@ -127,7 +126,7 @@ public:
     try
     {
       TS_ASSERT_EQUALS(this->binoperator.execute(),true);
-      DataObjects::SpecialWorkspace2D_sptr ws2 = AnalysisDataService::Instance().retrieveWS<DataObjects::SpecialWorkspace2D>(ws2name);
+      DataObjects::MaskWorkspace_sptr ws2 = AnalysisDataService::Instance().retrieveWS<DataObjects::MaskWorkspace>(ws2name);
       for (size_t ih = 0; ih < ws2->getNumberHistograms(); ih ++){
         detid_t tempdetid = ws2->getDetectorID(ih);
         TS_ASSERT_EQUALS(ws2->getValue(tempdetid), 1);
-- 
GitLab