From d612ecc8c5d039bc18a4bf2bb4f68aab1ee9df93 Mon Sep 17 00:00:00 2001
From: Nick Draper <nick.draper@stfc.ac.uk>
Date: Tue, 3 Nov 2015 14:56:24 +0000
Subject: [PATCH] cleaned up the diffraction section

re #8840
---
 .../Algorithms/inc/MantidAlgorithms/CorelliCrossCorrelate.h    | 2 +-
 .../Algorithms/inc/MantidAlgorithms/CreateCalFileByNames.h     | 2 +-
 Framework/Algorithms/inc/MantidAlgorithms/CreateDummyCalFile.h | 2 +-
 .../inc/MantidAlgorithms/DiffractionEventCalibrateDetectors.h  | 2 +-
 .../Algorithms/inc/MantidAlgorithms/DiffractionFocussing.h     | 2 +-
 .../Algorithms/inc/MantidAlgorithms/DiffractionFocussing2.h    | 2 +-
 .../Algorithms/inc/MantidAlgorithms/ExportTimeSeriesLog.h      | 2 +-
 .../Algorithms/inc/MantidAlgorithms/FixGSASInstrumentFile.h    | 2 +-
 .../Algorithms/inc/MantidAlgorithms/GetDetOffsetsMultiPeaks.h  | 2 +-
 Framework/Algorithms/inc/MantidAlgorithms/GetDetectorOffsets.h | 2 +-
 .../inc/MantidAlgorithms/GetTimeSeriesLogInformation.h         | 2 +-
 .../Algorithms/inc/MantidAlgorithms/HRPDSlabCanAbsorption.h    | 2 +-
 Framework/Algorithms/inc/MantidAlgorithms/MaskDetectorsIf.h    | 2 +-
 .../Algorithms/inc/MantidAlgorithms/PDFFourierTransform.h      | 3 +--
 .../Algorithms/inc/MantidAlgorithms/PointByPointVCorrection.h  | 2 +-
 Framework/Algorithms/inc/MantidAlgorithms/ReadGroupsFromFile.h | 2 +-
 .../Algorithms/inc/MantidAlgorithms/SaveGSASInstrumentFile.h   | 2 +-
 Framework/Algorithms/inc/MantidAlgorithms/StripVanadiumPeaks.h | 2 +-
 .../Algorithms/inc/MantidAlgorithms/StripVanadiumPeaks2.h      | 2 +-
 Framework/Algorithms/src/AlignDetectors.cpp                    | 2 +-
 Framework/Algorithms/src/CalculateDIFC.cpp                     | 2 +-
 Framework/Algorithms/src/ConvertDiffCal.cpp                    | 2 +-
 Framework/Algorithms/src/EditInstrumentGeometry.cpp            | 2 +-
 Framework/Algorithms/src/EstimateResolutionDiffraction.cpp     | 2 +-
 Framework/Algorithms/src/PDFFourierTransform.cpp               | 2 +-
 Framework/Algorithms/src/RemoveLowResTOF.cpp                   | 2 +-
 .../inc/MantidCurveFitting/Algorithms/FitPowderDiffPeaks.h     | 2 +-
 .../CurveFitting/inc/MantidCurveFitting/Algorithms/LeBailFit.h | 2 +-
 .../CurveFitting/inc/MantidCurveFitting/Algorithms/PawleyFit.h | 2 +-
 .../Algorithms/RefinePowderInstrumentParameters.h              | 2 +-
 .../Algorithms/RefinePowderInstrumentParameters3.h             | 2 +-
 Framework/DataHandling/inc/MantidDataHandling/LoadCalFile.h    | 2 +-
 .../inc/MantidDataHandling/LoadFullprofResolution.h            | 2 +-
 .../inc/MantidDataHandling/LoadGSASInstrumentFile.h            | 2 +-
 Framework/DataHandling/inc/MantidDataHandling/LoadGSS.h        | 2 +-
 Framework/DataHandling/inc/MantidDataHandling/LoadIsawDetCal.h | 2 +-
 .../DataHandling/inc/MantidDataHandling/LoadPDFgetNFile.h      | 2 +-
 .../DataHandling/inc/MantidDataHandling/LoadVulcanCalFile.h    | 2 +-
 Framework/DataHandling/inc/MantidDataHandling/SaveCalFile.h    | 2 +-
 Framework/DataHandling/inc/MantidDataHandling/SaveFocusedXYE.h | 2 +-
 .../inc/MantidDataHandling/SaveFullprofResolution.h            | 2 +-
 Framework/DataHandling/inc/MantidDataHandling/SaveGSS.h        | 2 +-
 Framework/DataHandling/inc/MantidDataHandling/SaveIsawDetCal.h | 2 +-
 Framework/DataHandling/inc/MantidDataHandling/SaveNXTomo.h     | 2 +-
 .../DataHandling/inc/MantidDataHandling/SaveOpenGenieAscii.h   | 2 +-
 Framework/DataHandling/src/GenerateGroupingPowder.cpp          | 2 +-
 Framework/DataHandling/src/LoadDiffCal.cpp                     | 2 +-
 Framework/DataHandling/src/SaveDiffCal.cpp                     | 2 +-
 .../inc/MantidMDAlgorithms/ConvertCWPDMDToSpectra.h            | 2 +-
 .../inc/MantidMDAlgorithms/ConvertCWSDExpToMomentum.h          | 2 +-
 .../MDAlgorithms/inc/MantidMDAlgorithms/ConvertCWSDMDtoHKL.h   | 2 +-
 .../inc/MantidMDAlgorithms/ConvertSpiceDataToRealSpace.h       | 2 +-
 .../inc/MantidMDAlgorithms/GetSpiceDataRawCountsFromMD.h       | 2 +-
 .../plugins/algorithms/CalibrateRectangularDetectors.py        | 2 +-
 .../plugins/algorithms/CollectHB3AExperimentInfo.py            | 2 +-
 .../PythonInterface/plugins/algorithms/CreateLeBailFitInput.py | 2 +-
 .../plugins/algorithms/ExaminePowderDiffProfile.py             | 2 +-
 .../PythonInterface/plugins/algorithms/LoadFullprofFile.py     | 2 +-
 .../plugins/algorithms/MaskWorkspaceToCalFile.py               | 2 +-
 Framework/PythonInterface/plugins/algorithms/MergeCalFiles.py  | 2 +-
 .../plugins/algorithms/RefinePowderDiffProfileSeq.py           | 2 +-
 .../PythonInterface/plugins/algorithms/SNSPowderReduction.py   | 2 +-
 Framework/PythonInterface/plugins/algorithms/SaveVulcanGSS.py  | 2 +-
 .../plugins/algorithms/SelectPowderDiffPeaks.py                | 2 +-
 .../algorithms/WorkflowAlgorithms/EVSDiffractionReduction.py   | 2 +-
 .../WorkflowAlgorithms/ISISIndirectDiffractionReduction.py     | 2 +-
 .../WorkflowAlgorithms/OSIRISDiffractionReduction.py           | 2 +-
 67 files changed, 67 insertions(+), 68 deletions(-)

diff --git a/Framework/Algorithms/inc/MantidAlgorithms/CorelliCrossCorrelate.h b/Framework/Algorithms/inc/MantidAlgorithms/CorelliCrossCorrelate.h
index af9975c5aa9..8811709724a 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/CorelliCrossCorrelate.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/CorelliCrossCorrelate.h
@@ -38,7 +38,7 @@ public:
 
   virtual const std::string name() const { return "CorelliCrossCorrelate"; };
   virtual int version() const { return 1; };
-  virtual const std::string category() const { return "Diffraction;Events"; };
+  virtual const std::string category() const { return "Diffraction\\Calibration;Events"; };
   virtual const std::string summary() const {
     return "Cross-correlation calculation for the elastic signal from Corelli.";
   };
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/CreateCalFileByNames.h b/Framework/Algorithms/inc/MantidAlgorithms/CreateCalFileByNames.h
index b08c31518d0..6b7d596eeb3 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/CreateCalFileByNames.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/CreateCalFileByNames.h
@@ -78,7 +78,7 @@ public:
   /// Algorithm's version
   virtual int version() const { return (1); }
   /// Algorithm's category for identification
-  virtual const std::string category() const { return "Diffraction"; }
+  virtual const std::string category() const { return "Diffraction\\DataHandling\\CalFiles"; }
 
 private:
   /// Calibration entries map
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/CreateDummyCalFile.h b/Framework/Algorithms/inc/MantidAlgorithms/CreateDummyCalFile.h
index 45533564bac..8d38121c29c 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/CreateDummyCalFile.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/CreateDummyCalFile.h
@@ -77,7 +77,7 @@ public:
   /// Algorithm's version
   virtual int version() const { return (1); }
   /// Algorithm's category for identification
-  virtual const std::string category() const { return "Diffraction"; }
+  virtual const std::string category() const { return "Diffraction\\DataHandling\\CalFiles"; }
 
 private:
   /// Calibration entries map
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/DiffractionEventCalibrateDetectors.h b/Framework/Algorithms/inc/MantidAlgorithms/DiffractionEventCalibrateDetectors.h
index 8de127e43e5..ad9824cd46e 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/DiffractionEventCalibrateDetectors.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/DiffractionEventCalibrateDetectors.h
@@ -59,7 +59,7 @@ public:
   virtual int version() const { return 1; }
   /// Algorithm's category for identification overriding a virtual method
   virtual const std::string category() const {
-    return "Diffraction;CorrectionFunctions\\InstrumentCorrections";
+    return "Diffraction\\Calibration;CorrectionFunctions\\InstrumentCorrections";
   }
   /// Function to optimize
   double intensity(double x, double y, double z, double rotx, double roty,
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/DiffractionFocussing.h b/Framework/Algorithms/inc/MantidAlgorithms/DiffractionFocussing.h
index 0129bbe3fc8..99303ddcd4c 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/DiffractionFocussing.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/DiffractionFocussing.h
@@ -80,7 +80,7 @@ public:
   /// 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"; }
+  virtual const std::string category() const { return "Diffraction\\Focussing"; }
 
 private:
   // Overridden Algorithm methods
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/DiffractionFocussing2.h b/Framework/Algorithms/inc/MantidAlgorithms/DiffractionFocussing2.h
index 8edd177c766..c03d62c5073 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/DiffractionFocussing2.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/DiffractionFocussing2.h
@@ -97,7 +97,7 @@ public:
   /// Algorithm's version for identification overriding a virtual method
   virtual int version() const { return 2; }
   /// Algorithm's category for identification overriding a virtual method
-  virtual const std::string category() const { return "Diffraction"; }
+  virtual const std::string category() const { return "Diffraction\\Focussing"; }
 
 private:
   // Overridden Algorithm methods
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/ExportTimeSeriesLog.h b/Framework/Algorithms/inc/MantidAlgorithms/ExportTimeSeriesLog.h
index e4def97d3da..4e6b85a7721 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/ExportTimeSeriesLog.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/ExportTimeSeriesLog.h
@@ -44,7 +44,7 @@ public:
   virtual const std::string name() const { return "ExportTimeSeriesLog"; };
   virtual int version() const { return 1; };
   virtual const std::string category() const {
-    return "Diffraction;Events\\EventFiltering";
+    return "Diffraction\\DataHandling;Events\\EventFiltering";
   };
 
   /// Summary of algorithms purpose
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/FixGSASInstrumentFile.h b/Framework/Algorithms/inc/MantidAlgorithms/FixGSASInstrumentFile.h
index 64359d367ed..4a1c4836d86 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/FixGSASInstrumentFile.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/FixGSASInstrumentFile.h
@@ -46,7 +46,7 @@ public:
   virtual int version() const { return 1; }
 
   /// Algorithm's category for identification overriding a virtual method
-  virtual const std::string category() const { return "Diffraction"; }
+  virtual const std::string category() const { return "Diffraction\\DataHandling"; }
 
 private:
   /// Implement abstract Algorithm methods
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/GetDetOffsetsMultiPeaks.h b/Framework/Algorithms/inc/MantidAlgorithms/GetDetOffsetsMultiPeaks.h
index 24bc3aae46e..d62b48ccf7b 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/GetDetOffsetsMultiPeaks.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/GetDetOffsetsMultiPeaks.h
@@ -77,7 +77,7 @@ public:
   /// 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"; }
+  virtual const std::string category() const { return "Diffraction\\Calibration"; }
   /// Summary of algorithms purpose
   virtual const std::string summary() const {
     return "Creates an OffsetsWorkspace containing offsets for each detector. "
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/GetDetectorOffsets.h b/Framework/Algorithms/inc/MantidAlgorithms/GetDetectorOffsets.h
index f03558bbd63..268983cc2f1 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/GetDetectorOffsets.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/GetDetectorOffsets.h
@@ -52,7 +52,7 @@ public:
   /// 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"; }
+  virtual const std::string category() const { return "Diffraction\\Calibration"; }
 
 private:
   // Overridden Algorithm methods
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/GetTimeSeriesLogInformation.h b/Framework/Algorithms/inc/MantidAlgorithms/GetTimeSeriesLogInformation.h
index 8c86c243fa1..c4eb9c61343 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/GetTimeSeriesLogInformation.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/GetTimeSeriesLogInformation.h
@@ -52,7 +52,7 @@ public:
 
   virtual int version() const { return 1; }
   virtual const std::string category() const {
-    return "Diffraction;Events\\EventFiltering";
+    return "Diffraction\\Utility;Events\\EventFiltering";
   }
 
 private:
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/HRPDSlabCanAbsorption.h b/Framework/Algorithms/inc/MantidAlgorithms/HRPDSlabCanAbsorption.h
index 76bae633d19..9ea55cd0035 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/HRPDSlabCanAbsorption.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/HRPDSlabCanAbsorption.h
@@ -84,7 +84,7 @@ public:
   /// Algorithm's version
   virtual int version() const { return (1); }
   /// Algorithm's category for identification
-  virtual const std::string category() const { return "Diffraction"; }
+  virtual const std::string category() const { return "CorrectionFunctions\\AbsorptionCorrections"; }
 
 private:
   /// Initialisation code
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/MaskDetectorsIf.h b/Framework/Algorithms/inc/MantidAlgorithms/MaskDetectorsIf.h
index 8188ac663a4..04e87338660 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/MaskDetectorsIf.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/MaskDetectorsIf.h
@@ -62,7 +62,7 @@ public:
   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";
+    return "Diffraction\\Masking;Transforms\\Masking";
   }
 
 private:
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/PDFFourierTransform.h b/Framework/Algorithms/inc/MantidAlgorithms/PDFFourierTransform.h
index 4c89a4e7cb8..8125781087f 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/PDFFourierTransform.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/PDFFourierTransform.h
@@ -25,8 +25,7 @@ public:
   /// Algorithm's version for identification
   virtual int version() const;
   /// Algorithm's category for identification
-  virtual const std::string
-  category() const; // category better be in diffraction than general
+  virtual const std::string category() const; 
   /// @copydoc Algorithm::validateInputs()
   virtual std::map<std::string, std::string> validateInputs();
 
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/PointByPointVCorrection.h b/Framework/Algorithms/inc/MantidAlgorithms/PointByPointVCorrection.h
index ec1b48fec47..36fb658bc76 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/PointByPointVCorrection.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/PointByPointVCorrection.h
@@ -51,7 +51,7 @@ public:
   virtual int version() const { return 1; }
   /// Algorithm's category for identification overriding a virtual method
   virtual const std::string category() const {
-    return "Diffraction;CorrectionFunctions\\SpecialCorrections";
+    return "Diffraction\\Corrections;CorrectionFunctions\\SpecialCorrections";
   }
 
 private:
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/ReadGroupsFromFile.h b/Framework/Algorithms/inc/MantidAlgorithms/ReadGroupsFromFile.h
index 81115c430ab..86a42be9cd6 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/ReadGroupsFromFile.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/ReadGroupsFromFile.h
@@ -93,7 +93,7 @@ public:
   /// Algorithm's version
   virtual int version() const { return (1); }
   /// Algorithm's category for identification
-  virtual const std::string category() const { return "Diffraction"; }
+  virtual const std::string category() const { return "Diffraction\\DataHandling\\CalFiles"; }
 
 private:
   /// Map containing the detector entries found in the *.cal file. The key is
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/SaveGSASInstrumentFile.h b/Framework/Algorithms/inc/MantidAlgorithms/SaveGSASInstrumentFile.h
index 1a0b8b8e908..c8d8f437ab4 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/SaveGSASInstrumentFile.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/SaveGSASInstrumentFile.h
@@ -52,7 +52,7 @@ public:
   /// Algorithm's version
   virtual int version() const { return (1); }
   /// Algorithm's category for identification
-  virtual const std::string category() const { return "Diffraction"; }
+  virtual const std::string category() const { return "Diffraction\\DataHandling"; }
 
 private:
   /// Initialisation code
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/StripVanadiumPeaks.h b/Framework/Algorithms/inc/MantidAlgorithms/StripVanadiumPeaks.h
index 74640cdb65c..a91b5d78582 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/StripVanadiumPeaks.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/StripVanadiumPeaks.h
@@ -75,7 +75,7 @@ public:
   virtual int version() const { return (1); }
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "CorrectionFunctions\\PeakCorrections;Optimization\\PeakFinding;Diffraction";
+    return "CorrectionFunctions\\PeakCorrections;Optimization\\PeakFinding;Diffraction\\Corrections";
   }
 
 private:
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/StripVanadiumPeaks2.h b/Framework/Algorithms/inc/MantidAlgorithms/StripVanadiumPeaks2.h
index 66e410d61d8..e19062e65ab 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/StripVanadiumPeaks2.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/StripVanadiumPeaks2.h
@@ -44,7 +44,7 @@ public:
   virtual int version() const { return 2; }
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "CorrectionFunctions\\PeakCorrections;Optimization\\PeakFinding;Diffraction";
+    return "CorrectionFunctions\\PeakCorrections;Optimization\\PeakFinding;Diffraction\\Corrections";
   }
   /// Summary of algorithms purpose
   virtual const std::string summary() const {
diff --git a/Framework/Algorithms/src/AlignDetectors.cpp b/Framework/Algorithms/src/AlignDetectors.cpp
index 742f56343e6..c958ce703b4 100644
--- a/Framework/Algorithms/src/AlignDetectors.cpp
+++ b/Framework/Algorithms/src/AlignDetectors.cpp
@@ -145,7 +145,7 @@ const std::string AlignDetectors::name() const { return "AlignDetectors"; }
 
 int AlignDetectors::version() const { return 1; }
 
-const std::string AlignDetectors::category() const { return "Diffraction"; }
+const std::string AlignDetectors::category() const { return "Diffraction\\Calibration"; }
 
 const std::string AlignDetectors::summary() const {
   return "Performs a unit change from TOF to dSpacing, correcting the X "
diff --git a/Framework/Algorithms/src/CalculateDIFC.cpp b/Framework/Algorithms/src/CalculateDIFC.cpp
index 0c8dc30be7a..ac0b6afecae 100644
--- a/Framework/Algorithms/src/CalculateDIFC.cpp
+++ b/Framework/Algorithms/src/CalculateDIFC.cpp
@@ -36,7 +36,7 @@ const std::string CalculateDIFC::name() const { return "CalculateDIFC"; }
 int CalculateDIFC::version() const { return 1; }
 
 /// Algorithm's category for identification. @see Algorithm::category
-const std::string CalculateDIFC::category() const { return "Diffraction"; }
+const std::string CalculateDIFC::category() const { return "Diffraction\\Utility"; }
 
 /// Algorithm's summary for use in the GUI and help. @see Algorithm::summary
 const std::string CalculateDIFC::summary() const {
diff --git a/Framework/Algorithms/src/ConvertDiffCal.cpp b/Framework/Algorithms/src/ConvertDiffCal.cpp
index 6b887627b9f..15086148079 100644
--- a/Framework/Algorithms/src/ConvertDiffCal.cpp
+++ b/Framework/Algorithms/src/ConvertDiffCal.cpp
@@ -44,7 +44,7 @@ const std::string ConvertDiffCal::name() const { return "ConvertDiffCal"; }
 int ConvertDiffCal::version() const { return 1; }
 
 /// Algorithm's category for identification. @see Algorithm::category
-const std::string ConvertDiffCal::category() const { return "Diffraction"; }
+const std::string ConvertDiffCal::category() const { return "Diffraction\\Utility"; }
 
 /// Algorithm's summary for use in the GUI and help. @see Algorithm::summary
 const std::string ConvertDiffCal::summary() const {
diff --git a/Framework/Algorithms/src/EditInstrumentGeometry.cpp b/Framework/Algorithms/src/EditInstrumentGeometry.cpp
index 929265f98cb..60bb3606852 100644
--- a/Framework/Algorithms/src/EditInstrumentGeometry.cpp
+++ b/Framework/Algorithms/src/EditInstrumentGeometry.cpp
@@ -32,7 +32,7 @@ const std::string EditInstrumentGeometry::name() const {
 }
 
 const std::string EditInstrumentGeometry::category() const {
-  return "Diffraction";
+  return "Diffraction\\DataHandling;DataHandling\\Instrument";
 }
 
 int EditInstrumentGeometry::version() const { return 1; }
diff --git a/Framework/Algorithms/src/EstimateResolutionDiffraction.cpp b/Framework/Algorithms/src/EstimateResolutionDiffraction.cpp
index 22889f58a46..2c39dfdf1fd 100644
--- a/Framework/Algorithms/src/EstimateResolutionDiffraction.cpp
+++ b/Framework/Algorithms/src/EstimateResolutionDiffraction.cpp
@@ -61,7 +61,7 @@ const std::string EstimateResolutionDiffraction::summary() const {
 int EstimateResolutionDiffraction::version() const { return 1; }
 
 const std::string EstimateResolutionDiffraction::category() const {
-  return "Diffraction";
+  return "Diffraction\\Utility";
 }
 
 //----------------------------------------------------------------------------------------------
diff --git a/Framework/Algorithms/src/PDFFourierTransform.cpp b/Framework/Algorithms/src/PDFFourierTransform.cpp
index c535813ba1e..ff91ab5cf25 100644
--- a/Framework/Algorithms/src/PDFFourierTransform.cpp
+++ b/Framework/Algorithms/src/PDFFourierTransform.cpp
@@ -51,7 +51,7 @@ const std::string PDFFourierTransform::name() const {
 int PDFFourierTransform::version() const { return 1; }
 
 const std::string PDFFourierTransform::category() const {
-  return "Diffraction";
+  return "Diffraction\\Utility";
 }
 
 //----------------------------------------------------------------------------------------------
diff --git a/Framework/Algorithms/src/RemoveLowResTOF.cpp b/Framework/Algorithms/src/RemoveLowResTOF.cpp
index 47c65f788a2..a5658dbd3a6 100644
--- a/Framework/Algorithms/src/RemoveLowResTOF.cpp
+++ b/Framework/Algorithms/src/RemoveLowResTOF.cpp
@@ -42,7 +42,7 @@ const string RemoveLowResTOF::name() const { return "RemoveLowResTOF"; }
 int RemoveLowResTOF::version() const { return 1; }
 
 /// Algorithm's category for identification overriding a virtual method
-const string RemoveLowResTOF::category() const { return "Diffraction"; }
+const string RemoveLowResTOF::category() const { return "Diffraction\\Corrections"; }
 
 void RemoveLowResTOF::init() {
   auto wsValidator = boost::make_shared<CompositeValidator>();
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/FitPowderDiffPeaks.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/FitPowderDiffPeaks.h
index 5436f304f29..1c983df6b4b 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/FitPowderDiffPeaks.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/FitPowderDiffPeaks.h
@@ -74,7 +74,7 @@ public:
   virtual int version() const { return 1; }
 
   /// Algorithm's category for identification overriding a virtual method
-  virtual const std::string category() const { return "Diffraction"; }
+  virtual const std::string category() const { return "Diffraction\\Fitting"; }
 
 private:
   /// Implement abstract Algorithm methods
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/LeBailFit.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/LeBailFit.h
index dd92a572da7..7a76297e149 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/LeBailFit.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/LeBailFit.h
@@ -88,7 +88,7 @@ public:
   virtual int version() const { return 1; }
 
   /// Algorithm's category for identification overriding a virtual method
-  virtual const std::string category() const { return "Diffraction"; }
+  virtual const std::string category() const { return "Diffraction\\Fitting"; }
 
 private:
   // Implement abstract Algorithm methods
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/PawleyFit.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/PawleyFit.h
index 7bddf3ec398..39ae763992d 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/PawleyFit.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/PawleyFit.h
@@ -72,7 +72,7 @@ public:
   const std::string name() const { return "PawleyFit"; }
   int version() const { return 1; }
   const std::string summary() const;
-  const std::string category() const { return "Diffraction"; }
+  const std::string category() const { return "Diffraction\\Fitting"; }
 
 protected:
   double getTransformedCenter(double d, const Kernel::Unit_sptr &unit) const;
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/RefinePowderInstrumentParameters.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/RefinePowderInstrumentParameters.h
index 9d3eeba57a4..fc90a7c5267 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/RefinePowderInstrumentParameters.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/RefinePowderInstrumentParameters.h
@@ -69,7 +69,7 @@ public:
   virtual int version() const { return 2; }
 
   /// Algorithm's category for identification overriding a virtual method
-  virtual const std::string category() const { return "Diffraction"; }
+  virtual const std::string category() const { return "Diffraction\\Fitting"; }
 
 private:
   // Implement abstract Algorithm methods
diff --git a/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/RefinePowderInstrumentParameters3.h b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/RefinePowderInstrumentParameters3.h
index 56875c6c885..764b6e74f1a 100644
--- a/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/RefinePowderInstrumentParameters3.h
+++ b/Framework/CurveFitting/inc/MantidCurveFitting/Algorithms/RefinePowderInstrumentParameters3.h
@@ -57,7 +57,7 @@ public:
   virtual int version() const { return 3; }
 
   /// Algorithm's category for identification overriding a virtual method
-  virtual const std::string category() const { return "Diffraction"; }
+  virtual const std::string category() const { return "Diffraction\\Fitting"; }
 
 private:
   /// Implement abstract Algorithm methods
diff --git a/Framework/DataHandling/inc/MantidDataHandling/LoadCalFile.h b/Framework/DataHandling/inc/MantidDataHandling/LoadCalFile.h
index 5768b9268a7..ecdc7eb2bc8 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/LoadCalFile.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/LoadCalFile.h
@@ -36,7 +36,7 @@ public:
   virtual int version() const { return 1; };
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "DataHandling\\Text;Diffraction";
+    return "DataHandling\\Text;Diffraction\\DataHandling\\CalFiles";
   }
 
   static void getInstrument3WaysInit(Mantid::API::Algorithm *alg);
diff --git a/Framework/DataHandling/inc/MantidDataHandling/LoadFullprofResolution.h b/Framework/DataHandling/inc/MantidDataHandling/LoadFullprofResolution.h
index 91182638895..79e16d97b40 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/LoadFullprofResolution.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/LoadFullprofResolution.h
@@ -51,7 +51,7 @@ public:
   virtual int version() const { return 1; }
 
   /// Algorithm's category for identification overriding a virtual method
-  virtual const std::string category() const { return "Diffraction"; }
+  virtual const std::string category() const { return "Diffraction\\DataHandling"; }
   /// Summary of algorithms purpose
   virtual const std::string summary() const {
     return "Load Fullprof's resolution (.irf) file to one or multiple "
diff --git a/Framework/DataHandling/inc/MantidDataHandling/LoadGSASInstrumentFile.h b/Framework/DataHandling/inc/MantidDataHandling/LoadGSASInstrumentFile.h
index d26c348082c..5099288ac9b 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/LoadGSASInstrumentFile.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/LoadGSASInstrumentFile.h
@@ -54,7 +54,7 @@ public:
   virtual int version() const { return 1; }
 
   /// Algorithm's category for identification overriding a virtual method
-  virtual const std::string category() const { return "Diffraction"; }
+  virtual const std::string category() const { return "Diffraction\\DataHandling"; }
 
 private:
   /// Implement abstract Algorithm methods
diff --git a/Framework/DataHandling/inc/MantidDataHandling/LoadGSS.h b/Framework/DataHandling/inc/MantidDataHandling/LoadGSS.h
index a0a63b48939..141174955d0 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/LoadGSS.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/LoadGSS.h
@@ -61,7 +61,7 @@ public:
 
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "Diffraction;DataHandling\\Text";
+    return "Diffraction\\DataHandling;DataHandling\\Text";
   }
 
   /// Returns a confidence value that this algorithm can load a file
diff --git a/Framework/DataHandling/inc/MantidDataHandling/LoadIsawDetCal.h b/Framework/DataHandling/inc/MantidDataHandling/LoadIsawDetCal.h
index 65dce045094..bc1431107eb 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/LoadIsawDetCal.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/LoadIsawDetCal.h
@@ -62,7 +62,7 @@ public:
   virtual int version() const { return 1; }
   /// Algorithm's category for identification overriding a virtual method
   virtual const std::string category() const {
-    return "Diffraction;DataHandling\\Isaw";
+    return "Diffraction\\DataHandling;DataHandling\\Isaw";
   }
   /// Function to optimize
   void center(double x, double y, double z, std::string detname,
diff --git a/Framework/DataHandling/inc/MantidDataHandling/LoadPDFgetNFile.h b/Framework/DataHandling/inc/MantidDataHandling/LoadPDFgetNFile.h
index 1ae3fbd5dd8..660e38d3294 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/LoadPDFgetNFile.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/LoadPDFgetNFile.h
@@ -49,7 +49,7 @@ public:
 
   /// Algorithm's category for identification overriding a virtual method
   virtual const std::string category() const {
-    return "Diffraction;DataHandling\\Text";
+    return "Diffraction\\DataHandling;DataHandling\\Text";
   }
 
 private:
diff --git a/Framework/DataHandling/inc/MantidDataHandling/LoadVulcanCalFile.h b/Framework/DataHandling/inc/MantidDataHandling/LoadVulcanCalFile.h
index ee8dc7ceeab..61a049fc32e 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/LoadVulcanCalFile.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/LoadVulcanCalFile.h
@@ -41,7 +41,7 @@ public:
   virtual int version() const { return 1; }
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "DataHandling\\Text;Diffraction";
+    return "DataHandling\\Text;Diffraction\\DataHandling";
   }
 
   void getInstrument3WaysInit();
diff --git a/Framework/DataHandling/inc/MantidDataHandling/SaveCalFile.h b/Framework/DataHandling/inc/MantidDataHandling/SaveCalFile.h
index ff69ed40681..7702f440226 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/SaveCalFile.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/SaveCalFile.h
@@ -34,7 +34,7 @@ public:
   virtual int version() const { return 1; };
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "DataHandling\\Text;Diffraction";
+    return "DataHandling\\Text;Diffraction\\DataHandling\\CalFiles";
   }
 
   void saveCalFile(const std::string &calFileName,
diff --git a/Framework/DataHandling/inc/MantidDataHandling/SaveFocusedXYE.h b/Framework/DataHandling/inc/MantidDataHandling/SaveFocusedXYE.h
index ce609a19759..6f939671be1 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/SaveFocusedXYE.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/SaveFocusedXYE.h
@@ -78,7 +78,7 @@ public:
   virtual int version() const { return (1); }
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "Diffraction;DataHandling\\Text";
+    return "Diffraction\\DataHandling;DataHandling\\Text";
   }
 
 private:
diff --git a/Framework/DataHandling/inc/MantidDataHandling/SaveFullprofResolution.h b/Framework/DataHandling/inc/MantidDataHandling/SaveFullprofResolution.h
index eefa2a3a9f3..8f5f301a4b1 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/SaveFullprofResolution.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/SaveFullprofResolution.h
@@ -48,7 +48,7 @@ public:
   virtual int version() const { return (1); }
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "Diffraction;DataHandling\\Text";
+    return "Diffraction\\DataHandling;DataHandling\\Text";
   }
 
 private:
diff --git a/Framework/DataHandling/inc/MantidDataHandling/SaveGSS.h b/Framework/DataHandling/inc/MantidDataHandling/SaveGSS.h
index a3929b434cb..805b2a3a9b8 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/SaveGSS.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/SaveGSS.h
@@ -77,7 +77,7 @@ public:
   virtual int version() const { return (1); }
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "Diffraction;DataHandling\\Text";
+    return "Diffraction\\DataHandling;DataHandling\\Text";
   }
 
 private:
diff --git a/Framework/DataHandling/inc/MantidDataHandling/SaveIsawDetCal.h b/Framework/DataHandling/inc/MantidDataHandling/SaveIsawDetCal.h
index 6c83744d972..65a87faa016 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/SaveIsawDetCal.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/SaveIsawDetCal.h
@@ -50,7 +50,7 @@ public:
   virtual int version() const { return 1; };
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "Diffraction;DataHandling\\Isaw";
+    return "Diffraction\\DataHandling;DataHandling\\Isaw";
   }
 
 private:
diff --git a/Framework/DataHandling/inc/MantidDataHandling/SaveNXTomo.h b/Framework/DataHandling/inc/MantidDataHandling/SaveNXTomo.h
index 2144bc53f8a..3c37c471fd0 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/SaveNXTomo.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/SaveNXTomo.h
@@ -65,7 +65,7 @@ public:
 
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "DataHandling\\Nexus;DataHandling\\Tomography;Diffraction";
+    return "DataHandling\\Nexus;DataHandling\\Tomography;Diffraction\\DataHandling";
   }
 
 private:
diff --git a/Framework/DataHandling/inc/MantidDataHandling/SaveOpenGenieAscii.h b/Framework/DataHandling/inc/MantidDataHandling/SaveOpenGenieAscii.h
index 27ac2edade3..7ee37d3637d 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/SaveOpenGenieAscii.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/SaveOpenGenieAscii.h
@@ -32,7 +32,7 @@ public:
 
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "Diffraction;DataHandling\\Text";
+    return "Diffraction\\DataHandling;DataHandling\\Text";
   }
 
 private:
diff --git a/Framework/DataHandling/src/GenerateGroupingPowder.cpp b/Framework/DataHandling/src/GenerateGroupingPowder.cpp
index 20b26d234e6..a4e44686a14 100644
--- a/Framework/DataHandling/src/GenerateGroupingPowder.cpp
+++ b/Framework/DataHandling/src/GenerateGroupingPowder.cpp
@@ -57,7 +57,7 @@ int GenerateGroupingPowder::version() const { return 1; }
 
 /// Algorithm's category for identification. @see Algorithm::category
 const std::string GenerateGroupingPowder::category() const {
-  return "DataHandling\\Grouping;Transforms\\Grouping;Diffraction";
+  return "DataHandling\\Grouping;Transforms\\Grouping;Diffraction\\Utility";
 }
 
 //----------------------------------------------------------------------------------------------
diff --git a/Framework/DataHandling/src/LoadDiffCal.cpp b/Framework/DataHandling/src/LoadDiffCal.cpp
index 6766b4496c1..b07bd86a8aa 100644
--- a/Framework/DataHandling/src/LoadDiffCal.cpp
+++ b/Framework/DataHandling/src/LoadDiffCal.cpp
@@ -54,7 +54,7 @@ int LoadDiffCal::version() const { return 1; }
 
 /// Algorithm's category for identification. @see Algorithm::category
 const std::string LoadDiffCal::category() const {
-  return "DataHandling\\Instrument;Diffraction";
+  return "DataHandling\\Instrument;Diffraction\\DataHandling";
 }
 
 /// Algorithm's summary for use in the GUI and help. @see Algorithm::summary
diff --git a/Framework/DataHandling/src/SaveDiffCal.cpp b/Framework/DataHandling/src/SaveDiffCal.cpp
index a586251912e..9d17f2e8a92 100644
--- a/Framework/DataHandling/src/SaveDiffCal.cpp
+++ b/Framework/DataHandling/src/SaveDiffCal.cpp
@@ -48,7 +48,7 @@ int SaveDiffCal::version() const { return 1; }
 
 /// Algorithm's category for identification. @see Algorithm::category
 const std::string SaveDiffCal::category() const {
-  return "DataHandling\\Instrument;Diffraction";
+  return "DataHandling\\Instrument;Diffraction\\DataHandling";
 }
 
 /// Algorithm's summary for use in the GUI and help. @see Algorithm::summary
diff --git a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertCWPDMDToSpectra.h b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertCWPDMDToSpectra.h
index 5dd6f153134..fd22269a522 100644
--- a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertCWPDMDToSpectra.h
+++ b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertCWPDMDToSpectra.h
@@ -121,7 +121,7 @@ public:
 
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "Diffraction;MDAlgorithms";
+    return "Diffraction\\ConstantWavelength;Diffraction\\Focussing;MDAlgorithms";
   }
 
 private:
diff --git a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertCWSDExpToMomentum.h b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertCWSDExpToMomentum.h
index e4b799f2f49..b0d6b716db1 100644
--- a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertCWSDExpToMomentum.h
+++ b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertCWSDExpToMomentum.h
@@ -52,7 +52,7 @@ public:
 
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "Diffraction;DataHandling\\Text";
+    return "Diffraction\\ConstantWavelength;DataHandling\\Text";
   }
 
 private:
diff --git a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertCWSDMDtoHKL.h b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertCWSDMDtoHKL.h
index 6879be0456e..220f25cf935 100644
--- a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertCWSDMDtoHKL.h
+++ b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertCWSDMDtoHKL.h
@@ -55,7 +55,7 @@ public:
 
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "Diffraction;MDAlgorithms";
+    return "Diffraction\\ConstantWavelength;MDAlgorithms";
   }
 
 private:
diff --git a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertSpiceDataToRealSpace.h b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertSpiceDataToRealSpace.h
index 833c7e3bb54..39f4794955e 100644
--- a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertSpiceDataToRealSpace.h
+++ b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertSpiceDataToRealSpace.h
@@ -54,7 +54,7 @@ public:
 
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "Diffraction;DataHandling\\Text";
+    return "Diffraction\\ConstantWavelength;DataHandling\\Text";
   }
 
   /// Returns a confidence value that this algorithm can load a file
diff --git a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/GetSpiceDataRawCountsFromMD.h b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/GetSpiceDataRawCountsFromMD.h
index 37fb8bddb85..f574cf824ad 100644
--- a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/GetSpiceDataRawCountsFromMD.h
+++ b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/GetSpiceDataRawCountsFromMD.h
@@ -58,7 +58,7 @@ public:
 
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "Diffraction";
+    return "Diffraction\\ConstantWavelength";
   }
 
 private:
diff --git a/Framework/PythonInterface/plugins/algorithms/CalibrateRectangularDetectors.py b/Framework/PythonInterface/plugins/algorithms/CalibrateRectangularDetectors.py
index 85c5e60d2f4..ecd3b61b0b7 100644
--- a/Framework/PythonInterface/plugins/algorithms/CalibrateRectangularDetectors.py
+++ b/Framework/PythonInterface/plugins/algorithms/CalibrateRectangularDetectors.py
@@ -39,7 +39,7 @@ class CalibrateRectangularDetectors(PythonAlgorithm):
     _binning = None
 
     def category(self):
-        return "Diffraction"
+        return "Diffraction\\Calibration"
 
     def name(self):
         return "CalibrateRectangularDetectors"
diff --git a/Framework/PythonInterface/plugins/algorithms/CollectHB3AExperimentInfo.py b/Framework/PythonInterface/plugins/algorithms/CollectHB3AExperimentInfo.py
index 3a63c7bb3ea..39deb7e480f 100644
--- a/Framework/PythonInterface/plugins/algorithms/CollectHB3AExperimentInfo.py
+++ b/Framework/PythonInterface/plugins/algorithms/CollectHB3AExperimentInfo.py
@@ -38,7 +38,7 @@ class CollectHB3AExperimentInfo(PythonAlgorithm):
     def category(self):
         """ Category
         """
-        return "Diffraction"
+        return "Diffraction\\ConstantWavelength"
 
     def name(self):
         """ Algorithm name
diff --git a/Framework/PythonInterface/plugins/algorithms/CreateLeBailFitInput.py b/Framework/PythonInterface/plugins/algorithms/CreateLeBailFitInput.py
index 43c4a99844a..4217afb3542 100644
--- a/Framework/PythonInterface/plugins/algorithms/CreateLeBailFitInput.py
+++ b/Framework/PythonInterface/plugins/algorithms/CreateLeBailFitInput.py
@@ -15,7 +15,7 @@ class CreateLeBailFitInput(PythonAlgorithm):
     def category(self):
         """
         """
-        return "Diffraction;Utility\\Workspaces"
+        return "Diffraction\\Fitting;Utility\\Workspaces"
 
     def name(self):
         """
diff --git a/Framework/PythonInterface/plugins/algorithms/ExaminePowderDiffProfile.py b/Framework/PythonInterface/plugins/algorithms/ExaminePowderDiffProfile.py
index 80822b19e73..f2ec6119be5 100644
--- a/Framework/PythonInterface/plugins/algorithms/ExaminePowderDiffProfile.py
+++ b/Framework/PythonInterface/plugins/algorithms/ExaminePowderDiffProfile.py
@@ -31,7 +31,7 @@ class ExaminePowderDiffProfile(PythonAlgorithm):
     def category(self):
         """
         """
-        return "Diffraction;Utility"
+        return "Diffraction\\Utility"
 
     def name(self):
         """
diff --git a/Framework/PythonInterface/plugins/algorithms/LoadFullprofFile.py b/Framework/PythonInterface/plugins/algorithms/LoadFullprofFile.py
index 8ce3875c3f1..86901a7e0ad 100644
--- a/Framework/PythonInterface/plugins/algorithms/LoadFullprofFile.py
+++ b/Framework/PythonInterface/plugins/algorithms/LoadFullprofFile.py
@@ -16,7 +16,7 @@ class LoadFullprofFile(PythonAlgorithm):
     def category(self):
         """
         """
-        return "Diffraction;Utility"
+        return "Diffraction\\DataHandling"
 
     def name(self):
         """
diff --git a/Framework/PythonInterface/plugins/algorithms/MaskWorkspaceToCalFile.py b/Framework/PythonInterface/plugins/algorithms/MaskWorkspaceToCalFile.py
index 45b14634e99..d8b91094a06 100644
--- a/Framework/PythonInterface/plugins/algorithms/MaskWorkspaceToCalFile.py
+++ b/Framework/PythonInterface/plugins/algorithms/MaskWorkspaceToCalFile.py
@@ -16,7 +16,7 @@ class QueryValue(object):
 class MaskWorkspaceToCalFile(PythonAlgorithm):
 
     def category(self):
-        return "DataHandling\\Text;Diffraction"
+        return "DataHandling\\Text;Diffraction\\DataHandling;Diffraction\\Masking"
 
     def name(self):
         return "MaskWorkspaceToCalFile"
diff --git a/Framework/PythonInterface/plugins/algorithms/MergeCalFiles.py b/Framework/PythonInterface/plugins/algorithms/MergeCalFiles.py
index a27e96214a2..e4e8b7f2184 100644
--- a/Framework/PythonInterface/plugins/algorithms/MergeCalFiles.py
+++ b/Framework/PythonInterface/plugins/algorithms/MergeCalFiles.py
@@ -5,7 +5,7 @@ from mantid.kernel import *
 class MergeCalFiles(PythonAlgorithm):
 
     def category(self):
-        return "DataHandling\\Text;Diffraction"
+        return "DataHandling\\Text;Diffraction\\DataHandling\\CalFiles"
 
     def name(self):
         return "MergeCalFiles"
diff --git a/Framework/PythonInterface/plugins/algorithms/RefinePowderDiffProfileSeq.py b/Framework/PythonInterface/plugins/algorithms/RefinePowderDiffProfileSeq.py
index fef53a34b98..2d3256af9ad 100644
--- a/Framework/PythonInterface/plugins/algorithms/RefinePowderDiffProfileSeq.py
+++ b/Framework/PythonInterface/plugins/algorithms/RefinePowderDiffProfileSeq.py
@@ -35,7 +35,7 @@ class RefinePowderDiffProfileSeq(PythonAlgorithm):
     def category(self):
         """ Category
         """
-        return "Diffraction"
+        return "Diffraction\\Fitting"
 
     def name(self):
         """ Algorithm name
diff --git a/Framework/PythonInterface/plugins/algorithms/SNSPowderReduction.py b/Framework/PythonInterface/plugins/algorithms/SNSPowderReduction.py
index 01aa258d0db..6458397c3c5 100644
--- a/Framework/PythonInterface/plugins/algorithms/SNSPowderReduction.py
+++ b/Framework/PythonInterface/plugins/algorithms/SNSPowderReduction.py
@@ -63,7 +63,7 @@ class SNSPowderReduction(DataProcessorAlgorithm):
     _info = None
 
     def category(self):
-        return "Diffraction"
+        return "Diffraction\\Reduction"
 
     def name(self):
         return "SNSPowderReduction"
diff --git a/Framework/PythonInterface/plugins/algorithms/SaveVulcanGSS.py b/Framework/PythonInterface/plugins/algorithms/SaveVulcanGSS.py
index c7a8720a852..234ded0c5e9 100644
--- a/Framework/PythonInterface/plugins/algorithms/SaveVulcanGSS.py
+++ b/Framework/PythonInterface/plugins/algorithms/SaveVulcanGSS.py
@@ -9,7 +9,7 @@ class SaveVulcanGSS(PythonAlgorithm):
     def category(self):
         """
         """
-        return "Diffraction;Utility"
+        return "Diffraction\\DataHandling"
 
     def name(self):
         """
diff --git a/Framework/PythonInterface/plugins/algorithms/SelectPowderDiffPeaks.py b/Framework/PythonInterface/plugins/algorithms/SelectPowderDiffPeaks.py
index fac88e2cbd3..05e2f805556 100644
--- a/Framework/PythonInterface/plugins/algorithms/SelectPowderDiffPeaks.py
+++ b/Framework/PythonInterface/plugins/algorithms/SelectPowderDiffPeaks.py
@@ -14,7 +14,7 @@ class SelectPowderDiffPeaks(PythonAlgorithm):
     def category(self):
         """
         """
-        return "Diffraction;Utility"
+        return "Diffraction\\Fitting"
 
     def name(self):
         """
diff --git a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/EVSDiffractionReduction.py b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/EVSDiffractionReduction.py
index d9f5e77d91e..4d02c46c006 100644
--- a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/EVSDiffractionReduction.py
+++ b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/EVSDiffractionReduction.py
@@ -23,7 +23,7 @@ class EVSDiffractionReduction(DataProcessorAlgorithm):
 
 
     def category(self):
-        return 'Diffraction'
+        return 'Diffraction\\Reduction'
 
 
     def summary(self):
diff --git a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ISISIndirectDiffractionReduction.py b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ISISIndirectDiffractionReduction.py
index e225b4cc29f..9c1edef2644 100644
--- a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ISISIndirectDiffractionReduction.py
+++ b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ISISIndirectDiffractionReduction.py
@@ -29,7 +29,7 @@ class ISISIndirectDiffractionReduction(DataProcessorAlgorithm):
 #------------------------------------------------------------------------------
 
     def category(self):
-        return 'Diffraction'
+        return 'Diffraction\\Reduction'
 
 
     def summary(self):
diff --git a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/OSIRISDiffractionReduction.py b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/OSIRISDiffractionReduction.py
index c595f35ddae..7914b9bb632 100644
--- a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/OSIRISDiffractionReduction.py
+++ b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/OSIRISDiffractionReduction.py
@@ -208,7 +208,7 @@ class OSIRISDiffractionReduction(PythonAlgorithm):
 
 
     def category(self):
-        return 'Diffraction'
+        return 'Diffraction\\Reduction'
 
     def summary(self):
         return "This Python algorithm performs the operations necessary for the reduction of diffraction data "+\
-- 
GitLab